@codexo/exojs 0.10.0 → 0.11.0

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 (90) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/dist/esm/core/dev.d.ts +21 -0
  3. package/dist/esm/core/dev.js +18 -0
  4. package/dist/esm/core/dev.js.map +1 -0
  5. package/dist/esm/particles/modules/AlphaFadeOverLifetime.d.ts +2 -2
  6. package/dist/esm/particles/modules/AlphaFadeOverLifetime.js +5 -1
  7. package/dist/esm/particles/modules/AlphaFadeOverLifetime.js.map +1 -1
  8. package/dist/esm/rendering/TransformBuffer.d.ts +44 -0
  9. package/dist/esm/rendering/TransformBuffer.js +64 -0
  10. package/dist/esm/rendering/TransformBuffer.js.map +1 -1
  11. package/dist/esm/rendering/gradient/Gradient.d.ts +35 -2
  12. package/dist/esm/rendering/gradient/Gradient.js +51 -5
  13. package/dist/esm/rendering/gradient/Gradient.js.map +1 -1
  14. package/dist/esm/rendering/gradient/LinearGradient.d.ts +11 -3
  15. package/dist/esm/rendering/gradient/LinearGradient.js +23 -0
  16. package/dist/esm/rendering/gradient/LinearGradient.js.map +1 -1
  17. package/dist/esm/rendering/gradient/RadialGradient.d.ts +11 -3
  18. package/dist/esm/rendering/gradient/RadialGradient.js +19 -0
  19. package/dist/esm/rendering/gradient/RadialGradient.js.map +1 -1
  20. package/dist/esm/rendering/index.d.ts +1 -1
  21. package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts +2 -2
  22. package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts +2 -2
  23. package/dist/esm/rendering/pass/RenderPassDescriptor.js +1 -1
  24. package/dist/esm/rendering/plan/RenderCommand.d.ts +21 -2
  25. package/dist/esm/rendering/plan/RenderCommand.js +34 -1
  26. package/dist/esm/rendering/plan/RenderCommand.js.map +1 -1
  27. package/dist/esm/rendering/plan/RenderInstruction.d.ts +51 -0
  28. package/dist/esm/rendering/plan/RenderInstruction.js +45 -0
  29. package/dist/esm/rendering/plan/RenderInstruction.js.map +1 -0
  30. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts +4 -0
  31. package/dist/esm/rendering/plan/RenderPlanPlayer.js +58 -7
  32. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
  33. package/dist/esm/rendering/primitives/Graphics.d.ts +70 -5
  34. package/dist/esm/rendering/primitives/Graphics.js +172 -14
  35. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  36. package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts +13 -8
  37. package/dist/esm/rendering/sprite/spriteMaterialSources.js +35 -14
  38. package/dist/esm/rendering/sprite/spriteMaterialSources.js.map +1 -1
  39. package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
  40. package/dist/esm/rendering/text/BitmapText.js +8 -1
  41. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  42. package/dist/esm/rendering/text/BmFont.js +3 -0
  43. package/dist/esm/rendering/text/BmFont.js.map +1 -1
  44. package/dist/esm/rendering/text/GlyphSdf.d.ts +14 -0
  45. package/dist/esm/rendering/text/GlyphSdf.js +41 -11
  46. package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
  47. package/dist/esm/rendering/text/TextStyle.d.ts +5 -0
  48. package/dist/esm/rendering/text/TextStyle.js +1 -1
  49. package/dist/esm/rendering/text/TextStyle.js.map +1 -1
  50. package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
  51. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +23 -1
  52. package/dist/esm/rendering/webgl2/WebGl2Backend.js +50 -0
  53. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  54. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +3 -3
  55. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
  56. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +8 -0
  57. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +8 -0
  58. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -1
  59. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +2 -0
  60. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +62 -39
  61. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  62. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts +7 -0
  63. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +7 -0
  64. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  65. package/dist/esm/rendering/webgl2/glsl/sprite.vert.js +1 -1
  66. package/dist/esm/rendering/webgl2/glsl/text-color.frag.js +1 -1
  67. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +16 -3
  68. package/dist/esm/rendering/webgpu/WebGpuBackend.js +49 -4
  69. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  70. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +53 -41
  71. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  72. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +7 -0
  73. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +17 -11
  74. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
  75. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +2 -2
  76. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +2 -2
  77. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +9 -1
  78. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +122 -77
  79. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  80. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +7 -0
  81. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +22 -13
  82. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  83. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +32 -0
  84. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +58 -12
  85. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  86. package/dist/esm/resources/Loader.js +1 -1
  87. package/dist/esm/resources/Loader.js.map +1 -1
  88. package/dist/exo.esm.js +1022 -265
  89. package/dist/exo.esm.js.map +1 -1
  90. package/package.json +9 -5
