@flighthq/displayobject-wgpu 0.1.0 → 0.2.1-next.410.a23f189

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 (65) hide show
  1. package/dist/enableWgpuColorAdjustmentGuards.d.ts +4 -0
  2. package/dist/enableWgpuColorAdjustmentGuards.d.ts.map +1 -0
  3. package/dist/enableWgpuColorAdjustmentGuards.js +21 -0
  4. package/dist/enableWgpuColorAdjustmentGuards.js.map +1 -0
  5. package/dist/index.d.ts +2 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/wgpuBitmap.d.ts.map +1 -1
  10. package/dist/wgpuBitmap.js +7 -5
  11. package/dist/wgpuBitmap.js.map +1 -1
  12. package/dist/wgpuCache.d.ts.map +1 -1
  13. package/dist/wgpuCache.js +11 -6
  14. package/dist/wgpuCache.js.map +1 -1
  15. package/dist/wgpuColorAdjustment.d.ts +3 -0
  16. package/dist/wgpuColorAdjustment.d.ts.map +1 -0
  17. package/dist/wgpuColorAdjustment.js +198 -0
  18. package/dist/wgpuColorAdjustment.js.map +1 -0
  19. package/dist/wgpuParticleEmitter.d.ts.map +1 -1
  20. package/dist/wgpuParticleEmitter.js +4 -3
  21. package/dist/wgpuParticleEmitter.js.map +1 -1
  22. package/dist/wgpuQuadBatch.d.ts.map +1 -1
  23. package/dist/wgpuQuadBatch.js +11 -6
  24. package/dist/wgpuQuadBatch.js.map +1 -1
  25. package/dist/wgpuRichText.js +2 -1
  26. package/dist/wgpuRichText.js.map +1 -1
  27. package/dist/wgpuShape.d.ts.map +1 -1
  28. package/dist/wgpuShape.js +10 -19
  29. package/dist/wgpuShape.js.map +1 -1
  30. package/dist/wgpuSpriteBatch.d.ts +3 -2
  31. package/dist/wgpuSpriteBatch.d.ts.map +1 -1
  32. package/dist/wgpuSpriteBatch.js +33 -11
  33. package/dist/wgpuSpriteBatch.js.map +1 -1
  34. package/dist/wgpuSpriteRenderer.d.ts.map +1 -1
  35. package/dist/wgpuSpriteRenderer.js +5 -3
  36. package/dist/wgpuSpriteRenderer.js.map +1 -1
  37. package/dist/wgpuTextInput.js +1 -1
  38. package/dist/wgpuTextInput.js.map +1 -1
  39. package/dist/wgpuTextLabel.d.ts.map +1 -1
  40. package/dist/wgpuTextLabel.js +12 -20
  41. package/dist/wgpuTextLabel.js.map +1 -1
  42. package/dist/wgpuTilemap.d.ts.map +1 -1
  43. package/dist/wgpuTilemap.js +11 -6
  44. package/dist/wgpuTilemap.js.map +1 -1
  45. package/dist/wgpuVelocity.js +5 -5
  46. package/dist/wgpuVelocity.js.map +1 -1
  47. package/package.json +23 -15
  48. package/src/enableWgpuColorAdjustmentGuards.test.ts +82 -0
  49. package/src/wgpuCache.test.ts +5 -2
  50. package/src/wgpuColorAdjustment.test.ts +120 -0
  51. package/src/wgpuParticleEmitter.test.ts +1 -1
  52. package/src/wgpuShape.test.ts +2 -1
  53. package/src/wgpuSpriteBatch.test.ts +74 -9
  54. package/src/wgpuTextLabel.test.ts +12 -1
  55. package/src/wgpuVelocity.test.ts +2 -1
  56. package/dist/wgpuColorTransformMaterial.d.ts +0 -5
  57. package/dist/wgpuColorTransformMaterial.d.ts.map +0 -1
  58. package/dist/wgpuColorTransformMaterial.js +0 -97
  59. package/dist/wgpuColorTransformMaterial.js.map +0 -1
  60. package/dist/wgpuMaterials.d.ts +0 -15
  61. package/dist/wgpuMaterials.d.ts.map +0 -1
  62. package/dist/wgpuMaterials.js +0 -34
  63. package/dist/wgpuMaterials.js.map +0 -1
  64. package/src/wgpuColorTransformMaterial.test.ts +0 -62
  65. package/src/wgpuMaterials.test.ts +0 -44
@@ -0,0 +1,4 @@
1
+ import type { WgpuRenderState } from '@flighthq/types';
2
+ export declare function areWgpuColorAdjustmentGuardsEnabled(state: WgpuRenderState): boolean;
3
+ export declare function enableWgpuColorAdjustmentGuards(state: WgpuRenderState): void;
4
+ //# sourceMappingURL=enableWgpuColorAdjustmentGuards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enableWgpuColorAdjustmentGuards.d.ts","sourceRoot":"","sources":["../src/enableWgpuColorAdjustmentGuards.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIvD,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAEnF;AAOD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAE5E"}
@@ -0,0 +1,21 @@
1
+ import { logOnce } from '@flighthq/log';
2
+ import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu';
3
+ import { LogLevel } from '@flighthq/types';
4
+ // Returns whether color-adjustment guards are installed on `state` (enableWgpuColorAdjustmentGuards).
5
+ export function areWgpuColorAdjustmentGuardsEnabled(state) {
6
+ return getWgpuRenderStateRuntime(state).wgpuColorAdjustmentGuard != null;
7
+ }
8
+ // Installs the shakeable color-adjustment guard on `state`: when a node carries a color transform but
9
+ // enableWgpuColorAdjustment was never called, recordWgpuSpriteBatchColorTransform reaches this guard
10
+ // through its nullable runtime slot and warns once (the tint is skipped, drawn untinted — the sentinel
11
+ // behavior, never a throw). Not calling this — the production default — costs the batch nothing, since
12
+ // the message and @flighthq/log dependency live only in this separately-imported module. Idempotent.
13
+ export function enableWgpuColorAdjustmentGuards(state) {
14
+ getWgpuRenderStateRuntime(state).wgpuColorAdjustmentGuard = warnWgpuColorAdjustmentNotEnabled;
15
+ }
16
+ function warnWgpuColorAdjustmentNotEnabled() {
17
+ logOnce('displayobject-wgpu:color-adjustment-not-enabled', LogLevel.Warn, {
18
+ message: 'recordWgpuSpriteBatchColorTransform: color transform present but WGPU color adjustment not enabled — call enableWgpuColorAdjustment(state)',
19
+ }, 'displayobject-wgpu');
20
+ }
21
+ //# sourceMappingURL=enableWgpuColorAdjustmentGuards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enableWgpuColorAdjustmentGuards.js","sourceRoot":"","sources":["../src/enableWgpuColorAdjustmentGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,sGAAsG;AACtG,MAAM,UAAU,mCAAmC,CAAC,KAAsB;IACxE,OAAO,yBAAyB,CAAC,KAAK,CAAC,CAAC,wBAAwB,IAAI,IAAI,CAAC;AAC3E,CAAC;AAED,sGAAsG;AACtG,qGAAqG;AACrG,uGAAuG;AACvG,uGAAuG;AACvG,qGAAqG;AACrG,MAAM,UAAU,+BAA+B,CAAC,KAAsB;IACpE,yBAAyB,CAAC,KAAK,CAAC,CAAC,wBAAwB,GAAG,iCAAiC,CAAC;AAChG,CAAC;AAED,SAAS,iCAAiC;IACxC,OAAO,CACL,iDAAiD,EACjD,QAAQ,CAAC,IAAI,EACb;QACE,OAAO,EACL,4IAA4I;KAC/I,EACD,oBAAoB,CACrB,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
+ export * from './enableWgpuColorAdjustmentGuards';
1
2
  export * from './wgpuBitmap';
