@flighthq/scene2d-wgpu 0.3.0-next.906.07cea63 → 0.3.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 (128) hide show
  1. package/dist/contract.d.ts +8 -6
  2. package/dist/contract.d.ts.map +1 -1
  3. package/dist/contract.js +8 -6
  4. package/dist/contract.js.map +1 -1
  5. package/dist/enableWgpuColorAdjustmentGuards.js +2 -2
  6. package/dist/enableWgpuColorAdjustmentGuards.js.map +1 -1
  7. package/dist/enableWgpuStrokePathTessellation.d.ts +3 -0
  8. package/dist/enableWgpuStrokePathTessellation.d.ts.map +1 -0
  9. package/dist/enableWgpuStrokePathTessellation.js +8 -0
  10. package/dist/enableWgpuStrokePathTessellation.js.map +1 -0
  11. package/dist/index.d.ts +2 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +2 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/wgpuBitmapText.d.ts.map +1 -1
  16. package/dist/wgpuBitmapText.js +20 -16
  17. package/dist/wgpuBitmapText.js.map +1 -1
  18. package/dist/wgpuCache.d.ts.map +1 -1
  19. package/dist/wgpuCache.js +19 -16
  20. package/dist/wgpuCache.js.map +1 -1
  21. package/dist/wgpuClipContours.js +3 -3
  22. package/dist/wgpuClipContours.js.map +1 -1
  23. package/dist/wgpuClipRectangle.js +3 -3
  24. package/dist/wgpuClipRectangle.js.map +1 -1
  25. package/dist/wgpuColorAdjustmentMaterialFeature.d.ts.map +1 -1
  26. package/dist/wgpuColorAdjustmentMaterialFeature.js +156 -67
  27. package/dist/wgpuColorAdjustmentMaterialFeature.js.map +1 -1
  28. package/dist/wgpuMeshShapeRenderer.d.ts +4 -0
  29. package/dist/wgpuMeshShapeRenderer.d.ts.map +1 -0
  30. package/dist/wgpuMeshShapeRenderer.js +92 -0
  31. package/dist/wgpuMeshShapeRenderer.js.map +1 -0
  32. package/dist/wgpuNode2D.js +2 -2
  33. package/dist/wgpuNode2D.js.map +1 -1
  34. package/dist/wgpuParticleEmitter2D.d.ts.map +1 -1
  35. package/dist/wgpuParticleEmitter2D.js +26 -10
  36. package/dist/wgpuParticleEmitter2D.js.map +1 -1
  37. package/dist/wgpuQuadBatch.d.ts +1 -1
  38. package/dist/wgpuQuadBatch.d.ts.map +1 -1
  39. package/dist/wgpuQuadBatch.js +18 -13
  40. package/dist/wgpuQuadBatch.js.map +1 -1
  41. package/dist/wgpuQuadBatchWriter.d.ts +12 -0
  42. package/dist/wgpuQuadBatchWriter.d.ts.map +1 -0
  43. package/dist/{wgpuSpriteBatch.js → wgpuQuadBatchWriter.js} +97 -72
  44. package/dist/wgpuQuadBatchWriter.js.map +1 -0
  45. package/dist/wgpuRasterShapeRenderer.d.ts +4 -0
  46. package/dist/wgpuRasterShapeRenderer.d.ts.map +1 -0
  47. package/dist/wgpuRasterShapeRenderer.js +110 -0
  48. package/dist/wgpuRasterShapeRenderer.js.map +1 -0
  49. package/dist/wgpuRichText.d.ts.map +1 -1
  50. package/dist/wgpuRichText.js +7 -4
  51. package/dist/wgpuRichText.js.map +1 -1
  52. package/dist/wgpuScale9Shape.d.ts +1 -3
  53. package/dist/wgpuScale9Shape.d.ts.map +1 -1
  54. package/dist/wgpuScale9Shape.js +36 -33
  55. package/dist/wgpuScale9Shape.js.map +1 -1
  56. package/dist/wgpuShape.d.ts +2 -1
  57. package/dist/wgpuShape.d.ts.map +1 -1
  58. package/dist/wgpuShape.js +19 -153
  59. package/dist/wgpuShape.js.map +1 -1
  60. package/dist/wgpuShapeData.d.ts +6 -0
  61. package/dist/wgpuShapeData.d.ts.map +1 -0
  62. package/dist/wgpuShapeData.js +81 -0
  63. package/dist/wgpuShapeData.js.map +1 -0
  64. package/dist/wgpuShapeMesh.d.ts +2 -1
  65. package/dist/wgpuShapeMesh.d.ts.map +1 -1
  66. package/dist/wgpuShapeMesh.js +74 -62
  67. package/dist/wgpuShapeMesh.js.map +1 -1
  68. package/dist/wgpuShapeRasterizer.d.ts +4 -0
  69. package/dist/wgpuShapeRasterizer.d.ts.map +1 -0
  70. package/dist/wgpuShapeRasterizer.js +11 -0
  71. package/dist/wgpuShapeRasterizer.js.map +1 -0
  72. package/dist/wgpuSprite.d.ts +3 -2
  73. package/dist/wgpuSprite.d.ts.map +1 -1
  74. package/dist/wgpuSprite.js +67 -25
  75. package/dist/wgpuSprite.js.map +1 -1
  76. package/dist/wgpuStandardMaterial.d.ts +1 -1
  77. package/dist/wgpuStandardMaterial.js +3 -3
  78. package/dist/wgpuStandardMaterial.js.map +1 -1
  79. package/dist/wgpuTextLabel.d.ts.map +1 -1
  80. package/dist/wgpuTextLabel.js +15 -12
  81. package/dist/wgpuTextLabel.js.map +1 -1
  82. package/dist/wgpuTilemap.d.ts.map +1 -1
  83. package/dist/wgpuTilemap.js +19 -18
  84. package/dist/wgpuTilemap.js.map +1 -1
  85. package/package.json +22 -18
  86. package/src/enableWgpuColorAdjustmentGuards.test.ts +4 -4
  87. package/src/enableWgpuStrokePathTessellation.test.ts +23 -0
  88. package/src/wgpuBitmapText.test.ts +2 -2
  89. package/src/wgpuCache.test.ts +14 -11
  90. package/src/wgpuColorAdjustmentMaterialFeature.test.ts +52 -46
  91. package/src/wgpuMeshShapeRenderer.test.ts +167 -0
  92. package/src/wgpuParticleEmitter2D.test.ts +16 -7
  93. package/src/wgpuQuadBatch.test.ts +3 -3
  94. package/src/{wgpuSpriteBatch.test.ts → wgpuQuadBatchWriter.test.ts} +79 -70
  95. package/src/wgpuRasterShapeRenderer.test.ts +156 -0
  96. package/src/wgpuScale9Shape.test.ts +0 -13
  97. package/src/wgpuShape.test.ts +169 -15
  98. package/src/wgpuShapeData.test.ts +97 -0
  99. package/src/wgpuShapeMesh.test.ts +170 -15
  100. package/src/wgpuShapeRasterizer.test.ts +36 -0
  101. package/src/wgpuSprite.test.ts +45 -10
  102. package/src/wgpuStandardMaterial.test.ts +3 -3
  103. package/src/wgpuTextLabel.test.ts +7 -7
  104. package/src/wgpuTilemap.test.ts +4 -4
  105. package/src/wgpuVelocity.test.ts +3 -3
  106. package/dist/wgpuBitmap.d.ts +0 -4
  107. package/dist/wgpuBitmap.d.ts.map +0 -1
  108. package/dist/wgpuBitmap.js +0 -84
  109. package/dist/wgpuBitmap.js.map +0 -1
  110. package/dist/wgpuRenderTargetNode2D.d.ts +0 -11
  111. package/dist/wgpuRenderTargetNode2D.d.ts.map +0 -1
  112. package/dist/wgpuRenderTargetNode2D.js +0 -100
  113. package/dist/wgpuRenderTargetNode2D.js.map +0 -1
  114. package/dist/wgpuSpriteBatch.d.ts +0 -12
  115. package/dist/wgpuSpriteBatch.d.ts.map +0 -1
  116. package/dist/wgpuSpriteBatch.js.map +0 -1
  117. package/dist/wgpuSpriteRenderer.d.ts +0 -3
  118. package/dist/wgpuSpriteRenderer.d.ts.map +0 -1
  119. package/dist/wgpuSpriteRenderer.js +0 -55
  120. package/dist/wgpuSpriteRenderer.js.map +0 -1
  121. package/dist/wgpuVideo.d.ts +0 -6
  122. package/dist/wgpuVideo.d.ts.map +0 -1
  123. package/dist/wgpuVideo.js +0 -63
  124. package/dist/wgpuVideo.js.map +0 -1
  125. package/src/wgpuBitmap.test.ts +0 -40
  126. package/src/wgpuRenderTargetNode2D.test.ts +0 -267
  127. package/src/wgpuSpriteRenderer.test.ts +0 -63
  128. package/src/wgpuVideo.test.ts +0 -59