@@ -12,8 +12,16 @@ struct ProjectionUniforms {
12
12
  matrix: mat4x4<f32>,
13
13
  };
14
14
 
15
+ struct TransformSlot {
16
+ m0: vec4<f32>,
17
+ m1: vec4<f32>,
18
+ m2: vec4<f32>,
19
+ };
20
+
15
21
  @group(0) @binding(0)
16
22
  var<uniform> projection: ProjectionUniforms;
23
+ @group(0) @binding(1)
24
+ var<storage, read> transforms: array<TransformSlot>;
17
25
 
18
26
  @group(1) @binding(0)
19
27
  var spriteTexture0: texture_2d<f32>;
@@ -49,16 +57,17 @@ var spriteSampler6: sampler;
49
57
  @group(1) @binding(15)
50
58
  var spriteSampler7: sampler;
51
59
 
52
- // Per-instance vertex layout (56 bytes per sprite). The four corners
60
+ // Per-instance vertex layout (36 bytes per sprite). The four corners
53
61
  // of the quad are derived from @builtin(vertex_index) 0..3 inside the
54
- // vertex shader — there is no per-vertex stream.
62
+ // vertex shader — there is no per-vertex stream. The world transform is
63
+ // fetched from the shared transform storage buffer keyed by nodeIndex
64
+ // instead of being packed inline.
55
65
  struct VertexInput {
56
66
  @location(0) localBounds: vec4<f32>, // left, top, right, bottom (local space)
57
- @location(1) transformAB: vec3<f32>, // first row of 2D affine
58
- @location(2) transformCD: vec3<f32>, // second row of 2D affine
59
67
  @location(3) uvBounds: vec4<f32>, // uMin, vMin, uMax, vMax (CPU pre-swaps for flipY)
60
68
  @location(4) color: vec4<f32>, // RGBA tint
61
69
  @location(5) packedSlotFlags: u32, // bits 0..7 = slot, bit 8 = premultiply
70
+ @location(6) nodeIndex: u32, // row into the shared transform storage buffer
62
71
  };
63
72
 