2
3
  export * from './wgpuCache';
3
4
  export * from './wgpuClip';
4
5
  export * from './wgpuClipContours';
5
6
  export * from './wgpuClipRectangle';
6
- export * from './wgpuColorTransformMaterial';
7
+ export * from './wgpuColorAdjustment';
7
8
  export * from './wgpuDefaultMaterial';
8
9
  export * from './wgpuDisplayObject';
9
- export * from './wgpuMaterials';
10
10
  export * from './wgpuParticleEmitter';
11
11
  export * from './wgpuQuadBatch';
12
12
  export * from './wgpuRegistration';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,4BAA4B,IAAI,0BAA0B,EAC1D,sBAAsB,IAAI,oBAAoB,EAC9C,8BAA8B,IAAI,4BAA4B,EAC9D,yBAAyB,IAAI,uBAAuB,EACpD,oBAAoB,IAAI,kBAAkB,EAC1C,uBAAuB,IAAI,qBAAqB,EAChD,wBAAwB,IAAI,sBAAsB,EAClD,0BAA0B,IAAI,wBAAwB,EACtD,+BAA+B,IAAI,6BAA6B,EAChE,oBAAoB,IAAI,kBAAkB,EAC1C,sBAAsB,IAAI,oBAAoB,EAC9C,mBAAmB,IAAI,iBAAiB,EACxC,mBAAmB,IAAI,iBAAiB,EACxC,0BAA0B,IAAI,wBAAwB,EACtD,2BAA2B,IAAI,yBAAyB,GACzD,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,4BAA4B,IAAI,0BAA0B,EAC1D,sBAAsB,IAAI,oBAAoB,EAC9C,8BAA8B,IAAI,4BAA4B,EAC9D,yBAAyB,IAAI,uBAAuB,EACpD,oBAAoB,IAAI,kBAAkB,EAC1C,uBAAuB,IAAI,qBAAqB,EAChD,wBAAwB,IAAI,sBAAsB,EAClD,0BAA0B,IAAI,wBAAwB,EACtD,+BAA+B,IAAI,6BAA6B,EAChE,oBAAoB,IAAI,kBAAkB,EAC1C,sBAAsB,IAAI,oBAAoB,EAC9C,mBAAmB,IAAI,iBAAiB,EACxC,mBAAmB,IAAI,iBAAiB,EACxC,0BAA0B,IAAI,wBAAwB,EACtD,2BAA2B,IAAI,yBAAyB,GACzD,MAAM,gCAAgC,CAAC"}
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
+ export * from './enableWgpuColorAdjustmentGuards';
1
2
  export * from './wgpuBitmap';
2
3
  export * from './wgpuCache';
3
4
  export * from './wgpuClip';
4
5
  export * from './wgpuClipContours';
5
6
  export * from './wgpuClipRectangle';
6
- export * from './wgpuColorTransformMaterial';
7
+ export * from './wgpuColorAdjustment';
7
8
  export * from './wgpuDefaultMaterial';
8
9
  export * from './wgpuDisplayObject';
9
- export * from './wgpuMaterials';
10
10
  export * from './wgpuParticleEmitter';
11
11
  export * from './wgpuQuadBatch';
12
12
  export * from './wgpuRegistration';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,4BAA4B,IAAI,0BAA0B,EAC1D,sBAAsB,IAAI,oBAAoB,EAC9C,8BAA8B,IAAI,4BAA4B,EAC9D,yBAAyB,IAAI,uBAAuB,EACpD,oBAAoB,IAAI,kBAAkB,EAC1C,uBAAuB,IAAI,qBAAqB,EAChD,wBAAwB,IAAI,sBAAsB,EAClD,0BAA0B,IAAI,wBAAwB,EACtD,+BAA+B,IAAI,6BAA6B,EAChE,oBAAoB,IAAI,kBAAkB,EAC1C,sBAAsB,IAAI,oBAAoB,EAC9C,mBAAmB,IAAI,iBAAiB,EACxC,mBAAmB,IAAI,iBAAiB,EACxC,0BAA0B,IAAI,wBAAwB,EACtD,2BAA2B,IAAI,yBAAyB,GACzD,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,4BAA4B,IAAI,0BAA0B,EAC1D,sBAAsB,IAAI,oBAAoB,EAC9C,8BAA8B,IAAI,4BAA4B,EAC9D,yBAAyB,IAAI,uBAAuB,EACpD,oBAAoB,IAAI,kBAAkB,EAC1C,uBAAuB,IAAI,qBAAqB,EAChD,wBAAwB,IAAI,sBAAsB,EAClD,0BAA0B,IAAI,wBAAwB,EACtD,+BAA+B,IAAI,6BAA6B,EAChE,oBAAoB,IAAI,kBAAkB,EAC1C,sBAAsB,IAAI,oBAAoB,EAC9C,mBAAmB,IAAI,iBAAiB,EACxC,mBAAmB,IAAI,iBAAiB,EACxC,0BAA0B,IAAI,wBAAwB,EACtD,2BAA2B,IAAI,yBAAyB,GACzD,MAAM,gCAAgC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuBitmap.d.ts","sourceRoot":"","sources":["../src/wgpuBitmap.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAU,qBAAqB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAUrG,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CA2EvF;AAED,eAAO,MAAM,yBAAyB,EAAE,qBAIvC,CAAC"}