@@ -1,7 +1,7 @@
1
1
  import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
2
2
  import { getRenderProxy2D, isRenderProxyVisible, noopRendererData } from '@flighthq/render/contract';
3
3
  import { getNode2DRuntime } from '@flighthq/scene2d/contract';
4
- import { flushWgpuSpriteBatch } from './wgpuSpriteBatch';
4
+ import { flushWgpuQuadBatchWriter } from './wgpuQuadBatchWriter';
5
5
  export function drawWgpuScene2D(_state, _renderProxy) {
6
6
  // Plain display objects have no visual geometry of their own.
7
7
  }
@@ -31,7 +31,7 @@ export function renderWgpuScene2D(state, source) {
31
31
  }
32
32
  }
33
33
  }
34
- flushWgpuSpriteBatch(state);
34
+ flushWgpuQuadBatchWriter(state);
35
35
  clipHooks?.finalize(state);
36
36
  }
37
37
  export const defaultWgpuScene2DRenderer = {
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuNode2D.js","sourceRoot":"","sources":["../src/wgpuNode2D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,UAAU,eAAe,CAAC,MAAuB,EAAE,YAA2B;IAClF,8DAA8D;AAChE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAsB,EAAE,MAAc;IACtE,MAAM,SAAS,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;IAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,sBAAsB,CAAC;IAE/C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IAEtB,OAAO,WAAW,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,WAAW,CAAW,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,SAAS;QAE/B,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QAEjC,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEzC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAAE,SAAS;QAE1C,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAE1C,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;YACpD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC9C,SAAS,CAAC,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAW,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC5B,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAoB;IACzD,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,eAAe;CACxB,CAAC"}
1
+ {"version":3,"file":"wgpuNode2D.js","sourceRoot":"","sources":["../src/wgpuNode2D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,UAAU,eAAe,CAAC,MAAuB,EAAE,YAA2B;IAClF,8DAA8D;AAChE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAsB,EAAE,MAAc;IACtE,MAAM,SAAS,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;IAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,sBAAsB,CAAC;IAE/C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IAEtB,OAAO,WAAW,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,WAAW,CAAW,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,SAAS;QAE/B,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QAEjC,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEzC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAAE,SAAS;QAE1C,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAE1C,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;YACpD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC9C,SAAS,CAAC,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAW,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAChC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAoB;IACzD,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,eAAe;CACxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuParticleEmitter2D.d.ts","sourceRoot":"","sources":["../src/wgpuParticleEmitter2D.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAqB,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAsLlH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CAiIlG;AAED,eAAO,MAAM,oCAAoC,EAAE,cAMlD,CAAC"}
1
+ {"version":3,"file":"wgpuParticleEmitter2D.d.ts","sourceRoot":"","sources":["../src/wgpuParticleEmitter2D.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAqB,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAsLlH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CAwJlG;AAED,eAAO,MAAM,oCAAoC,EAAE,cAMlD,CAAC"}
@@ -1,8 +1,8 @@
1
- import { hasImageResourcePixels } from '@flighthq/image/contract';
2
- import { bindWgpuImageResourceTexture } from '@flighthq/render-wgpu/contract';
3
- import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
1
+ import { getWgpuRenderStateRuntime, getWgpuSampler, resolveWgpuTexture } from '@flighthq/render-wgpu/contract';
2
+ import { SCENE2D_WORKING_COLOR_SPACE } from '@flighthq/render/contract';
4
3
  import { noopRendererData } from '@flighthq/render/contract';
5
- import { flushWgpuSpriteBatch } from './wgpuSpriteBatch';
4
+ import { getTextureHeight, getTextureWidth, hasTextureSource } from '@flighthq/texture/contract';
5
+ import { flushWgpuQuadBatchWriter } from './wgpuQuadBatchWriter';
6
6
  // Per-instance layout in the instance buffer (14 floats = 56 bytes):
7
7
  // 0: px, 1: py, 2: cosScale, 3: sinScale
8
8
  // 4: r, 5: g, 6: b, 7: alpha
@@ -167,17 +167,33 @@ export function drawWgpuParticleEmitter2D(state, renderProxy) {
167
167
  return;
168
168
  const source = renderProxy.source;
169
169
  const { atlas, alphas, colors, ids, particleCount, transforms } = source.data;
170
- if (atlas === null || atlas.image === null || !hasImageResourcePixels(atlas.image) || particleCount === 0)
170
+ if (atlas === null || atlas.texture === null || !hasTextureSource(atlas.texture) || particleCount === 0)
171
171
  return;
172
172
  const resources = ensureParticleResources(state);
173
173
  ensureParticleInstanceBuffer(state, particleCount);
174
174
  state.applyBlendMode?.(state, renderProxy.blendMode);
175
- const textureEntry = bindWgpuImageResourceTexture(state, atlas.image, false, true);
175
+ const textureEntry = resolveWgpuTexture(state, atlas.texture, true, SCENE2D_WORKING_COLOR_SPACE);
176
+ if (textureEntry === null)
177
+ return;
178
+ const textureBindGroup = state.device.createBindGroup({
179
+ layout: runtime.textureBindGroupLayout,
180
+ entries: [
181
+ { binding: 0, resource: textureEntry.view },
182
+ {
183
+ binding: 1,
184
+ resource: getWgpuSampler(state, atlas.texture.sampler.minFilter.startsWith('nearest') ? 'nearest' : 'linear', atlas.texture.sampler.magFilter.startsWith('nearest') ? 'nearest' : 'linear', atlas.texture.sampler.wrapU, atlas.texture.sampler.wrapV, atlas.texture.sampler.mipmaps && atlas.texture.sampler.minFilter.includes('mipmap')
185
+ ? atlas.texture.sampler.minFilter.endsWith('nearest')
186
+ ? 'nearest'
187
+ : 'linear'
188
+ : undefined, atlas.texture.sampler.anisotropy),
189
+ },
190
+ ],
191
+ });
176
192
  const regions = atlas.regions;
177
193
  const numRegions = regions.length;
178
194
  const nodeAlpha = renderProxy.alpha;
179
- const iw = 1 / (atlas.image.width || 1);
180
- const ih = 1 / (atlas.image.height || 1);
195
+ const iw = 1 / Math.max(1, getTextureWidth(atlas.texture));
196
+ const ih = 1 / Math.max(1, getTextureHeight(atlas.texture));
181
197
  const instanceData = runtime.particleInstanceData;
182
198
  let drawCount = 0;
183
199
  let base = 0;
@@ -279,14 +295,14 @@ export function drawWgpuParticleEmitter2D(state, renderProxy) {
279
295
  const pass = runtime.renderPass;
280
296
  pass.setPipeline(getParticlePipeline(state, resources));
281
297
  pass.setBindGroup(0, runtime.uniformBindGroup, [uniformOffset]);
282
- pass.setBindGroup(1, textureEntry.bindGroup);
298
+ pass.setBindGroup(1, textureBindGroup);
283
299
  pass.setBindGroup(2, instanceBindGroup);
284
300
  pass.draw(6, drawCount, 0, 0);
285
301
  }
286
302
  export const defaultWgpuParticleEmitter2DRenderer = {
287
303
  createData: noopRendererData,
288
304
  submit(state, node) {
289
- flushWgpuSpriteBatch(state);
305
+ flushWgpuQuadBatchWriter(state);
290
306
  drawWgpuParticleEmitter2D(state, node);
291
307
  },
292
308
  };
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuParticleEmitter2D.js","sourceRoot":"","sources":["../src/wgpuParticleEmitter2D.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wgpuParticleEmitter2D.js","sourceRoot":"","sources":["../src/wgpuParticleEmitter2D.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { SpriteRenderer } from '@flighthq/types/contract';
2
- import { ensureWgpuQuadBatchResources, getWgpuQuadBatchPipeline } from './wgpuSpriteBatch';
2
+ import { ensureWgpuQuadBatchResources, getWgpuQuadBatchPipeline } from './wgpuQuadBatchWriter';
3
3
  export { ensureWgpuQuadBatchResources, getWgpuQuadBatchPipeline };
4
4
  export declare const defaultWgpuQuadBatchRenderer: SpriteRenderer;
5
5
  //# sourceMappingURL=wgpuQuadBatch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuQuadBatch.d.ts","sourceRoot":"","sources":["../src/wgpuQuadBatch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAIV,cAAc,EAGf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EAKzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,CAAC;AAqGlE,eAAO,MAAM,4BAA4B,EAAE,cAI1C,CAAC"}
1
+ {"version":3,"file":"wgpuQuadBatch.d.ts","sourceRoot":"","sources":["../src/wgpuQuadBatch.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAIV,cAAc,EAGf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EAKzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,CAAC;AAyGlE,eAAO,MAAM,4BAA4B,EAAE,cAI1C,CAAC"}
@@ -1,13 +1,14 @@
1
- import { hasImageResourcePixels } from '@flighthq/image/contract';
2
- import { resolveWgpuMaterialRenderer } from '@flighthq/render-wgpu/contract';
1
+ import { resolveWgpuMaterialRenderer, resolveWgpuTexture } from '@flighthq/render-wgpu/contract';
3
2
  import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
3
+ import { SCENE2D_WORKING_COLOR_SPACE } from '@flighthq/render/contract';
4
4
  import { noopRendererData } from '@flighthq/render/contract';
5
+ import { getTextureHeight, getTextureWidth, hasTextureSource } from '@flighthq/texture/contract';
5
6
  import { BatchFormat } from '@flighthq/types/contract';
6
- import { ensureWgpuQuadBatchResources, getWgpuQuadBatchPipeline, packWgpuSpriteBatchMaterialInstance, prepareWgpuSpriteBatchWrite, recordWgpuSpriteBatchColorScaleBias, SPRITE_INSTANCE_FLOATS, } from './wgpuSpriteBatch';
7
+ import { ensureWgpuQuadBatchResources, getWgpuQuadBatchPipeline, packWgpuQuadBatchMaterialInstance, prepareWgpuQuadBatchWrite, recordWgpuQuadBatchColorScaleBias, QUAD_BATCH_INSTANCE_FLOATS, } from './wgpuQuadBatchWriter';
7
8
  export { ensureWgpuQuadBatchResources, getWgpuQuadBatchPipeline };
8
9
  // Each quad writes the 13 base instance floats; any material packs its own per-instance data into the
9
10
  // parallel material buffer.
10
- const INSTANCE_STRIDE_FLOATS = SPRITE_INSTANCE_FLOATS;
11
+ const INSTANCE_STRIDE_FLOATS = QUAD_BATCH_INSTANCE_FLOATS;
11
12
  function submitWgpuQuadBatch(state, quadBatch) {
12
13
  const runtime = getWgpuRenderStateRuntime(state);
13
14
  if (runtime.renderPass === null)
@@ -15,24 +16,28 @@ function submitWgpuQuadBatch(state, quadBatch) {
15
16
  const source = quadBatch.source;
16
17
  const data = source.data;
17
18
  const { atlas, instanceCount, ids, transforms } = data;
18
- if (atlas === null || atlas.image === null || !hasImageResourcePixels(atlas.image) || instanceCount === 0)
19
+ if (atlas === null || atlas.texture === null || !hasTextureSource(atlas.texture) || instanceCount === 0)
19
20
  return;
20
21
  const material = quadBatch.material;
21
22
  const materialRenderer = resolveWgpuMaterialRenderer(state, material);
22
23
  if (materialRenderer === null)
23
24
  return;
25
+ const texture = atlas.texture;
26
+ const textureEntry = resolveWgpuTexture(state, texture, true, SCENE2D_WORKING_COLOR_SPACE);
27
+ if (textureEntry === null)
28
+ return;
24
29
  const nodeMaterialData = quadBatch.materialData;
25
30
  // Per-quad color adjustments, overriding the node-level tint for the quads that carry one.
26
31
  const perQuadColorScaleBias = data.materialData;
27
32
  const nodeColorScaleBias = quadBatch.colorScaleBias;
28
33
  const nodeColorMatrix = quadBatch.colorMatrix;
29
- const startCount = runtime.spriteBatchCount;
30
- const base = prepareWgpuSpriteBatchWrite(state, atlas.image, quadBatch.blendMode, material, materialRenderer, instanceCount);
34
+ const startCount = runtime.quadBatchWriterCount;
35
+ const base = prepareWgpuQuadBatchWrite(state, textureEntry, texture.sampler, quadBatch.blendMode, material, materialRenderer, instanceCount);
31
36
  const regions = atlas.regions;
32
37
  const numRegions = regions.length;
33
- const iw = 1 / (atlas.image.width || 1);
34
- const ih = 1 / (atlas.image.height || 1);
35
- const instanceData = runtime.spriteBatchInstanceData;
38
+ const iw = 1 / Math.max(1, getTextureWidth(texture));
39
+ const ih = 1 / Math.max(1, getTextureHeight(texture));
40
+ const instanceData = runtime.quadBatchWriterInstanceData;
36
41
  const isVector2 = data.transformType === 'vector2';
37
42
  const pt = quadBatch.transform2D;
38
43
  const pa = pt.a, pb = pt.b, pc = pt.c, pd = pt.d, ptx = pt.tx, pty = pt.ty;
@@ -74,16 +79,16 @@ function submitWgpuQuadBatch(state, quadBatch) {
74
79
  instanceData[writeBase + 10] = (region.x + region.width) * iw;
75
80
  instanceData[writeBase + 11] = (region.y + region.height) * ih;
76
81
  instanceData[writeBase + 12] = alpha;
77
- packWgpuSpriteBatchMaterialInstance(state, nodeMaterialData, startCount + drawCount);
82
+ packWgpuQuadBatchMaterialInstance(state, nodeMaterialData, startCount + drawCount);
78
83
  // Per-quad tint overrides the node-level tint (null → the node's, itself possibly null → untinted).
79
84
  const colorScaleBias = perQuadColorScaleBias?.[i] ??
80
85
  nodeColorMatrix ??
81
86
  nodeColorScaleBias;
82
- recordWgpuSpriteBatchColorScaleBias(state, colorScaleBias, startCount + drawCount);
87
+ recordWgpuQuadBatchColorScaleBias(state, colorScaleBias, startCount + drawCount);
83
88
  writeBase += INSTANCE_STRIDE_FLOATS;
84
89
  drawCount++;
85
90
  }
86
- runtime.spriteBatchCount += drawCount;
91
+ runtime.quadBatchWriterCount += drawCount;
87
92
  }
88
93
  export const defaultWgpuQuadBatchRenderer = {
89
94
  format: BatchFormat.Quad,
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuQuadBatch.js","sourceRoot":"","sources":["../src/wgpuQuadBatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wgpuQuadBatch.js","sourceRoot":"","sources":["../src/wgpuQuadBatch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { ColorScaleBias, TintMaterialData, Material, MaterialData, SamplerLike, WgpuMaterialRenderer, WgpuQuadBatchResources, WgpuRenderState, WgpuTextureEntry } from '@flighthq/types/contract';
2
+ import type { BlendMode } from '@flighthq/types/contract';
3
+ export declare const QUAD_BATCH_INSTANCE_FLOATS = 13;
4
+ export declare function ensureWgpuQuadBatchResources(state: WgpuRenderState): WgpuQuadBatchResources;
5
+ export declare function flushWgpuQuadBatchWriter(state: WgpuRenderState): void;
6
+ export declare function getWgpuQuadBatchPipeline(state: WgpuRenderState, resources: WgpuQuadBatchResources, module: GPUShaderModule, hasMaterialData: boolean, blendMode: BlendMode | null): GPURenderPipeline;
7
+ export declare function getWgpuQuadBatchPreludeWGSL(): string;
8
+ export declare function packWgpuQuadBatchMaterialInstance(state: WgpuRenderState, materialData: MaterialData | null, instanceIndex: number): void;
9
+ export declare function prepareWgpuQuadBatchWrite(state: WgpuRenderState, texture: Readonly<WgpuTextureEntry>, sampler: Readonly<SamplerLike> | null, blendMode: BlendMode | null, material: Material | null, materialRenderer: WgpuMaterialRenderer, maxInstances: number, smoothing?: boolean | null): number;
10
+ export declare function recordWgpuQuadBatchColorScaleBias(state: WgpuRenderState, colorScaleBias: ColorScaleBias | TintMaterialData | readonly number[] | null | undefined, instanceIndex: number): void;
11
+ export declare function resetWgpuQuadBatchWriterBufferPool(state: WgpuRenderState): void;
12
+ //# sourceMappingURL=wgpuQuadBatchWriter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wgpuQuadBatchWriter.d.ts","sourceRoot":"","sources":["../src/wgpuQuadBatchWriter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAEjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAU1D,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAmD7C,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,eAAe,GAAG,sBAAsB,CAwC3F;AAID,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CA+ErE;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,sBAAsB,EACjC,MAAM,EAAE,eAAe,EACvB,eAAe,EAAE,OAAO,EACxB,SAAS,EAAE,SAAS,GAAG,IAAI,GAC1B,iBAAiB,CAkDnB;AAKD,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAKD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,YAAY,GAAG,IAAI,EACjC,aAAa,EAAE,MAAM,GACpB,IAAI,CAaN;AAOD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,EACrC,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,gBAAgB,EAAE,oBAAoB,EACtC,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,OAAO,GAAG,IAAW,GAC/B,MAAM,CAmCR;AAOD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,eAAe,EACtB,cAAc,EAAE,cAAc,GAAG,gBAAgB,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,EACxF,aAAa,EAAE,MAAM,GACpB,IAAI,CAQN;AAKD,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAE/E"}
@@ -1,4 +1,4 @@
1
- import { bindWgpuImageResourceTexture, getWgpuBlendState, resolveWgpuSmoothingBindGroup, } from '@flighthq/render-wgpu/contract';
1
+ import { getWgpuBlendState, getWgpuSampler, resolveWgpuSmoothingBindGroup } from '@flighthq/render-wgpu/contract';
2
2
  import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
3
3
  // Base per-instance layout (13 floats = 52 bytes). This is a fixed contract material shaders read
4
4
  // from the instance storage buffer; it carries no material concern (no color adjustment). A material
@@ -8,9 +8,9 @@ import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
8
8
  // [6-7] width, height — region size in pixels
9
9
  // [8-11] u0,v0,u1,v1 — atlas UV rect
10
10
  // [12] alpha — per-instance alpha
11
- export const SPRITE_INSTANCE_FLOATS = 13;
12
- const SPRITE_INSTANCE_STRIDE = SPRITE_INSTANCE_FLOATS * 4;
13
- // Shared WGSL prelude for sprite-batch material shaders: the base Uniforms and InstanceData structs,
11
+ export const QUAD_BATCH_INSTANCE_FLOATS = 13;
12
+ const QUAD_BATCH_INSTANCE_STRIDE = QUAD_BATCH_INSTANCE_FLOATS * 4;
13
+ // Shared WGSL prelude for quad-batch writer material shaders: the base Uniforms and InstanceData structs,
14
14
  // the standard bind-group bindings (@group(0) uniform, @group(1) texture/sampler, @group(2)
15
15
  // instances), and a quadBaseVertex helper that expands one instance corner into clip-space position,
16
16
  // UV, and alpha. A material module appends its own @group(3) material buffer (when it uses one), a
@@ -94,50 +94,53 @@ export function ensureWgpuQuadBatchResources(state) {
94
94
  return resources;
95
95
  }
96
96
  const _quadBatchResources = new WeakMap();
97
- export function flushWgpuSpriteBatch(state) {
97
+ export function flushWgpuQuadBatchWriter(state) {
98
98
  const runtime = getWgpuRenderStateRuntime(state);
99
- const count = runtime.spriteBatchCount;
99
+ const count = runtime.quadBatchWriterCount;
100
100
  if (count === 0 || runtime.renderPass === null) {
101
- resetWgpuSpriteBatch(state);
101
+ resetWgpuQuadBatchWriter(state);
102
102
  return;
103
103
  }
104
- const texture = runtime.spriteBatchTexture;
105
- const blendMode = runtime.spriteBatchBlendMode;
106
- const smoothing = runtime.spriteBatchSmoothing;
107
- const renderer = runtime.spriteBatchMaterialRenderer;
104
+ const texture = runtime.quadBatchWriterTexture;
105
+ const sampler = runtime.quadBatchWriterSampler;
106
+ const blendMode = runtime.quadBatchWriterBlendMode;
107
+ const smoothing = runtime.quadBatchWriterSmoothing;
108
+ const renderer = runtime.quadBatchWriterMaterialRenderer;
108
109
  // The color-adjustment fold is opt-in (registerWgpuColorAdjustmentMaterialFeature): when installed it resolves a
109
110
  // tinted batch to its per-instance @group(3) storage data + folded module; an untinted batch (or an
110
111
  // un-enabled state) falls back to the resolved material's own per-instance data, and no fold WGSL is
111
112
  // linked into this module. CT and material per-instance data never mix in a built-in batch (built-in
112
113
  // materials have no per-instance floats).
113
114
  const ctFlush = runtime.wgpuColorAdjustmentMaterialFeature?.resolveFlush(state, count) ?? null;
114
- const group3Floats = ctFlush !== null ? ctFlush.floats : runtime.spriteBatchMaterialFloats;
115
- const group3Data = ctFlush !== null ? ctFlush.data : runtime.spriteBatchMaterialData;
116
- resetWgpuSpriteBatch(state);
115
+ const group3Floats = ctFlush !== null ? ctFlush.floats : runtime.quadBatchWriterMaterialFloats;
116
+ const group3Data = ctFlush !== null ? ctFlush.data : runtime.quadBatchWriterMaterialData;
117
+ resetWgpuQuadBatchWriter(state);
117
118
  const resources = ensureWgpuQuadBatchResources(state);
118
119
  // Claim a distinct pool slot for this flush. The canvas pass is submitted once at end of frame, so
119
120
  // a buffer shared across flushes would be rewritten before any draw reads it, leaving every draw
120
121
  // reading the last flush's data. A per-flush slot keeps each draw's instances intact until submit.
121
- const slot = acquireWgpuSpriteBatchBufferSlot(state);
122
- const instanceBytes = count * SPRITE_INSTANCE_STRIDE;
122
+ const slot = acquireWgpuQuadBatchWriterBufferSlot(state);
123
+ const instanceBytes = count * QUAD_BATCH_INSTANCE_STRIDE;
123
124
  if (slot.instanceBuffer === null || slot.instanceCapacity < instanceBytes) {
124
- const capacity = Math.max(instanceBytes, slot.instanceCapacity * 2, SPRITE_INSTANCE_STRIDE * 256);
125
- slot.instanceBuffer = createWgpuSpriteBatchBuffer(state, capacity);
125
+ const capacity = Math.max(instanceBytes, slot.instanceCapacity * 2, QUAD_BATCH_INSTANCE_STRIDE * 256);
126
+ slot.instanceBuffer = createWgpuQuadBatchWriterBuffer(state, capacity);
126
127
  slot.instanceCapacity = capacity;
127
128
  }
128
- state.device.queue.writeBuffer(slot.instanceBuffer, 0, runtime.spriteBatchInstanceData.buffer, 0, instanceBytes);
129
+ state.device.queue.writeBuffer(slot.instanceBuffer, 0, runtime.quadBatchWriterInstanceData.buffer, 0, instanceBytes);
129
130
  if (group3Floats > 0) {
130
131
  const group3Bytes = count * group3Floats * 4;
131
132
  if (slot.materialBuffer === null || slot.materialCapacity < group3Bytes) {
132
133
  const capacity = Math.max(group3Bytes, slot.materialCapacity * 2, group3Floats * 4 * 256);
133
- slot.materialBuffer = createWgpuSpriteBatchBuffer(state, capacity);
134
+ slot.materialBuffer = createWgpuQuadBatchWriterBuffer(state, capacity);
134
135
  slot.materialCapacity = capacity;
135
136
  }
136
137
  state.device.queue.writeBuffer(slot.materialBuffer, 0, group3Data.buffer, 0, group3Bytes);
137
138
  }
138
139
  state.applyBlendMode?.(state, blendMode);
139
- const textureEntry = bindWgpuImageResourceTexture(state, texture, false, true);
140
- const uniformOffset = writeWgpuSpriteBatchUniforms(state, textureEntry.straightAlpha === true);
140
+ const textureBindGroup = sampler !== null
141
+ ? createWgpuTextureSamplerBindGroup(state, texture.view, sampler)
142
+ : resolveWgpuSmoothingBindGroup(state, texture, smoothing);
143
+ const uniformOffset = writeWgpuQuadBatchWriterUniforms(state, texture.straightAlpha === true);
141
144
  const instanceBindGroup = state.device.createBindGroup({
142
145
  layout: resources.instanceBindGroupLayout,
143
146
  entries: [{ binding: 0, resource: { buffer: slot.instanceBuffer } }],
@@ -149,7 +152,7 @@ export function flushWgpuSpriteBatch(state) {
149
152
  pass.setBindGroup(0, runtime.uniformBindGroup, [uniformOffset]);
150
153
  // Per-bitmap smoothing selects the LINEAR/NEAREST variant bind group; a null key (sprites/text/shapes)
151
154
  // uses the entry's global-default bind group.
152
- pass.setBindGroup(1, resolveWgpuSmoothingBindGroup(state, textureEntry, smoothing));
155
+ pass.setBindGroup(1, textureBindGroup);
153
156
  pass.setBindGroup(2, instanceBindGroup);
154
157
  if (group3Floats > 0) {
155
158
  const materialBindGroup = state.device.createBindGroup({
@@ -221,56 +224,58 @@ export function getWgpuQuadBatchPreludeWGSL() {
221
224
  // Writes one instance's per-instance material floats into the parallel material buffer at the
222
225
  // instance's slot. No-op for materials with no per-instance data (floats === 0 / no packInstance),
223
226
  // so the base path never assumes any particular material contributes here.
224
- export function packWgpuSpriteBatchMaterialInstance(state, materialData, instanceIndex) {
227
+ export function packWgpuQuadBatchMaterialInstance(state, materialData, instanceIndex) {
225
228
  const runtime = getWgpuRenderStateRuntime(state);
226
- const floats = runtime.spriteBatchMaterialFloats;
229
+ const floats = runtime.quadBatchWriterMaterialFloats;
227
230
  if (floats === 0)
228
231
  return;
229
- const renderer = runtime.spriteBatchMaterialRenderer;
232
+ const renderer = runtime.quadBatchWriterMaterialRenderer;
230
233
  if (renderer === null || renderer.packInstance === undefined)
231
234
  return;
232
- renderer.packInstance(state, runtime.spriteBatchMaterial, materialData, runtime.spriteBatchMaterialData, instanceIndex * floats);
235
+ renderer.packInstance(state, runtime.quadBatchWriterMaterial, materialData, runtime.quadBatchWriterMaterialData, instanceIndex * floats);
233
236
  }
234
- // Ensures the sprite batch can accept up to `maxInstances` more instances for the given texture,
237
+ // Ensures the quad-batch writer can accept up to `maxInstances` more instances for the given texture,
235
238
  // blend mode, and material. Flushes when any of the three changes (material by reference) or
236
- // capacity is exceeded. Returns the float index in spriteBatchInstanceData where the caller writes
237
- // base instance data; the caller increments the runtime's spriteBatchCount and calls
238
- // packWgpuSpriteBatchMaterialInstance per instance.
239
- export function prepareWgpuSpriteBatchWrite(state, texture, blendMode, material, materialRenderer, maxInstances, smoothing = null) {
239
+ // capacity is exceeded. Returns the float index in quadBatchWriterInstanceData where the caller writes
240
+ // base instance data; the caller increments the runtime's quadBatchWriterCount and calls
241
+ // packWgpuQuadBatchMaterialInstance per instance.
242
+ export function prepareWgpuQuadBatchWrite(state, texture, sampler, blendMode, material, materialRenderer, maxInstances, smoothing = null) {
240
243
  const runtime = getWgpuRenderStateRuntime(state);
241
- if (texture !== runtime.spriteBatchTexture ||
242
- blendMode !== runtime.spriteBatchBlendMode ||
243
- material !== runtime.spriteBatchMaterial ||
244
- smoothing !== runtime.spriteBatchSmoothing) {
245
- flushWgpuSpriteBatch(state);
244
+ if (texture !== runtime.quadBatchWriterTexture ||
245
+ sampler !== runtime.quadBatchWriterSampler ||
246
+ blendMode !== runtime.quadBatchWriterBlendMode ||
247
+ material !== runtime.quadBatchWriterMaterial ||
248
+ smoothing !== runtime.quadBatchWriterSmoothing) {
249
+ flushWgpuQuadBatchWriter(state);
246
250
  }
247
- runtime.spriteBatchTexture = texture;
248
- runtime.spriteBatchSmoothing = smoothing;
249
- runtime.spriteBatchBlendMode = blendMode;
250
- runtime.spriteBatchMaterial = material;
251
- runtime.spriteBatchMaterialRenderer = materialRenderer;
251
+ runtime.quadBatchWriterTexture = texture;
252
+ runtime.quadBatchWriterSampler = sampler;
253
+ runtime.quadBatchWriterSmoothing = smoothing;
254
+ runtime.quadBatchWriterBlendMode = blendMode;
255
+ runtime.quadBatchWriterMaterial = material;
256
+ runtime.quadBatchWriterMaterialRenderer = materialRenderer;
252
257
  const floats = materialRenderer.instanceFloatCount;
253
- runtime.spriteBatchMaterialFloats = floats;
254
- const needed = (runtime.spriteBatchCount + maxInstances) * SPRITE_INSTANCE_FLOATS;
255
- if (needed > runtime.spriteBatchInstanceData.length) {
256
- const newSize = Math.max(needed, runtime.spriteBatchInstanceData.length * 2, SPRITE_INSTANCE_FLOATS * 256);
257
- runtime.spriteBatchInstanceData = new Float32Array(newSize);
258
+ runtime.quadBatchWriterMaterialFloats = floats;
259
+ const needed = (runtime.quadBatchWriterCount + maxInstances) * QUAD_BATCH_INSTANCE_FLOATS;
260
+ if (needed > runtime.quadBatchWriterInstanceData.length) {
261
+ const newSize = Math.max(needed, runtime.quadBatchWriterInstanceData.length * 2, QUAD_BATCH_INSTANCE_FLOATS * 256);
262
+ runtime.quadBatchWriterInstanceData = new Float32Array(newSize);
258
263
  }
259
264
  if (floats > 0) {
260
- const materialNeeded = (runtime.spriteBatchCount + maxInstances) * floats;
261
- if (materialNeeded > runtime.spriteBatchMaterialData.length) {
262
- const newSize = Math.max(materialNeeded, runtime.spriteBatchMaterialData.length * 2, floats * 256);
263
- runtime.spriteBatchMaterialData = new Float32Array(newSize);
265
+ const materialNeeded = (runtime.quadBatchWriterCount + maxInstances) * floats;
266
+ if (materialNeeded > runtime.quadBatchWriterMaterialData.length) {
267
+ const newSize = Math.max(materialNeeded, runtime.quadBatchWriterMaterialData.length * 2, floats * 256);
268
+ runtime.quadBatchWriterMaterialData = new Float32Array(newSize);
264
269
  }
265
270
  }
266
- return runtime.spriteBatchCount * SPRITE_INSTANCE_FLOATS;
271
+ return runtime.quadBatchWriterCount * QUAD_BATCH_INSTANCE_FLOATS;
267
272
  }
268
273
  // Folds instance `instanceIndex`'s effective color adjustment into the active batch through the opt-in
269
274
  // color-adjustment fold, without ever splitting the batch. When the capability was not enabled
270
275
  // (registerWgpuColorAdjustmentMaterialFeature), the fold slot is null and the tint is skipped — the batch draws
271
276
  // untinted (the sentinel behavior, never a throw); an installed guard reports the miss. `colorScaleBias`
272
277
  // is null/undefined for an untinted instance, which is a no-op whether or not the fold is enabled.
273
- export function recordWgpuSpriteBatchColorScaleBias(state, colorScaleBias, instanceIndex) {
278
+ export function recordWgpuQuadBatchColorScaleBias(state, colorScaleBias, instanceIndex) {
274
279
  const runtime = getWgpuRenderStateRuntime(state);
275
280
  const fold = runtime.wgpuColorAdjustmentMaterialFeature;
276
281
  if (fold != null) {
@@ -283,38 +288,58 @@ export function recordWgpuSpriteBatchColorScaleBias(state, colorScaleBias, insta
283
288
  // Resets the per-frame buffer-pool cursor so the next frame reclaims slots from the start. Must be
284
289
  // called once at the start of each frame's batch work — the screen frame via renderWgpuBackground,
285
290
  // and the offscreen cache bake via refreshWgpuRenderCache (the bake flushes on its own state).
286
- export function resetWgpuSpriteBatchBufferPool(state) {
287
- getWgpuRenderStateRuntime(state).spriteBatchBufferCursor = 0;
291
+ export function resetWgpuQuadBatchWriterBufferPool(state) {
292
+ getWgpuRenderStateRuntime(state).quadBatchWriterBufferCursor = 0;
288
293
  }
289
294
  // Claims the next per-frame pool slot, allocating one if the frame has more flushes than any prior
290
- // frame. The cursor is reset to 0 each frame by resetWgpuSpriteBatchBufferPool.
291
- function acquireWgpuSpriteBatchBufferSlot(state) {
295
+ // frame. The cursor is reset to 0 each frame by resetWgpuQuadBatchWriterBufferPool.
296
+ function acquireWgpuQuadBatchWriterBufferSlot(state) {
292
297
  const runtime = getWgpuRenderStateRuntime(state);
293
- const pool = runtime.spriteBatchBufferPool;
294
- let slot = pool[runtime.spriteBatchBufferCursor];
298
+ const pool = runtime.quadBatchWriterBufferPool;
299
+ let slot = pool[runtime.quadBatchWriterBufferCursor];
295
300
  if (slot === undefined) {
296
301
  slot = { instanceBuffer: null, instanceCapacity: 0, materialBuffer: null, materialCapacity: 0 };
297
- pool[runtime.spriteBatchBufferCursor] = slot;
302
+ pool[runtime.quadBatchWriterBufferCursor] = slot;
298
303
  }
299
- runtime.spriteBatchBufferCursor++;
304
+ runtime.quadBatchWriterBufferCursor++;
300
305
  return slot;
301
306
  }
302
- function createWgpuSpriteBatchBuffer(state, size) {
307
+ function createWgpuQuadBatchWriterBuffer(state, size) {
303
308
  return state.device.createBuffer({ size, usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST });
304
309
  }
305
- function resetWgpuSpriteBatch(state) {
310
+ function resetWgpuQuadBatchWriter(state) {
306
311
  const runtime = getWgpuRenderStateRuntime(state);
307
- runtime.spriteBatchCount = 0;
308
- runtime.spriteBatchTexture = null;
309
- runtime.spriteBatchSmoothing = null;
310
- runtime.spriteBatchBlendMode = null;
311
- runtime.spriteBatchMaterial = null;
312
- runtime.spriteBatchMaterialRenderer = null;
313
- runtime.spriteBatchMaterialFloats = 0;
312
+ runtime.quadBatchWriterCount = 0;
313
+ runtime.quadBatchWriterTexture = null;
314
+ runtime.quadBatchWriterSampler = null;
315
+ runtime.quadBatchWriterSmoothing = null;
316
+ runtime.quadBatchWriterBlendMode = null;
317
+ runtime.quadBatchWriterMaterial = null;
318
+ runtime.quadBatchWriterMaterialRenderer = null;
319
+ runtime.quadBatchWriterMaterialFloats = 0;
320
+ }
321
+ function createWgpuTextureSamplerBindGroup(state, view, sampler) {
322
+ const minFilter = sampler.minFilter.startsWith('nearest') ? 'nearest' : 'linear';
323
+ const magFilter = sampler.magFilter.startsWith('nearest') ? 'nearest' : 'linear';
324
+ const mipmapFilter = sampler.mipmaps && sampler.minFilter.includes('mipmap')
325
+ ? sampler.minFilter.endsWith('nearest')
326
+ ? 'nearest'
327
+ : 'linear'
328
+ : undefined;
329
+ return state.device.createBindGroup({
330
+ layout: getWgpuRenderStateRuntime(state).textureBindGroupLayout,
331
+ entries: [
332
+ { binding: 0, resource: view },
333
+ {
334
+ binding: 1,
335
+ resource: getWgpuSampler(state, minFilter, magFilter, sampler.wrapU, sampler.wrapV, mipmapFilter, sampler.anisotropy),
336
+ },
337
+ ],
338
+ });
314
339
  }
315
340
  // Writes the NDC viewport matrix and the shared texture's alpha representation into the uniform ring,
316
341
  // then advances the ring offset. Returns the byte offset for the dynamic bind-group binding.
317
- function writeWgpuSpriteBatchUniforms(state, straightTextureAlpha) {
342
+ function writeWgpuQuadBatchWriterUniforms(state, straightTextureAlpha) {
318
343
  const runtime = getWgpuRenderStateRuntime(state);
319
344
  const uniformOffset = runtime.uniformOffset;
320
345
  const floatBase = uniformOffset >> 2;
@@ -338,4 +363,4 @@ function writeWgpuSpriteBatchUniforms(state, straightTextureAlpha) {
338
363
  runtime.uniformOffset += runtime.uniformStride;
339
364
  return uniformOffset;
340
365
  }
341
- //# sourceMappingURL=wgpuSpriteBatch.js.map
366
+ //# sourceMappingURL=wgpuQuadBatchWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wgpuQuadBatchWriter.js","sourceRoot":"","sources":["../src/wgpuQuadBatchWriter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { RenderProxy2D, Scene2DRenderer, WgpuRenderState } from '@flighthq/types/contract';
2
+ export declare function drawWgpuRasterShape(state: WgpuRenderState, renderProxy: RenderProxy2D): void;
3
+ export declare const defaultWgpuRasterShapeRenderer: Scene2DRenderer;
4
+ //# sourceMappingURL=wgpuRasterShapeRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wgpuRasterShapeRenderer.d.ts","sourceRoot":"","sources":["../src/wgpuRasterShapeRenderer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAS,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAqBvG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CA4F5F;AAUD,eAAO,MAAM,8BAA8B,EAAE,eAK5C,CAAC"}