64
73
  struct VertexOutput {
@@ -81,8 +90,12 @@ fn vertexMain(input: VertexInput, @builtin(vertex_index) vid: u32) -> VertexOutp
81
90
  let localX = select(input.localBounds.x, input.localBounds.z, cornerX == 1u);
82
91
  let localY = select(input.localBounds.y, input.localBounds.w, cornerY == 1u);
83
92
 
84
- let worldX = input.transformAB.x * localX + input.transformAB.y * localY + input.transformAB.z;
85
- let worldY = input.transformCD.x * localX + input.transformCD.y * localY + input.transformCD.z;
93
+ // Fetch this instance's world transform from the shared storage buffer,
94
+ // keyed by nodeIndex: m0 = (a, b, c, d), m1 = (tx, ty, 0, 0). (m2 carries the
95
+ // node tint, unused here — the sprite keeps its own per-instance color.)
96
+ let slot = transforms[input.nodeIndex];
97
+ let worldX = slot.m0.x * localX + slot.m0.y * localY + slot.m1.x;
98
+ let worldY = slot.m0.z * localX + slot.m0.w * localY + slot.m1.y;
86
99
 
87
100
  output.position = projection.matrix * vec4<f32>(worldX, worldY, 0.0, 1.0);
88
101
 
@@ -142,7 +155,7 @@ fn fragmentMain(input: VertexOutput) -> @location(0) vec4<f32> {
142
155
  return resolvedSample * input.color;
143
156
  }
144
157
  `;
145
- const instanceStrideBytes = 56;
158
+ const instanceStrideBytes = 36;
146
159
  const wordsPerInstance = instanceStrideBytes / Uint32Array.BYTES_PER_ELEMENT;
147
160
  const projectionByteLength = 64;
148
161
  const initialBatchCapacity = 32;
@@ -160,7 +173,10 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
160
173
  _textureBindGroupLayout = null;
161
174
  _pipelineLayout = null;
162
175
  _uniformBuffer = null;
163
- _uniformBindGroup = null;
176
+ // group(0) bind group = projection UBO + shared transform storage buffer.
177
+ // Recreated whenever the storage buffer identity changes (capacity growth).
178
+ _transformBindGroup = null;
179
+ _transformStorageBuffer = null;
164
180
  _indexBuffer = null;
165
181
  _instanceBuffer = null;
166
182
  _instanceCapacity = 0;
@@ -172,6 +188,9 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
172
188
  _textureSlots = new Map();
173
189
  _slotCount = 0;
174
190
  _instanceCount = 0;
191
+ // Highest transform-storage row referenced by the pending batch; drives the
192
+ // minimum row count uploaded for the storage buffer at flush time.
193
+ _maxNodeIndex = 0;
175
194
  _currentBlendMode = null;
176
195
  // Custom-material state. Per-material pipelines/bind groups are cached; the
177
196
  // current batch's material/base-texture decide when to flush.
@@ -194,6 +213,13 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
194
213
  type: 'uniform',
195
214
  },
196
215
  },
216
+ {
217
+ binding: 1,
218
+ visibility: GPUShaderStage.VERTEX,
219
+ buffer: {
220
+ type: 'read-only-storage',
221
+ },
222
+ },
197
223
  ],
198
224
  });
199
225
  this._textureBindGroupLayout = this._device.createBindGroupLayout({
@@ -228,17 +254,9 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
228
254
  size: projectionByteLength,
229
255
  usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,
230
256
  });
231
- this._uniformBindGroup = this._device.createBindGroup({
232
- layout: this._uniformBindGroupLayout,
233
- entries: [
234
- {
235
- binding: 0,
236
- resource: {
237
- buffer: this._uniformBuffer,
238
- },
239
- },
240
- ],
241
- });
257
+ // The group(0) bind group also binds the shared transform storage buffer,
258
+ // whose identity changes when its capacity grows — so it is built lazily in
259
+ // flush() once the active storage buffer is known.
242
260
  // Static index buffer for the quad. Allocated once at connect; its
243
261
  // contents never change.
244
262
  this._indexBuffer = this._device.createBuffer({
@@ -261,7 +279,8 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
261
279
  this._pipelines.clear();
262
280
  this._instanceBuffer = null;
263
281
  this._indexBuffer = null;
264
- this._uniformBindGroup = null;
282
+ this._transformBindGroup = null;
283
+ this._transformStorageBuffer = null;
265
284
  this._uniformBuffer = null;
266
285
  this._pipelineLayout = null;
267
286
  this._customBaseTextureLayout = null;
@@ -275,6 +294,7 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
275
294
  this._instanceFloat32 = new Float32Array(this._instanceData);
276
295
  this._instanceUint32 = new Uint32Array(this._instanceData);
277
296
  this._instanceCount = 0;
297
+ this._maxNodeIndex = 0;
278
298
  this._currentBlendMode = null;
279
299
  this._currentMaterial = null;
280
300
  this._currentBaseTexture = null;
@@ -292,15 +312,21 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
292
312
  return;
293
313
  }
294
314
  const material = sprite.material;
315
+ // The transform lives in the shared storage buffer, keyed by the draw
316
+ // command's stable nodeIndex (already packed at the draw-command boundary).
317
+ // A direct, non-plan `backend.draw(sprite)` has no command — push the
318
+ // sprite's transform into the buffer and use the freshly-allocated slot.
319
+ const command = backend.activeDrawCommand;
320
+ const nodeIndex = command !== null ? command.nodeIndex : backend._pushTransform(sprite);
295
321
  if (material === null) {
296
- this._renderDefault(sprite, texture, backend);
322
+ this._renderDefault(sprite, texture, backend, nodeIndex);
297
323
  }
298
324
  else {
299
- this._renderCustom(sprite, texture, material, backend);
325
+ this._renderCustom(sprite, texture, material, backend, nodeIndex);
300
326
  }
301
327
  }
302
328
  /** Default multi-texture path: rotate the base texture through 8 slots. */
303
- _renderDefault(sprite, texture, backend) {
329
+ _renderDefault(sprite, texture, backend, nodeIndex) {
304
330
  const blendMode = sprite.blendMode;
305
331
  // Flush triggers: blend-mode change, texture-slot exhaustion, or a custom
306
332
  // batch still in flight that must drain first.
@@ -326,20 +352,14 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
326
352
  // typed-array writes in _packInstance silently fall off the end of a
327
353
  // too-small buffer.
328
354
  this._ensureInstanceCapacity(this._instanceCount + 1);
329
- this._packInstance(sprite, texture, packedSlotFlags);
355
+ this._packInstance(sprite, texture, packedSlotFlags, nodeIndex);
330
356
  this._instanceCount++;
331
357
  }
332
358
  /** Custom-material path: single base texture on group(1), instanced. */
333
- _renderCustom(sprite, texture, material, backend) {
359
+ _renderCustom(sprite, texture, material, backend, nodeIndex) {
334
360
  if (material.shader.wgsl === null) {
335
361
  throw new Error('SpriteMaterial shader has no `wgsl` source; cannot render through the WebGPU backend.');
336
362
  }
337
- if (backend._passCoordinator.stencilActive) {
338
- // MVP boundary: default-material Sprites, Meshes, and Graphics support the
339
- // stencil pipeline variants; a custom-material Sprite does not yet. Throw at
340
- // collection time so the clip scope's push/pop balances.
341
- throw new Error('WebGPU geometry stencil clipping currently supports default-material Sprites, Meshes, and Graphics. A custom-material Sprite under a Geometry clip (RenderNode.clip with a Geometry clipShape) is not supported yet. Use a Rectangle clipShape (scissor) or the WebGL2 backend instead.');
342
- }
343
363
  // The material owns its blend mode; the sprite's own blendMode overrides it
344
364
  // when set away from the default (Normal).
345
365
  const blendMode = sprite.blendMode === BlendModes.Normal ? material.blendMode : sprite.blendMode;
@@ -356,15 +376,14 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
356
376
  backend.setBlendMode(blendMode);
357
377
  // textureSlot word is unused by custom fragments (base binds to group(1)).
358
378
  this._ensureInstanceCapacity(this._instanceCount + 1);
359
- this._packInstance(sprite, texture, 0);
379
+ this._packInstance(sprite, texture, 0, nodeIndex);
360
380
  this._instanceCount++;
361
381
  }
362
382
  flush() {
363
383
  const backend = this._backend;
364
384
  const device = this._device;
365
385
  const uniformBuffer = this._uniformBuffer;
366
- const uniformBindGroup = this._uniformBindGroup;
367
- if (!backend || !device || !uniformBuffer || !uniformBindGroup) {
386
+ if (!backend || !device || !uniformBuffer) {
368
387
  return;
369
388
  }
370
389
  if (this._instanceCount === 0 && !backend.clearRequested) {
@@ -381,13 +400,19 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
381
400
  const pass = backend._passCoordinator.acquirePass().pass;
382
401
  if (this._instanceCount > 0 && !maskClipsAll && this._instanceBuffer !== null && this._indexBuffer !== null && this._currentBlendMode !== null) {
383
402
  device.queue.writeBuffer(this._instanceBuffer, 0, this._instanceData, 0, this._instanceCount * instanceStrideBytes);
403
+ // Resolve the shared transform storage buffer (rows uploaded up to the
404
+ // max nodeIndex referenced by this batch) and bind it alongside the
405
+ // projection UBO on group(0). Both the default and custom programs fetch
406
+ // the world transform from it via nodeIndex.
407
+ const storage = backend.getTransformStorageBuffer(this._maxNodeIndex + 1);
408
+ const transformBindGroup = this._getOrCreateTransformBindGroup(device, uniformBuffer, storage.buffer);
384
409
  const material = this._currentMaterial;
385
410
  const stencil = backend._passCoordinator.stencilActive;
386
411
  if (material === null) {
387
412
  const pipeline = this._getPipeline(this._currentBlendMode, backend.renderTargetFormat, stencil);
388
413
  const textureBindGroup = this._createTextureBindGroup(device, backend);
389
414
  pass.setPipeline(pipeline);
390
- pass.setBindGroup(0, uniformBindGroup);
415
+ pass.setBindGroup(0, transformBindGroup);
391
416
  pass.setBindGroup(1, textureBindGroup);
392
417
  pass.setVertexBuffer(0, this._instanceBuffer);
393
418
  pass.setIndexBuffer(this._indexBuffer, 'uint16');
@@ -395,7 +420,7 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
395
420
  }
396
421
  else {
397
422
  pass.pushDebugGroup('SpriteMaterial (custom)');
398
- this._drawCustomBatch(pass, device, backend, material, uniformBindGroup);
423
+ this._drawCustomBatch(pass, device, backend, material, transformBindGroup, stencil);
399
424
  pass.popDebugGroup();
400
425
  }
401
426
  backend.stats.batches++;
@@ -403,11 +428,31 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
403
428
  }
404
429
  backend._passCoordinator.endPass();
405
430
  this._instanceCount = 0;
431
+ this._maxNodeIndex = 0;
406
432
  this._resetSlots();
407
433
  this._currentBlendMode = null;
408
434
  this._currentMaterial = null;
409
435
  this._currentBaseTexture = null;
410
436
  }
437
+ /**
438
+ * Build (or reuse) the group(0) bind group pairing the fixed projection UBO
439
+ * with the shared transform storage buffer. Cached against the storage buffer
440
+ * identity, which changes only when its capacity grows.
441
+ */
442
+ _getOrCreateTransformBindGroup(device, uniformBuffer, storageBuffer) {
443
+ if (this._transformBindGroup !== null && this._transformStorageBuffer === storageBuffer) {
444
+ return this._transformBindGroup;
445
+ }
446
+ this._transformStorageBuffer = storageBuffer;
447
+ this._transformBindGroup = device.createBindGroup({
448
+ layout: this._uniformBindGroupLayout,
449
+ entries: [
450
+ { binding: 0, resource: { buffer: uniformBuffer } },
451
+ { binding: 1, resource: { buffer: storageBuffer } },
452
+ ],
453
+ });
454
+ return this._transformBindGroup;
455
+ }
411
456
  destroy() {
412
457
  this.disconnect();
413
458
  }
@@ -454,24 +499,18 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
454
499
  }
455
500
  await Promise.all(promises);
456
501
  }
457
- _packInstance(sprite, texture, packedSlotFlags) {
502
+ _packInstance(sprite, texture, packedSlotFlags, nodeIndex) {
458
503
  const offset = this._instanceCount * wordsPerInstance;
459
504
  const f32 = this._instanceFloat32;
460
505
  const u32 = this._instanceUint32;
506
+ // localBounds: left, top, right, bottom (words 0..3, offset 0)
461
507
  const bounds = sprite.getLocalBounds();
462
508
  f32[offset + 0] = bounds.left;
463
509
  f32[offset + 1] = bounds.top;
464
510
  f32[offset + 2] = bounds.right;
465
511
  f32[offset + 3] = bounds.bottom;
466
- const transform = sprite.getGlobalTransform();
467
- f32[offset + 4] = transform.a;
468
- f32[offset + 5] = transform.b;
469
- f32[offset + 6] = transform.x;
470
- f32[offset + 7] = transform.c;
471
- f32[offset + 8] = transform.d;
472
- f32[offset + 9] = transform.y;
473
- // uvBounds: u16x4 normalised, packed into two u32 slots. The CPU
474
- // applies the flipY swap so the shader stays orientation-agnostic.
512
+ // uvBounds: u16x4 normalised, packed into two u32 slots (words 4,5, offset
513
+ // 16). The CPU applies the flipY swap so the shader stays orientation-agnostic.
475
514
  const frame = sprite.textureFrame;
476
515
  const texWidth = texture.width;
477
516
  const texHeight = texture.height;
@@ -482,10 +521,18 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
482
521
  const flipY = texture instanceof Texture && texture.flipY;
483
522
  const vMin = flipY ? vMaxRaw : vMinRaw;
484
523
  const vMax = flipY ? vMinRaw : vMaxRaw;
485
- u32[offset + 10] = uMin | (vMin << 16);
486
- u32[offset + 11] = uMax | (vMax << 16);
487
- u32[offset + 12] = sprite.tint.toRgba();
488
- u32[offset + 13] = packedSlotFlags;
524
+ u32[offset + 4] = uMin | (vMin << 16);
525
+ u32[offset + 5] = uMax | (vMax << 16);
526
+ // color (u8x4 packed) at word 6 (offset 24)
527
+ u32[offset + 6] = sprite.tint.toRgba();
528
+ // packedSlotFlags (u32) at word 7 (offset 28)
529
+ u32[offset + 7] = packedSlotFlags;
530
+ // nodeIndex (u32) at word 8 (offset 32) — row into the shared transform buffer.
531
+ const node = nodeIndex >>> 0;
532
+ u32[offset + 8] = node;
533
+ if (node > this._maxNodeIndex) {
534
+ this._maxNodeIndex = node;
535
+ }
489
536
  }
490
537
  _ensureInstanceCapacity(instanceCount) {
491
538
  if (!this._device || instanceCount <= this._instanceCapacity) {
@@ -587,29 +634,24 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
587
634
  offset: 0,
588
635
  format: 'float32x4',
589
636
  },
590
- {
591
- shaderLocation: 1,
592
- offset: 16,
593
- format: 'float32x3',
594
- },
595
- {
596
- shaderLocation: 2,
597
- offset: 28,
598
- format: 'float32x3',
599
- },
600
637
  {
601
638
  shaderLocation: 3,
602
- offset: 40,
639
+ offset: 16,
603
640
  format: 'unorm16x4',
604
641
  },
605
642
  {
606
643
  shaderLocation: 4,
607
- offset: 48,
644
+ offset: 24,
608
645
  format: 'unorm8x4',
609
646
  },
610
647
  {
611
648
  shaderLocation: 5,
612
- offset: 52,
649
+ offset: 28,
650
+ format: 'uint32',
651
+ },
652
+ {
653
+ shaderLocation: 6,
654
+ offset: 32,
613
655
  format: 'uint32',
614
656
  },
615
657
  ],
@@ -639,14 +681,14 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
639
681
  // ---------------------------------------------------------------------------
640
682
  // Custom-material path
641
683
  // ---------------------------------------------------------------------------
642
- _drawCustomBatch(pass, device, backend, material, projectionBindGroup) {
684
+ _drawCustomBatch(pass, device, backend, material, transformBindGroup, stencil) {
643
685
  const resources = this._getOrCreateCustomResources(material, device);
644
686
  const baseTexture = this._currentBaseTexture ?? Texture.empty;
645
687
  // Re-built every frame so mutations to material.uniforms.X are picked up.
646
688
  this._uploadUserUniforms(material, resources, device);
647
- const pipeline = this._getOrCreateCustomPipeline(resources, this._currentBlendMode, backend.renderTargetFormat, device);
689
+ const pipeline = this._getOrCreateCustomPipeline(resources, this._currentBlendMode, backend.renderTargetFormat, stencil, device);
648
690
  pass.setPipeline(pipeline);
649
- pass.setBindGroup(0, projectionBindGroup);
691
+ pass.setBindGroup(0, transformBindGroup);
650
692
  pass.setBindGroup(1, this._getCustomBaseTextureBindGroup(resources, backend, baseTexture, device));
651
693
  pass.setBindGroup(2, this._buildUserBindGroup(material, resources, backend, device));
652
694
  pass.setVertexBuffer(0, this._instanceBuffer);
@@ -663,8 +705,8 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
663
705
  throw new Error('SpriteMaterial shader has no `wgsl` source; cannot render through the WebGPU backend.');
664
706
  }
665
707
  // The engine owns the vertex stage: prepend the canonical sprite vertex
666
- // module (VertexInput/VertexOutput, group(0) projection, group(1) base
667
- // texture + sampler) to the material's fragment WGSL.
708
+ // module (VertexInput/VertexOutput, group(0) projection + transform storage,
709
+ // group(1) base texture + sampler) to the material's fragment WGSL.
668
710
  const shaderModule = device.createShaderModule({ code: `${spriteVertexWgsl}\n${wgsl}` });
669
711
  const userLayout = this._buildUserBindGroupLayout(device, material);
670
712
  const pipelineLayout = device.createPipelineLayout({
@@ -689,13 +731,13 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
689
731
  });
690
732
  return resources;
691
733
  }
692
- _getOrCreateCustomPipeline(resources, blendMode, format, device) {
693
- const cacheKey = `${blendMode}:${format}`;
734
+ _getOrCreateCustomPipeline(resources, blendMode, format, stencil, device) {
735
+ const cacheKey = `${blendMode}:${format}:${stencil ? 's' : 'n'}`;
694
736
  const existing = resources.pipelines.get(cacheKey);
695
737
  if (existing !== undefined) {
696
738
  return existing;
697
739
  }
698
- const pipeline = device.createRenderPipeline({
740
+ const descriptor = {
699
741
  layout: resources.pipelineLayout,
700
742
  vertex: {
701
743
  module: resources.shaderModule,
@@ -706,11 +748,10 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
706
748
  stepMode: 'instance',
707
749
  attributes: [
708
750
  { shaderLocation: 0, offset: 0, format: 'float32x4' },
709
- { shaderLocation: 1, offset: 16, format: 'float32x3' },
710
- { shaderLocation: 2, offset: 28, format: 'float32x3' },
711
- { shaderLocation: 3, offset: 40, format: 'unorm16x4' },
712
- { shaderLocation: 4, offset: 48, format: 'unorm8x4' },
713
- { shaderLocation: 5, offset: 52, format: 'uint32' },
751
+ { shaderLocation: 3, offset: 16, format: 'unorm16x4' },
752
+ { shaderLocation: 4, offset: 24, format: 'unorm8x4' },
753
+ { shaderLocation: 5, offset: 28, format: 'uint32' },
754
+ { shaderLocation: 6, offset: 32, format: 'uint32' },
714
755
  ],
715
756
  },
716
757
  ],
@@ -729,7 +770,11 @@ class WebGpuSpriteRenderer extends AbstractWebGpuRenderer {
729
770
  primitive: {
730
771
  topology: 'triangle-list',
731
772
  },
732
- });
773
+ };
774
+ if (stencil) {
775
+ descriptor.depthStencil = stencilContentDepthStencilState();
776
+ }
777
+ const pipeline = device.createRenderPipeline(descriptor);
733
778
  resources.pipelines.set(cacheKey, pipeline);
734
779
  return pipeline;
735
780
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WebGpuSpriteRenderer.js","sources":["../../../../../src/rendering/webgpu/WebGpuSpriteRenderer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebGpuSpriteRenderer.js","sources":["../../../../../src/rendering/webgpu/WebGpuSpriteRenderer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -12,6 +12,13 @@ import type { WebGpuBackend } from './WebGpuBackend';
12
12
  * render pass.
13
13
  */
14
14
  export declare class WebGpuTextRenderer extends AbstractWebGpuRenderer<Text | BitmapText> {
15
+ /**
16
+ * Text packs its world transform into its own per-node data buffer and never
17
+ * reads the shared transform storage, so the plan player skips writing
18
+ * transform records for text draws.
19
+ * @internal
20
+ */
21
+ readonly _consumesSharedTransform = false;
15
22
  private _device;
16
23
  private _shaderModule;
17
24
  private _frameBindGroupLayout;