1
+ {"version":3,"file":"wgpuBitmap.d.ts","sourceRoot":"","sources":["../src/wgpuBitmap.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAU,qBAAqB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAWrG,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CAqEvF;AAED,eAAO,MAAM,yBAAyB,EAAE,qBAIvC,CAAC"}
@@ -1,24 +1,25 @@
1
+ import { hasImageResourcePixels } from '@flighthq/image';
1
2
  import { noopRendererData } from '@flighthq/render';
2
- import { bindWgpuTexture } from '@flighthq/render-wgpu';
3
+ import { bindWgpuImageResourceTexture } from '@flighthq/render-wgpu';
3
4
  import { resolveWgpuMaterialRenderer } from '@flighthq/render-wgpu';
4
5
  import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu';
5
6
  import { resolveWgpuShader } from '@flighthq/render-wgpu';
6
7
  import { BatchFormat } from '@flighthq/types';
7
- import { ensureWgpuQuadBatchResources, flushWgpuSpriteBatch, packWgpuSpriteBatchMaterialInstance, prepareWgpuSpriteBatchWrite, } from './wgpuSpriteBatch';
8
+ import { ensureWgpuQuadBatchResources, flushWgpuSpriteBatch, packWgpuSpriteBatchMaterialInstance, prepareWgpuSpriteBatchWrite, recordWgpuSpriteBatchColorTransform, } from './wgpuSpriteBatch';
8
9
  export function drawWgpuBitmap(state, renderProxy) {
9
10
  const runtime = getWgpuRenderStateRuntime(state);
10
11
  if (runtime.renderPass === null)
11
12
  return;
12
13
  const source = renderProxy.source;
13
14
  const imageSource = source.data.image;
14
- if (imageSource === null || imageSource.source === null)
15
+ if (imageSource === null || !hasImageResourcePixels(imageSource))
15
16
  return;
16
17
  // Custom per-node shader: flush pending batch to preserve painter's order, then draw immediately.
17
18
  const shader = resolveWgpuShader(state, renderProxy);
18
19
  if (shader !== null) {
19
20
  flushWgpuSpriteBatch(state);
20
21
  state.applyBlendMode?.(state, renderProxy.blendMode);
21
- bindWgpuTexture(state, imageSource.source);
22
+ bindWgpuImageResourceTexture(state, imageSource);
22
23
  shader.bind(state, renderProxy);
23
24
  return;
24
25
  }
@@ -53,7 +54,7 @@ export function drawWgpuBitmap(state, renderProxy) {
53
54
  v1 = (sr.y + sr.height) * ih;
54
55
  }
55
56
  const startCount = runtime.spriteBatchCount;
56
- const base = prepareWgpuSpriteBatchWrite(state, imageSource.source, renderProxy.blendMode, material, materialRenderer, 1);
57
+ const base = prepareWgpuSpriteBatchWrite(state, imageSource, renderProxy.blendMode, material, materialRenderer, 1);
57
58
  const d = runtime.spriteBatchInstanceData;
58
59
  const t = renderProxy.transform2D;
59
60
  d[base] = t.a;
@@ -70,6 +71,7 @@ export function drawWgpuBitmap(state, renderProxy) {
70
71
  d[base + 11] = v1;
71
72
  d[base + 12] = renderProxy.alpha;
72
73
  packWgpuSpriteBatchMaterialInstance(state, renderProxy.materialData, startCount);
74
+ recordWgpuSpriteBatchColorTransform(state, renderProxy.colorTransform, startCount);
73
75
  runtime.spriteBatchCount++;
74
76
  }
75
77
  export const defaultWgpuBitmapRenderer = {
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuBitmap.js","sourceRoot":"","sources":["../src/wgpuBitmap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wgpuBitmap.js","sourceRoot":"","sources":["../src/wgpuBitmap.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuCache.d.ts","sourceRoot":"","sources":["../src/wgpuCache.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EAErB,WAAW,EACX,yBAAyB,EAEzB,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAMzB;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe,CAkFlF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAElE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,gBAAgB,CAUlB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,GAAG,gBAAgB,GAAG,IAAI,CAE5G;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC5C,OAAO,CAiET;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAOvF;AA0BD,eAAO,MAAM,8BAA8B,EAAE,qBAG5C,CAAC"}
1
+ {"version":3,"file":"wgpuCache.d.ts","sourceRoot":"","sources":["../src/wgpuCache.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EAErB,WAAW,EACX,yBAAyB,EAEzB,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAMzB;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe,CAqFlF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAElE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,gBAAgB,CAUlB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,GAAG,gBAAgB,GAAG,IAAI,CAE5G;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC5C,OAAO,CAmET;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAOvF;AA0BD,eAAO,MAAM,8BAA8B,EAAE,qBAG5C,CAAC"}
package/dist/wgpuCache.js CHANGED
@@ -2,7 +2,7 @@ import { createMatrix, createRectangle, multiplyMatrix } from '@flighthq/geometr
2
2
  import { computeNodeBoundsRectangle } from '@flighthq/node';
3
3
  import { computeDisplayObjectRenderTargetTransform, computeRenderCacheTransform, computeRenderTargetSize, copyAllRenderersFromRenderState, createRenderState, getRenderProxyCache, noopRendererData, prepareDisplayObjectRender, registerRenderCacheRenderer, } from '@flighthq/render';
4
4
  import { createWgpuRenderStateRuntime, getWgpuRenderStateRuntime } from '@flighthq/render-wgpu';
5
- import { beginWgpuRenderTarget, createWgpuRenderTarget, destroyWgpuRenderTarget, drawWgpuRenderTargetResult, endWgpuRenderTarget, resizeWgpuRenderTarget, } from '@flighthq/render-wgpu';
5
+ import { beginWgpuRenderPass, createWgpuRenderTarget, destroyWgpuRenderTarget, drawWgpuRenderTargetResult, endWgpuRenderPass, resizeWgpuRenderTarget, setWgpuRenderTransform2D, } from '@flighthq/render-wgpu';
6
6
  import { EntityRuntimeKey } from '@flighthq/types';
7
7
  import { renderWgpuDisplayObject } from './wgpuDisplayObject';
8
8
  import { flushWgpuSpriteBatch } from './wgpuSpriteBatch';
@@ -48,7 +48,6 @@ export function createWgpuCacheState(screenState) {
48
48
  cacheRuntime.nearestSampler = screenRuntime.nearestSampler;
49
49
  cacheRuntime.textureCache = screenRuntime.textureCache;
50
50
  cacheRuntime.defaultBitmapShader = screenRuntime.defaultBitmapShader;
51
- cacheRuntime.colorTransformBitmapShader = screenRuntime.colorTransformBitmapShader;
52
51
  cacheRuntime.particleInstanceBuffer = screenRuntime.particleInstanceBuffer;
53
52
  cacheRuntime.particleInstanceData = screenRuntime.particleInstanceData;
54
53
  cacheRuntime.particleInstanceCapacity = screenRuntime.particleInstanceCapacity;
@@ -81,6 +80,10 @@ export function createWgpuCacheState(screenState) {
81
80
  cacheRuntime.spriteBatchInstanceData = new Float32Array(0);
82
81
  cacheRuntime.spriteBatchMaterialData = new Float32Array(0);
83
82
  cacheRuntime.spriteBatchTexture = null;
83
+ // Propagate the opt-in color-adjustment fold + guard so tinted nodes inside a cached subtree fold the
84
+ // same way when baked offscreen. Their per-batch CT data lives on cacheRuntime, lazily grown.
85
+ cacheRuntime.wgpuColorAdjustmentFold = screenRuntime.wgpuColorAdjustmentFold;
86
+ cacheRuntime.wgpuColorAdjustmentGuard = screenRuntime.wgpuColorAdjustmentGuard;
84
87
  // The bake state owns its own buffer pool (its flushes record into the same frame, so they must
85
88
  // not share slots with the screen's batch either).
86
89
  cacheRuntime.spriteBatchBufferPool = [];
@@ -163,14 +166,16 @@ export function refreshWgpuRenderCache(cacheState, cache, source, options) {
163
166
  // Reclaim the bake state's buffer pool from the start of this bake; the previous bake's submit
164
167
  // has been queued, so its slots are safe to reuse.
165
168
  cacheRuntime.spriteBatchBufferCursor = 0;
166
- beginWgpuRenderTarget(cacheState, target, _bakeTransform);
169
+ // The pass clears to transparent by default (target.clearColors is empty); the Y-inverted bake
170
+ // transform is a display-object draw concern, set explicitly rather than carried by the pass.
171
+ beginWgpuRenderPass(cacheState, target);
172
+ setWgpuRenderTransform2D(cacheState, _bakeTransform);
167
173
  const dirty = prepareDisplayObjectRender(cacheState, source);
168
174
  if (dirty || resized) {
169
- // The render-target pass begins with a 'clear' load op, so the target starts transparent.
170
175
  renderWgpuDisplayObject(cacheState, source);
171
176
  }
172
- endWgpuRenderTarget(cacheState);
173
- // endWgpuRenderTarget reopened a fresh canvas pass on the cache state — hand the live encoder
177
+ endWgpuRenderPass(cacheState);
178
+ // endWgpuRenderPass reopened a fresh canvas pass on the cache state — hand the live encoder
174
179
  // and pass back to the screen state so its subsequent draws continue in the same frame.
175
180
  screenRuntime.commandEncoder = cacheRuntime.commandEncoder;
176
181
  screenRuntime.renderPass = cacheRuntime.renderPass;
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuCache.js","sourceRoot":"","sources":["../src/wgpuCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wgpuCache.js","sourceRoot":"","sources":["../src/wgpuCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACL,yCAAyC,EACzC,2BAA2B,EAC3B,uBAAuB,EACvB,+BAA+B,EAC/B,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAW/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAA4B;IAC/D,MAAM,aAAa,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,iBAAiB,CAAC;QACnC,cAAc,EAAE,WAAW,CAAC,cAAc;QAC1C,UAAU,EAAE,WAAW,CAAC,UAAU;QAClC,iBAAiB,EAAE,YAAY,EAAE;QACjC,WAAW,EAAE,WAAW,CAAC,WAAW;QACpC,oBAAoB,EAAE,WAAW,CAAC,oBAAoB;KACvD,CAAoB,CAAC;IAEtB,+FAA+F;IAC/F,oFAAoF;IACpF,MAAM,YAAY,GAAG,4BAA4B,EAAE,CAAC;IACpD,UAAU,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAAC;IAE5C,+BAA+B,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAEzD,UAAU,CAAC,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;IACtD,UAA4C,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IACzE,UAA4C,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IAC3E,UAAoC,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IACjE,UAA2C,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IAEzE,YAAY,CAAC,sBAAsB,GAAG,aAAa,CAAC,sBAAsB,CAAC;IAC3E,YAAY,CAAC,sBAAsB,GAAG,aAAa,CAAC,sBAAsB,CAAC;IAC3E,YAAY,CAAC,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;IACzD,YAAY,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IACrD,YAAY,CAAC,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC;IAC3D,YAAY,CAAC,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;IACzD,YAAY,CAAC,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC;IAC/D,YAAY,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IACrD,YAAY,CAAC,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;IACzD,YAAY,CAAC,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;IACzD,YAAY,CAAC,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC;IAC3D,YAAY,CAAC,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC;IACvD,YAAY,CAAC,mBAAmB,GAAG,aAAa,CAAC,mBAAmB,CAAC;IACrE,YAAY,CAAC,sBAAsB,GAAG,aAAa,CAAC,sBAAsB,CAAC;IAC3E,YAAY,CAAC,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC;IACvE,YAAY,CAAC,wBAAwB,GAAG,aAAa,CAAC,wBAAwB,CAAC;IAC/E,sFAAsF;IACtF,iFAAiF;IACjF,YAAY,CAAC,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC;IAC3D,YAAY,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;IACnD,YAAY,CAAC,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC;IACjE,YAAY,CAAC,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC;IACjE,YAAY,CAAC,mBAAmB,GAAG,aAAa,CAAC,mBAAmB,CAAC;IACrE,YAAY,CAAC,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC;IAC/D,YAAY,CAAC,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC;IACjE,YAAY,CAAC,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,CAAC;IACnE,YAAY,CAAC,mBAAmB,GAAG,aAAa,CAAC,mBAAmB,CAAC;IAErE,YAAY,CAAC,aAAa,GAAG,CAAC,CAAC;IAC/B,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACrC,YAAY,CAAC,gBAAgB,GAAG,CAAC,CAAC;IAClC,sGAAsG;IACtG,0FAA0F;IAC1F,YAAY,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAC9C,YAAY,CAAC,gBAAgB,GAAG,EAAE,CAAC;IACnC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;IAC5B,sGAAsG;IACtG,YAAY,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAC5C,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,mBAAmB,GAAG,IAAI,CAAC;IACxC,YAAY,CAAC,2BAA2B,GAAG,IAAI,CAAC;IAChD,YAAY,CAAC,yBAAyB,GAAG,CAAC,CAAC;IAC3C,YAAY,CAAC,gBAAgB,GAAG,CAAC,CAAC;IAClC,YAAY,CAAC,uBAAuB,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,CAAC,uBAAuB,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACvC,sGAAsG;IACtG,8FAA8F;IAC9F,YAAY,CAAC,uBAAuB,GAAG,aAAa,CAAC,uBAAuB,CAAC;IAC7E,YAAY,CAAC,wBAAwB,GAAG,aAAa,CAAC,wBAAwB,CAAC;IAC/E,gGAAgG;IAChG,mDAAmD;IACnD,YAAY,CAAC,qBAAqB,GAAG,EAAE,CAAC;IACxC,YAAY,CAAC,uBAAuB,GAAG,CAAC,CAAC;IACzC,YAAY,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC,YAAY,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACvC,YAAY,CAAC,YAAY,GAAG,EAAE,CAAC;IAC/B,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAEpC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC/C,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAsB;IAC1D,2BAA2B,CAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC;AACrE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAsB,EACtB,KAAkB,EAClB,KAAa,EACb,MAAc;IAEd,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,GAAG,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAsB,EAAE,KAAkB;IACjF,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAA2B,EAC3B,KAAkB,EAClB,MAAqB,EACrB,OAA6C;IAE7C,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC;IACpE,MAAM,YAAY,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAC7D,4FAA4F;IAC5F,4FAA4F;IAC5F,0FAA0F;IAC1F,kEAAkE;IAClE,YAAY,CAAC,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC;IAC3D,YAAY,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;IACnD,YAAY,CAAC,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC;IACjE,YAAY,CAAC,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC;IACjE,YAAY,CAAC,mBAAmB,GAAG,aAAa,CAAC,mBAAmB,CAAC;IACrE,YAAY,CAAC,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC;IAC/D,YAAY,CAAC,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC;IACjE,YAAY,CAAC,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,CAAC;IACnE,8FAA8F;IAC9F,kGAAkG;IAClG,kGAAkG;IAClG,sFAAsF;IACtF,YAAY,CAAC,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;IAEzD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,CAAC,CAAC;IAE1C,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEzF,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC;IAC5F,MAAM,MAAM,GAAG,2BAA2B,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAE9E,yCAAyC,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/F,2BAA2B,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAExE,mGAAmG;IACnG,oGAAoG;IACpG,mDAAmD;IACnD,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChB,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5B,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAE3D,+FAA+F;IAC/F,mDAAmD;IACnD,YAAY,CAAC,uBAAuB,GAAG,CAAC,CAAC;IACzC,+FAA+F;IAC/F,8FAA8F;IAC9F,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACxC,wBAAwB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,0BAA0B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7D,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;QACrB,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IACD,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAE9B,4FAA4F;IAC5F,wFAAwF;IACxF,aAAa,CAAC,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC;IAC3D,aAAa,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;IACnD,aAAa,CAAC,iBAAiB,GAAG,YAAY,CAAC,iBAAiB,CAAC;IACjE,aAAa,CAAC,iBAAiB,GAAG,YAAY,CAAC,iBAAiB,CAAC;IACjE,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACtC,2FAA2F;IAC3F,4CAA4C;IAC5C,aAAa,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;IACzD,OAAO,KAAK,IAAI,OAAO,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAsB,EAAE,KAAkB;IAC/E,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO;IACjC,+DAA+D;IAC/D,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAsB,EAAE,WAA0B;IAC7E,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7D,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO;IAC3B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO;IACjC,uFAAuF;IACvF,mGAAmG;IACnG,+FAA+F;IAC/F,iEAAiE;IACjE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC5B,0FAA0F;IAC1F,8DAA8D;IAC9D,0BAA0B,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,UAAU,CAAC,KAAsB;IACxC,IAAI,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QACxB,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,8BAA8B,GAA0B;IACnE,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,mBAAmB;CAC5B,CAAC;AAEF,uFAAuF;AACvF,+EAA+E;AAC/E,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAA2D,CAAC;AACnG,uFAAuF;AACvF,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAoC,CAAC;AAC1E,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;AAClC,MAAM,gBAAgB,GAAG,YAAY,EAAY,CAAC;AAClD,MAAM,cAAc,GAAG,YAAY,EAAY,CAAC;AAChD,MAAM,QAAQ,GAAG,YAAY,EAAY,CAAC;AAC1C,MAAM,SAAS,GAAG,YAAY,EAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { WgpuRenderState } from '@flighthq/types';
2
+ export declare function enableWgpuColorAdjustment(state: WgpuRenderState): void;
3
+ //# sourceMappingURL=wgpuColorAdjustment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wgpuColorAdjustment.d.ts","sourceRoot":"","sources":["../src/wgpuColorAdjustment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AAUzB,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAOtE"}
@@ -0,0 +1,198 @@
1
+ import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu';
2
+ import { getWgpuQuadBatchPreludeWGSL } from './wgpuSpriteBatch';
3
+ // Enables the opt-in inline color-adjustment fold on a WebGPU render state: the fused-color-matrix
4
+ // stage the sprite/quad batch draws through so a color transform (and, later, other pointwise
5
+ // adjustments) folds into the batch as per-instance storage data at @group(3) — replicated across the
6
+ // batch for a whole-batch tint, or varied per instance — without ever splitting the batch. Until a
7
+ // state calls this, its batch renderer carries none of this module's WGSL (it tree-shakes out) and
8
+ // recordWgpuSpriteBatchColorTransform silently skips every tint. Idempotent; safe to call per state.
9
+ export function enableWgpuColorAdjustment(state) {
10
+ const runtime = getWgpuRenderStateRuntime(state);
11
+ runtime.wgpuColorAdjustmentFold = wgpuColorAdjustmentFold;
12
+ if (runtime.spriteBatchColorTransformMode === undefined)
13
+ runtime.spriteBatchColorTransformMode = CT_MODE_NONE;
14
+ if (runtime.spriteBatchColorTransformData === undefined) {
15
+ runtime.spriteBatchColorTransformData = new Float32Array(COLOR_TRANSFORM_FLOATS * 256);
16
+ }
17
+ }
18
+ // Per-instance color-transform data (8 floats = 4 multiplier + 4 offset). Wgpu carries every tint
19
+ // through the per-instance storage buffer, so a whole-batch (uniform) tint is the same value on each
20
+ // instance — there is no separate hardware-uniform path.
21
+ const COLOR_TRANSFORM_FLOATS = 8;
22
+ // Color-adjustment fold modes for the active sprite batch. NONE keeps the base module; UNIFORM defers
23
+ // per-instance fill while one tint covers the whole batch; PER_INSTANCE packs a tint per instance.
24
+ const CT_MODE_NONE = 0;
25
+ const CT_MODE_UNIFORM = 1;
26
+ const CT_MODE_PER_INSTANCE = 2;
27
+ // Folds instance `instanceIndex`'s effective color transform into the active batch. See the fold-mode
28
+ // constants for the promotion rules. `colorTransform` is null for an untinted instance.
29
+ function recordWgpuColorAdjustment(runtime, colorTransform, instanceIndex) {
30
+ if (runtime.spriteBatchColorTransformData === undefined) {
31
+ runtime.spriteBatchColorTransformData = new Float32Array(COLOR_TRANSFORM_FLOATS * 256);
32
+ }
33
+ const mode = runtime.spriteBatchColorTransformMode ?? CT_MODE_NONE;
34
+ const tint = colorTransform ?? null;
35
+ if (mode === CT_MODE_NONE) {
36
+ if (tint === null)
37
+ return;
38
+ if (instanceIndex === 0) {
39
+ runtime.spriteBatchColorTransformMode = CT_MODE_UNIFORM;
40
+ runtime.spriteBatchUniformColorTransform = tint;
41
+ return;
42
+ }
43
+ promoteWgpuSpriteBatchColorTransformToPerInstance(runtime, instanceIndex, null);
44
+ writeWgpuColorTransformInstance(runtime, tint, instanceIndex);
45
+ return;
46
+ }
47
+ if (mode === CT_MODE_UNIFORM) {
48
+ const uniform = runtime.spriteBatchUniformColorTransform ?? null;
49
+ if (equalsRecordedColorTransform(tint, uniform))
50
+ return;
51
+ promoteWgpuSpriteBatchColorTransformToPerInstance(runtime, instanceIndex, uniform);
52
+ writeWgpuColorTransformInstance(runtime, tint, instanceIndex);
53
+ return;
54
+ }
55
+ writeWgpuColorTransformInstance(runtime, tint, instanceIndex);
56
+ }
57
+ // Resolves the active batch's folded realization: replicates a whole-batch uniform tint across the
58
+ // batch, then returns the per-instance storage data + the folded shader module. Returns null when the
59
+ // batch carried no tint, so flushWgpuSpriteBatch runs the lean material path. Resets the fold mode for
60
+ // the next batch.
61
+ function resolveWgpuColorAdjustmentFlush(state, count) {
62
+ const runtime = getWgpuRenderStateRuntime(state);
63
+ const ctMode = runtime.spriteBatchColorTransformMode ?? CT_MODE_NONE;
64
+ if (ctMode === CT_MODE_NONE)
65
+ return null;
66
+ if (ctMode === CT_MODE_UNIFORM) {
67
+ fillWgpuSpriteBatchUniformColorTransform(runtime, runtime.spriteBatchUniformColorTransform, count);
68
+ }
69
+ runtime.spriteBatchColorTransformMode = CT_MODE_NONE;
70
+ runtime.spriteBatchUniformColorTransform = null;
71
+ return {
72
+ data: runtime.spriteBatchColorTransformData,
73
+ floats: COLOR_TRANSFORM_FLOATS,
74
+ module: getWgpuSpriteBatchColorTransformModule(state),
75
+ };
76
+ }
77
+ // Value equality for the whole-batch uniform check: reference-equal short-circuits (every glyph of a
78
+ // bitmap-text node shares one node-level tint), else compares all eight fields.
79
+ function equalsRecordedColorTransform(a, b) {
80
+ if (a === b)
81
+ return true;
82
+ if (a === null || b === null)
83
+ return false;
84
+ return (a.redMultiplier === b.redMultiplier &&
85
+ a.greenMultiplier === b.greenMultiplier &&
86
+ a.blueMultiplier === b.blueMultiplier &&
87
+ a.alphaMultiplier === b.alphaMultiplier &&
88
+ a.redOffset === b.redOffset &&
89
+ a.greenOffset === b.greenOffset &&
90
+ a.blueOffset === b.blueOffset &&
91
+ a.alphaOffset === b.alphaOffset);
92
+ }
93
+ // Grows the color-transform data array to hold `floatsNeeded` floats, preserving already-recorded
94
+ // per-instance data.
95
+ function ensureWgpuColorTransformCapacity(runtime, floatsNeeded) {
96
+ const existing = runtime.spriteBatchColorTransformData;
97
+ if (existing !== undefined && floatsNeeded <= existing.length)
98
+ return;
99
+ const newSize = Math.max(floatsNeeded, (existing?.length ?? 0) * 2, COLOR_TRANSFORM_FLOATS * 256);
100
+ const grown = new Float32Array(newSize);
101
+ if (existing !== undefined)
102
+ grown.set(existing);
103
+ runtime.spriteBatchColorTransformData = grown;
104
+ }
105
+ // Replicates a whole-batch uniform tint across `count` instances at flush time — Wgpu has no separate
106
+ // hardware-uniform tint path, so a uniform is the same value on every instance of the storage buffer.
107
+ function fillWgpuSpriteBatchUniformColorTransform(runtime, colorTransform, count) {
108
+ ensureWgpuColorTransformCapacity(runtime, count * COLOR_TRANSFORM_FLOATS);
109
+ for (let i = 0; i < count; i++)
110
+ writeWgpuColorTransformInstance(runtime, colorTransform, i);
111
+ }
112
+ // The folded per-instance color-transform shader module (cached per device): the base sprite-batch
113
+ // prelude plus a stage that reads 8 per-instance floats from the material storage buffer (@group(3))
114
+ // and applies `color * mult + offset` in unpremultiplied space. Reused verbatim from the former
115
+ // color-transform material so premultiplied-alpha handling is unchanged.
116
+ function getWgpuSpriteBatchColorTransformModule(state) {
117
+ const cached = _colorTransformModules.get(state.device);
118
+ if (cached !== undefined)
119
+ return cached;
120
+ const module = state.device.createShaderModule({
121
+ code: getWgpuQuadBatchPreludeWGSL() + COLOR_TRANSFORM_WGSL,
122
+ });
123
+ _colorTransformModules.set(state.device, module);
124
+ return module;
125
+ }
126
+ // Switches the batch to per-instance mode and back-fills every already-recorded instance
127
+ // [0, instanceCount) with `fill` (a prior uniform value, or null → identity).
128
+ function promoteWgpuSpriteBatchColorTransformToPerInstance(runtime, instanceCount, fill) {
129
+ runtime.spriteBatchColorTransformMode = CT_MODE_PER_INSTANCE;
130
+ for (let i = 0; i < instanceCount; i++)
131
+ writeWgpuColorTransformInstance(runtime, fill, i);
132
+ }
133
+ // Writes one instance's eight color-transform floats (multiplier rgba, then offset rgba normalized by
134
+ // 255) at its slot, growing the array as needed. A null transform writes the identity.
135
+ function writeWgpuColorTransformInstance(runtime, colorTransform, instanceIndex) {
136
+ const offset = instanceIndex * COLOR_TRANSFORM_FLOATS;
137
+ ensureWgpuColorTransformCapacity(runtime, offset + COLOR_TRANSFORM_FLOATS);
138
+ const out = runtime.spriteBatchColorTransformData;
139
+ if (colorTransform !== null) {
140
+ out[offset] = colorTransform.redMultiplier;
141
+ out[offset + 1] = colorTransform.greenMultiplier;
142
+ out[offset + 2] = colorTransform.blueMultiplier;
143
+ out[offset + 3] = colorTransform.alphaMultiplier;
144
+ out[offset + 4] = colorTransform.redOffset / 255;
145
+ out[offset + 5] = colorTransform.greenOffset / 255;
146
+ out[offset + 6] = colorTransform.blueOffset / 255;
147
+ out[offset + 7] = colorTransform.alphaOffset / 255;
148
+ }
149
+ else {
150
+ out[offset] = 1;
151
+ out[offset + 1] = 1;
152
+ out[offset + 2] = 1;
153
+ out[offset + 3] = 1;
154
+ out[offset + 4] = 0;
155
+ out[offset + 5] = 0;
156
+ out[offset + 6] = 0;
157
+ out[offset + 7] = 0;
158
+ }
159
+ }
160
+ const COLOR_TRANSFORM_WGSL = /* wgsl */ `
161
+ @group(3) @binding(0) var<storage, read> ctData : array<f32>;
162
+
163
+ struct VertexOut {
164
+ @builtin(position) position : vec4f,
165
+ @location(0) uv : vec2f,
166
+ @location(1) alpha : f32,
167
+ @location(2) ctMult : vec4f,
168
+ @location(3) ctOff : vec4f,
169
+ }
170
+
171
+ @vertex
172
+ fn vs_main(@builtin(vertex_index) vi : u32, @builtin(instance_index) ii : u32) -> VertexOut {
173
+ let bv = quadBaseVertex(vi, ii);
174
+ let b = ii * 8u;
175
+ let ctMult = vec4f(ctData[b + 0u], ctData[b + 1u], ctData[b + 2u], ctData[b + 3u]);
176
+ let ctOff = vec4f(ctData[b + 4u], ctData[b + 5u], ctData[b + 6u], ctData[b + 7u]);
177
+ return VertexOut(bv.position, bv.uv, bv.alpha, ctMult, ctOff);
178
+ }
179
+
180
+ @fragment
181
+ fn fs_main(in : VertexOut) -> @location(0) vec4f {
182
+ var color = textureSample(tex, smp, in.uv);
183
+ if (color.a <= 0.0) { discard; }
184
+ color = color * clamp(in.alpha, 0.0, 1.0);
185
+ if (color.a > 0.0) {
186
+ color = vec4f(color.rgb / color.a, color.a);
187
+ color = clamp(color * in.ctMult + in.ctOff, vec4f(0.0), vec4f(1.0));
188
+ color = vec4f(color.rgb * color.a, color.a);
189
+ }
190
+ return color;
191
+ }
192
+ `;
193
+ const _colorTransformModules = new WeakMap();
194
+ const wgpuColorAdjustmentFold = {
195
+ record: recordWgpuColorAdjustment,
196
+ resolveFlush: resolveWgpuColorAdjustmentFlush,
197
+ };
198
+ //# sourceMappingURL=wgpuColorAdjustment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wgpuColorAdjustment.js","sourceRoot":"","sources":["../src/wgpuColorAdjustment.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuParticleEmitter.d.ts","sourceRoot":"","sources":["../src/wgpuParticleEmitter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAmB,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAmLvG,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CAgIhG;AAED,eAAO,MAAM,kCAAkC,EAAE,cAMhD,CAAC"}
1
+ {"version":3,"file":"wgpuParticleEmitter.d.ts","sourceRoot":"","sources":["../src/wgpuParticleEmitter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAmLvG,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CAgIhG;AAED,eAAO,MAAM,kCAAkC,EAAE,cAMhD,CAAC"}
@@ -1,5 +1,6 @@
1
+ import { hasImageResourcePixels } from '@flighthq/image';
1
2
  import { noopRendererData } from '@flighthq/render';
2
- import { bindWgpuTexture } from '@flighthq/render-wgpu';
3
+ import { bindWgpuImageResourceTexture } from '@flighthq/render-wgpu';
3
4
  import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu';
4
5
  import { flushWgpuSpriteBatch } from './wgpuSpriteBatch';
5
6
  // Per-instance layout in the instance buffer (14 floats = 56 bytes):
@@ -163,12 +164,12 @@ export function drawWgpuParticleEmitter(state, renderProxy) {
163
164
  return;
164
165
  const source = renderProxy.source;
165
166
  const { atlas, alphas, colors, ids, particleCount, transforms } = source.data;
166
- if (atlas === null || atlas.image === null || atlas.image.source === null || particleCount === 0)
167
+ if (atlas === null || atlas.image === null || !hasImageResourcePixels(atlas.image) || particleCount === 0)
167
168
  return;
168
169
  const resources = ensureParticleResources(state);
169
170
  ensureParticleInstanceBuffer(state, particleCount);
170
171
  state.applyBlendMode?.(state, renderProxy.blendMode);
171
- const textureEntry = bindWgpuTexture(state, atlas.image.source);
172
+ const textureEntry = bindWgpuImageResourceTexture(state, atlas.image);
172
173
  const regions = atlas.regions;
173
174
  const numRegions = regions.length;
174
175
  const nodeAlpha = renderProxy.alpha;
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuParticleEmitter.js","sourceRoot":"","sources":["../src/wgpuParticleEmitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wgpuParticleEmitter.js","sourceRoot":"","sources":["../src/wgpuParticleEmitter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuQuadBatch.d.ts","sourceRoot":"","sources":["../src/wgpuQuadBatch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAA4B,cAAc,EAAmB,MAAM,iBAAiB,CAAC;AAGjG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EAIzB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,sBAAsB,EAAE,CAAC;AACvC,OAAO,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,CAAC;AA6FlE,eAAO,MAAM,4BAA4B,EAAE,cAI1C,CAAC"}
1
+ {"version":3,"file":"wgpuQuadBatch.d.ts","sourceRoot":"","sources":["../src/wgpuQuadBatch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA4C,cAAc,EAAmB,MAAM,iBAAiB,CAAC;AAGjH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EAKzB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,sBAAsB,EAAE,CAAC;AACvC,OAAO,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,CAAC;AAiGlE,eAAO,MAAM,4BAA4B,EAAE,cAI1C,CAAC"}
@@ -1,8 +1,9 @@
1
+ import { hasImageResourcePixels } from '@flighthq/image';
1
2
  import { noopRendererData } from '@flighthq/render';
2
3
  import { resolveWgpuMaterialRenderer } from '@flighthq/render-wgpu';
3
4
  import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu';
4
5
  import { BatchFormat } from '@flighthq/types';
5
- import { ensureWgpuQuadBatchResources, getWgpuQuadBatchPipeline, packWgpuSpriteBatchMaterialInstance, prepareWgpuSpriteBatchWrite, SPRITE_INSTANCE_FLOATS, } from './wgpuSpriteBatch';
6
+ import { ensureWgpuQuadBatchResources, getWgpuQuadBatchPipeline, packWgpuSpriteBatchMaterialInstance, prepareWgpuSpriteBatchWrite, recordWgpuSpriteBatchColorTransform, SPRITE_INSTANCE_FLOATS, } from './wgpuSpriteBatch';
6
7
  export { ensureWgpuQuadBatchResources, getWgpuQuadBatchPipeline };
7
8
  // Each quad writes the 13 base instance floats; any material packs its own per-instance data into the
8
9
  // parallel material buffer.
@@ -14,16 +15,18 @@ function submitWgpuQuadBatch(state, quadBatch) {
14
15
  const source = quadBatch.source;
15
16
  const data = source.data;
16
17
  const { atlas, instanceCount, ids, transforms } = data;
17
- if (atlas === null || atlas.image === null || atlas.image.source === null || instanceCount === 0)
18
+ if (atlas === null || atlas.image === null || !hasImageResourcePixels(atlas.image) || instanceCount === 0)
18
19
  return;
19
20
  const material = quadBatch.material;
20
21
  const materialRenderer = resolveWgpuMaterialRenderer(state, material);
21
22
  if (materialRenderer === null)
22
23
  return;
23
- const perQuadMaterialData = data.materialData;
24
24
  const nodeMaterialData = quadBatch.materialData;
25
+ // Per-quad color transforms, overriding the node-level tint for the quads that carry one.
26
+ const perQuadColorTransform = data.materialData;
27
+ const nodeColorTransform = quadBatch.colorTransform;
25
28
  const startCount = runtime.spriteBatchCount;
26
- const base = prepareWgpuSpriteBatchWrite(state, atlas.image.source, quadBatch.blendMode, material, materialRenderer, instanceCount);
29
+ const base = prepareWgpuSpriteBatchWrite(state, atlas.image, quadBatch.blendMode, material, materialRenderer, instanceCount);
27
30
  const regions = atlas.regions;
28
31
  const numRegions = regions.length;
29
32
  const iw = 1 / (atlas.image.width || 1);
@@ -70,8 +73,10 @@ function submitWgpuQuadBatch(state, quadBatch) {
70
73
  instanceData[writeBase + 10] = (region.x + region.width) * iw;
71
74
  instanceData[writeBase + 11] = (region.y + region.height) * ih;
72
75
  instanceData[writeBase + 12] = alpha;
73
- const md = perQuadMaterialData?.[i] ?? nodeMaterialData;
74
- packWgpuSpriteBatchMaterialInstance(state, md, startCount + drawCount);
76
+ packWgpuSpriteBatchMaterialInstance(state, nodeMaterialData, startCount + drawCount);
77
+ // Per-quad tint overrides the node-level tint (null → the node's, itself possibly null → untinted).
78
+ const colorTransform = perQuadColorTransform?.[i] ?? nodeColorTransform;
79
+ recordWgpuSpriteBatchColorTransform(state, colorTransform, startCount + drawCount);
75
80
  writeBase += INSTANCE_STRIDE_FLOATS;
76
81
  drawCount++;
77
82
  }