@flighthq/render 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 (77) hide show
  1. package/dist/contract.d.ts +6 -1
  2. package/dist/contract.d.ts.map +1 -1
  3. package/dist/contract.js +6 -1
  4. package/dist/contract.js.map +1 -1
  5. package/dist/enableColorAdjustmentGuards.js +6 -6
  6. package/dist/enableColorAdjustmentGuards.js.map +1 -1
  7. package/dist/enableColorAdjustments.d.ts +4 -0
  8. package/dist/enableColorAdjustments.d.ts.map +1 -0
  9. package/dist/enableColorAdjustments.js +110 -0
  10. package/dist/enableColorAdjustments.js.map +1 -0
  11. package/dist/enableSceneRenderGuards.d.ts +22 -0
  12. package/dist/enableSceneRenderGuards.d.ts.map +1 -0
  13. package/dist/enableSceneRenderGuards.js +36 -0
  14. package/dist/enableSceneRenderGuards.js.map +1 -0
  15. package/dist/explainScene2DCoverage.d.ts +4 -0
  16. package/dist/explainScene2DCoverage.d.ts.map +1 -0
  17. package/dist/explainScene2DCoverage.js +57 -0
  18. package/dist/explainScene2DCoverage.js.map +1 -0
  19. package/dist/index.d.ts +2 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +2 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/renderProxy.d.ts.map +1 -1
  24. package/dist/renderProxy.js +34 -9
  25. package/dist/renderProxy.js.map +1 -1
  26. package/dist/renderRegistryGuards.d.ts +5 -0
  27. package/dist/renderRegistryGuards.d.ts.map +1 -0
  28. package/dist/renderRegistryGuards.js +87 -0
  29. package/dist/renderRegistryGuards.js.map +1 -0
  30. package/dist/renderRegistrySignals.d.ts +3 -0
  31. package/dist/renderRegistrySignals.d.ts.map +1 -0
  32. package/dist/renderRegistrySignals.js +19 -0
  33. package/dist/renderRegistrySignals.js.map +1 -0
  34. package/dist/renderState.d.ts +1 -0
  35. package/dist/renderState.d.ts.map +1 -1
  36. package/dist/renderState.js +26 -0
  37. package/dist/renderState.js.map +1 -1
  38. package/dist/renderTarget.d.ts +4 -2
  39. package/dist/renderTarget.d.ts.map +1 -1
  40. package/dist/renderTarget.js +52 -2
  41. package/dist/renderTarget.js.map +1 -1
  42. package/dist/renderTransform2d.d.ts.map +1 -1
  43. package/dist/renderTransform2d.js +4 -1
  44. package/dist/renderTransform2d.js.map +1 -1
  45. package/dist/renderer.d.ts +1 -0
  46. package/dist/renderer.d.ts.map +1 -1
  47. package/dist/renderer.js +16 -0
  48. package/dist/renderer.js.map +1 -1
  49. package/dist/scene2dWorkingColorSpace.d.ts +3 -0
  50. package/dist/scene2dWorkingColorSpace.d.ts.map +1 -0
  51. package/dist/scene2dWorkingColorSpace.js +19 -0
  52. package/dist/scene2dWorkingColorSpace.js.map +1 -0
  53. package/dist/sceneRender.d.ts +6 -2
  54. package/dist/sceneRender.d.ts.map +1 -1
  55. package/dist/sceneRender.js +47 -13
  56. package/dist/sceneRender.js.map +1 -1
  57. package/package.json +15 -12
  58. package/src/enableColorAdjustmentGuards.test.ts +6 -4
  59. package/src/enableColorAdjustments.test.ts +233 -0
  60. package/src/enableSceneRenderGuards.test.ts +96 -0
  61. package/src/explainScene2DCoverage.test.ts +113 -0
  62. package/src/renderProxy.test.ts +142 -11
  63. package/src/renderQueue.test.ts +1 -1
  64. package/src/renderRegistryGuards.test.ts +94 -0
  65. package/src/renderRegistrySignals.test.ts +15 -0
  66. package/src/renderState.test.ts +16 -1
  67. package/src/renderTarget.test.ts +113 -5
  68. package/src/renderTransform2d.test.ts +15 -1
  69. package/src/renderViewport.test.ts +1 -1
  70. package/src/renderer.test.ts +44 -1
  71. package/src/scene2dWorkingColorSpace.test.ts +11 -0
  72. package/src/sceneRender.test.ts +75 -2
  73. package/dist/renderColorScaleBias.d.ts +0 -3
  74. package/dist/renderColorScaleBias.d.ts.map +0 -1
  75. package/dist/renderColorScaleBias.js +0 -21
  76. package/dist/renderColorScaleBias.js.map +0 -1
  77. package/src/renderColorScaleBias.test.ts +0 -53
@@ -1,17 +1,22 @@
1
+ export * from './enableSceneRenderGuards';
1
2
  export * from './enableColorAdjustmentGuards';
3
+ export * from './enableColorAdjustments';
2
4
  export * from './explainScene2DRender';
3
5
  export * from './renderAppearance';
4
6
  export * from './renderCache';
5
7
  export * from './renderColor';
6
- export * from './renderColorScaleBias';
7
8
  export * from './renderer';
8
9
  export * from './renderMaterial';
9
10
  export * from './renderProxy';
10
11
  export * from './renderProxyAdapter';
11
12
  export * from './renderQueue';
13
+ export * from './explainScene2DCoverage';
14
+ export * from './renderRegistryGuards';
15
+ export * from './renderRegistrySignals';
12
16
  export * from './renderState';
13
17
  export * from './renderTarget';
14
18
  export * from './renderTransform2d';
15
19
  export * from './renderViewport';
16
20
  export * from './sceneRender';
21
+ export { SCENE2D_WORKING_COLOR_SPACE } from './scene2dWorkingColorSpace';
17
22
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC"}
package/dist/contract.js CHANGED
@@ -1,17 +1,22 @@
1
+ export * from './enableSceneRenderGuards';
1
2
  export * from './enableColorAdjustmentGuards';
3
+ export * from './enableColorAdjustments';
2
4
  export * from './explainScene2DRender';
3
5
  export * from './renderAppearance';
4
6
  export * from './renderCache';
5
7
  export * from './renderColor';
6
- export * from './renderColorScaleBias';
7
8
  export * from './renderer';
8
9
  export * from './renderMaterial';
9
10
  export * from './renderProxy';
10
11
  export * from './renderProxyAdapter';
11
12
  export * from './renderQueue';
13
+ export * from './explainScene2DCoverage';
14
+ export * from './renderRegistryGuards';
15
+ export * from './renderRegistrySignals';
12
16
  export * from './renderState';
13
17
  export * from './renderTarget';
14
18
  export * from './renderTransform2d';
15
19
  export * from './renderViewport';
16
20
  export * from './sceneRender';
21
+ export { SCENE2D_WORKING_COLOR_SPACE } from './scene2dWorkingColorSpace';
17
22
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC"}
@@ -5,17 +5,17 @@ import { getRenderStateRuntime } from './renderState';
5
5
  export function areColorAdjustmentGuardsEnabled(state) {
6
6
  return getRenderStateRuntime(state).colorAdjustmentUnsupportedGuard != null;
7
7
  }
8
- // Installs the shakeable color-adjustment guard on `state`: when a node's stack contains a non-matrix
9
- // operation that neither the compact affine path nor the full 4×5 path can represent, the render walk
10
- // reaches this guard through its nullable runtime slot and warns once. Not calling this the production
11
- // default costs the render walk nothing, since the message and @flighthq/log dependency live only in
12
- // this separately-imported module. Idempotent.
8
+ // Installs only the shakeable color-adjustment diagnostic on `state`: when enableColorAdjustments is
9
+ // also installed and a node's stack contains a non-matrix operation that neither the compact affine
10
+ // path nor the full 4×5 path can represent, the resolver reaches this guard through its independent
11
+ // nullable runtime slot and warns once. This does not enable accumulation or backend realization.
12
+ // Idempotent.
13
13
  export function enableColorAdjustmentGuards(state) {
14
14
  getRenderStateRuntime(state).colorAdjustmentUnsupportedGuard = warnUnsupportedColorAdjustment;
15
15
  }
16
16
  function warnUnsupportedColorAdjustment() {
17
17
  logOnce('render:unsupported-color-adjustment', LogLevel.Warn, {
18
- message: 'updateRenderProxyColorScaleBias: a per-object color adjustment is not inline-able because it has no 4×5 matrix representation. Use an Effect pass for the unsupported operation.',
18
+ message: 'enableColorAdjustments: a per-object color adjustment is not inline-able because it has no 4×5 matrix representation. Use an Effect pass for the unsupported operation.',
19
19
  }, 'render');
20
20
  }
21
21
  //# sourceMappingURL=enableColorAdjustmentGuards.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enableColorAdjustmentGuards.js","sourceRoot":"","sources":["../src/enableColorAdjustmentGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,+EAA+E;AAC/E,MAAM,UAAU,+BAA+B,CAAC,KAAkB;IAChE,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC,+BAA+B,IAAI,IAAI,CAAC;AAC9E,CAAC;AAED,sGAAsG;AACtG,sGAAsG;AACtG,yGAAyG;AACzG,uGAAuG;AACvG,+CAA+C;AAC/C,MAAM,UAAU,2BAA2B,CAAC,KAAkB;IAC5D,qBAAqB,CAAC,KAAK,CAAC,CAAC,+BAA+B,GAAG,8BAA8B,CAAC;AAChG,CAAC;AAED,SAAS,8BAA8B;IACrC,OAAO,CACL,qCAAqC,EACrC,QAAQ,CAAC,IAAI,EACb;QACE,OAAO,EACL,kLAAkL;KACrL,EACD,QAAQ,CACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"enableColorAdjustmentGuards.js","sourceRoot":"","sources":["../src/enableColorAdjustmentGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,+EAA+E;AAC/E,MAAM,UAAU,+BAA+B,CAAC,KAAkB;IAChE,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC,+BAA+B,IAAI,IAAI,CAAC;AAC9E,CAAC;AAED,qGAAqG;AACrG,oGAAoG;AACpG,oGAAoG;AACpG,kGAAkG;AAClG,cAAc;AACd,MAAM,UAAU,2BAA2B,CAAC,KAAkB;IAC5D,qBAAqB,CAAC,KAAK,CAAC,CAAC,+BAA+B,GAAG,8BAA8B,CAAC;AAChG,CAAC;AAED,SAAS,8BAA8B;IACrC,OAAO,CACL,qCAAqC,EACrC,QAAQ,CAAC,IAAI,EACb;QACE,OAAO,EACL,yKAAyK;KAC5K,EACD,QAAQ,CACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { RenderState } from '@flighthq/types/contract';
2
+ export declare function areColorAdjustmentsEnabled(state: RenderState): boolean;
3
+ export declare function enableColorAdjustments(state: RenderState): void;
4
+ //# sourceMappingURL=enableColorAdjustments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enableColorAdjustments.d.ts","sourceRoot":"","sources":["../src/enableColorAdjustments.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAMV,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAKlC,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAEtE;AAMD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAE/D"}
@@ -0,0 +1,110 @@
1
+ import { multiplyColorMatrix } from '@flighthq/adjustments/contract';
2
+ import { concatColorScaleBias, createColorScaleBias } from '@flighthq/materials/contract';
3
+ import { getNodeRuntime } from '@flighthq/node/contract';
4
+ import { getRenderStateRuntime } from './renderState';
5
+ // Returns whether color-adjustment accumulation is installed on `state`.
6
+ export function areColorAdjustmentsEnabled(state) {
7
+ return getRenderStateRuntime(state).colorAdjustmentResolver != null;
8
+ }
9
+ // Installs color-adjustment accumulation on `state`. The base render walk reaches this module only
10
+ // through a nullable runtime callback, so states that do not opt in retain one null check and do not
11
+ // pull @flighthq/adjustments or @flighthq/materials into their bundle. Backend feature registrars that
12
+ // can realize these values call this as part of their own opt-in. Idempotent.
13
+ export function enableColorAdjustments(state) {
14
+ getRenderStateRuntime(state).colorAdjustmentResolver = updateRenderProxyColorScaleBias;
15
+ }
16
+ // Hands the node's resolved color adjustment to the render node. A node's color-adjustment stack
17
+ // (NodeRuntime.colorAdjustments) is fused once into the affine `resolvedColorScaleBias` cache by the
18
+ // set-accessors on change — never per frame. The render walk then applies the local value first and its
19
+ // parent's inherited value second, matching the appearance and alpha axes: a transform on a container
20
+ // must reach every renderer-bearing descendant. Null and single-adjustment paths remain reference-only;
21
+ // only a node with both local and inherited adjustments performs composition. The result is the
22
+ // Adjustment-tier fold input; it is not a material and does not key the batch.
23
+ //
24
+ // Matrix-tier channel mixing travels through `resolvedColorMatrix`. A non-matrix operation that cannot
25
+ // be represented by either path leaves `colorAdjustmentsUnsupported` set, invoking the shakeable guard
26
+ // so unsupported adjustment data is reported rather than silently discarded.
27
+ function updateRenderProxyColorScaleBias(state, data, parentData) {
28
+ const runtime = getNodeRuntime(data.source);
29
+ const localColorScaleBias = runtime.resolvedColorScaleBias ?? null;
30
+ const localColorMatrix = runtime.resolvedColorMatrix ?? null;
31
+ const parentColorScaleBias = parentData?.colorScaleBias ?? null;
32
+ const parentColorMatrix = parentData?.colorMatrix ?? null;
33
+ if (localColorMatrix !== null || parentColorMatrix !== null) {
34
+ data.colorMatrix = resolveInheritedColorMatrix(data.colorMatrix, parentColorMatrix, parentColorScaleBias, localColorMatrix, localColorScaleBias);
35
+ data.colorScaleBias = null;
36
+ }
37
+ else {
38
+ data.colorMatrix = null;
39
+ data.colorScaleBias = resolveInheritedColorScaleBias(data.colorScaleBias, parentColorScaleBias, localColorScaleBias);
40
+ }
41
+ if (runtime.colorAdjustmentsUnsupported) {
42
+ getRenderStateRuntime(state).colorAdjustmentUnsupportedGuard?.(state, data.source);
43
+ }
44
+ }
45
+ function resolveInheritedColorScaleBias(previous, parent, local) {
46
+ if (parent === null)
47
+ return local;
48
+ if (local === null)
49
+ return parent;
50
+ const out = previous !== parent && previous !== local && previous !== null && inheritedColorScaleBiases.has(previous)
51
+ ? previous
52
+ : createInheritedColorScaleBias();
53
+ // SWF and scene-graph semantics apply the local adjustment first, then the parent's adjustment.
54
+ concatColorScaleBias(out, parent, local);
55
+ return out;
56
+ }
57
+ function resolveInheritedColorMatrix(previous, parentMatrix, parentColorScaleBias, localMatrix, localColorScaleBias) {
58
+ if (parentMatrix === null && parentColorScaleBias === null)
59
+ return localMatrix;
60
+ if (localMatrix === null && localColorScaleBias === null)
61
+ return parentMatrix;
62
+ const parent = parentMatrix ?? writeColorScaleBiasMatrix(parentColorMatrixScratch, parentColorScaleBias);
63
+ const local = localMatrix ?? writeColorScaleBiasMatrix(localColorMatrixScratch, localColorScaleBias);
64
+ const out = previous !== parentMatrix &&
65
+ previous !== localMatrix &&
66
+ previous !== null &&
67
+ previous !== undefined &&
68
+ inheritedColorMatrices.has(previous)
69
+ ? previous
70
+ : createInheritedColorMatrix();
71
+ return multiplyColorMatrix(parent, local, out);
72
+ }
73
+ function writeColorScaleBiasMatrix(out, value) {
74
+ out[0] = value.redScale;
75
+ out[1] = 0;
76
+ out[2] = 0;
77
+ out[3] = 0;
78
+ out[4] = value.redBias;
79
+ out[5] = 0;
80
+ out[6] = value.greenScale;
81
+ out[7] = 0;
82
+ out[8] = 0;
83
+ out[9] = value.greenBias;
84
+ out[10] = 0;
85
+ out[11] = 0;
86
+ out[12] = value.blueScale;
87
+ out[13] = 0;
88
+ out[14] = value.blueBias;
89
+ out[15] = 0;
90
+ out[16] = 0;
91
+ out[17] = 0;
92
+ out[18] = value.alphaScale;
93
+ out[19] = value.alphaBias;
94
+ return out;
95
+ }
96
+ function createInheritedColorScaleBias() {
97
+ const value = createColorScaleBias();
98
+ inheritedColorScaleBiases.add(value);
99
+ return value;
100
+ }
101
+ function createInheritedColorMatrix() {
102
+ const value = new Array(20);
103
+ inheritedColorMatrices.add(value);
104
+ return value;
105
+ }
106
+ const inheritedColorScaleBiases = new WeakSet();
107
+ const inheritedColorMatrices = new WeakSet();
108
+ const parentColorMatrixScratch = new Array(20);
109
+ const localColorMatrixScratch = new Array(20);
110
+ //# sourceMappingURL=enableColorAdjustments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enableColorAdjustments.js","sourceRoot":"","sources":["../src/enableColorAdjustments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /** Uninstalls the guards installed by `enableSceneRenderGuards`. */
2
+ export declare function disableSceneRenderGuards(): void;
3
+ /**
4
+ * Installs the caller-facing scene-render guards (opt-in, dev-only). It warns once — through
5
+ * `@flighthq/log` — when a skinned mesh reaches frustum culling with no posed bounds, meaning the
6
+ * deform pass `prepareScene3DRender` documents as a precondition never ran.
7
+ *
8
+ * That is worth a message because the failure is invisible at the point of the mistake. A GPU-skinned
9
+ * mesh deforms in the shader, so its geometry bounds stay bind pose; without the deform pass, culling
10
+ * tests a swung limb against the box the character occupied in bind pose and removes it from the frame.
11
+ * The symptom is a limb or a whole character flickering out at certain angles, which reads as a
12
+ * culling bug or a camera bug — anything except a missing call in the frame loop.
13
+ *
14
+ * `prepareScene3DRender` cannot simply run the deform pass itself: that would make `@flighthq/render`
15
+ * depend on `@flighthq/skeleton3d` and bundle skinning into every rigid and 2D consumer. So the
16
+ * precondition is real and the guard is how it becomes discoverable.
17
+ *
18
+ * Not importing this module costs production nothing: the message and the `@flighthq/log` dependency
19
+ * live only here.
20
+ */
21
+ export declare function enableSceneRenderGuards(): void;
22
+ //# sourceMappingURL=enableSceneRenderGuards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enableSceneRenderGuards.d.ts","sourceRoot":"","sources":["../src/enableSceneRenderGuards.ts"],"names":[],"mappings":"AAMA,oEAAoE;AACpE,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C"}
@@ -0,0 +1,36 @@
1
+ import { logOnce } from '@flighthq/log/contract';
2
+ import { LogLevel } from '@flighthq/types/contract';
3
+ import { setSkinnedMeshBoundsGuard } from './sceneRender';
4
+ /** Uninstalls the guards installed by `enableSceneRenderGuards`. */
5
+ export function disableSceneRenderGuards() {
6
+ setSkinnedMeshBoundsGuard(null);
7
+ }
8
+ /**
9
+ * Installs the caller-facing scene-render guards (opt-in, dev-only). It warns once — through
10
+ * `@flighthq/log` — when a skinned mesh reaches frustum culling with no posed bounds, meaning the
11
+ * deform pass `prepareScene3DRender` documents as a precondition never ran.
12
+ *
13
+ * That is worth a message because the failure is invisible at the point of the mistake. A GPU-skinned
14
+ * mesh deforms in the shader, so its geometry bounds stay bind pose; without the deform pass, culling
15
+ * tests a swung limb against the box the character occupied in bind pose and removes it from the frame.
16
+ * The symptom is a limb or a whole character flickering out at certain angles, which reads as a
17
+ * culling bug or a camera bug — anything except a missing call in the frame loop.
18
+ *
19
+ * `prepareScene3DRender` cannot simply run the deform pass itself: that would make `@flighthq/render`
20
+ * depend on `@flighthq/skeleton3d` and bundle skinning into every rigid and 2D consumer. So the
21
+ * precondition is real and the guard is how it becomes discoverable.
22
+ *
23
+ * Not importing this module costs production nothing: the message and the `@flighthq/log` dependency
24
+ * live only here.
25
+ */
26
+ export function enableSceneRenderGuards() {
27
+ setSkinnedMeshBoundsGuard(warnOnUnposedSkinnedMesh);
28
+ }
29
+ function warnOnUnposedSkinnedMesh(_mesh) {
30
+ logOnce('render:skinned-mesh-without-deformed-bounds', LogLevel.Warn, {
31
+ message: 'prepareScene3DRender: a skinned mesh has no posed bounds, so culling is testing it against its ' +
32
+ 'BIND POSE box and a deformed limb can be wrongly culled. Call prepareScene3DSkinning ' +
33
+ '(@flighthq/skeleton3d) before prepareScene3DRender each frame.',
34
+ }, 'render');
35
+ }
36
+ //# sourceMappingURL=enableSceneRenderGuards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enableSceneRenderGuards.js","sourceRoot":"","sources":["../src/enableSceneRenderGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE1D,oEAAoE;AACpE,MAAM,UAAU,wBAAwB;IACtC,yBAAyB,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,uBAAuB;IACrC,yBAAyB,CAAC,wBAAwB,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAqB;IACrD,OAAO,CACL,6CAA6C,EAC7C,QAAQ,CAAC,IAAI,EACb;QACE,OAAO,EACL,iGAAiG;YACjG,uFAAuF;YACvF,gEAAgE;KACnE,EACD,QAAQ,CACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { RenderState, Scene2DKindUsage, SceneCoverageEntry } from '@flighthq/types/contract';
2
+ export declare function explainScene2DCoverage(out: SceneCoverageEntry[], state: RenderState, usage: Readonly<Scene2DKindUsage>): void;
3
+ export declare function hasScene2DCoverage(state: RenderState, usage: Readonly<Scene2DKindUsage>): boolean;
4
+ //# sourceMappingURL=explainScene2DCoverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainScene2DCoverage.d.ts","sourceRoot":"","sources":["../src/explainScene2DCoverage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAelG,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,kBAAkB,EAAE,EACzB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAChC,IAAI,CAGN;AAID,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAEjG"}
@@ -0,0 +1,57 @@
1
+ import { RenderRegistry, SceneCoverage } from '@flighthq/types/contract';
2
+ import { getRenderStateRuntime } from './renderState';
3
+ // Clears `out`, then reports every requirement in `usage` that any 2D backend answers the same way,
4
+ // with how well this state is wired for it — satisfied entries included, so one call is a manifest.
5
+ //
6
+ // This covers the two registries that live on the BASE render-state runtime and so mean the same thing
7
+ // on Canvas, DOM, GL and WebGPU: the node-renderer map every backend dispatches through, and the shape
8
+ // command set every backend replays through when it rasterizes. A backend adds its own specifics — GL
9
+ // blend realizations, per-backend material renderers — on top of this, rather than restating it.
10
+ //
11
+ // Unlike the 3D seam, node kinds ARE a requirement here: the 2D pipeline resolves every node through
12
+ // `registerRenderer(state, kind, renderer)`, where the 3D pipeline collects meshes structurally.
13
+ export function explainScene2DCoverage(out, state, usage) {
14
+ out.length = 0;
15
+ collectScene2DCoverageGaps(out, state, usage, false);
16
+ }
17
+ // Whether this state can serve every node kind and shape command `usage` names. Stops at the first
18
+ // shortfall and never allocates. Use the explain form to find out WHICH requirement and how badly.
19
+ export function hasScene2DCoverage(state, usage) {
20
+ return !collectScene2DCoverageGaps(null, state, usage, true);
21
+ }
22
+ // The single implementation both tiers read, so the boolean can never disagree with the explanation.
23
+ // `found` counts only real shortfalls, so appending satisfied entries to `out` never flips the predicate.
24
+ function collectScene2DCoverageGaps(out, state, usage, stopAtFirst) {
25
+ let found = false;
26
+ const runtime = getRenderStateRuntime(state);
27
+ // A node kind with no renderer produces no render proxy, so the node and its whole subtree are
28
+ // absent from the frame — the loudest failure in this seam and the one worth asking about first.
29
+ for (let i = 0; i < usage.nodeKinds.length; i++) {
30
+ const kind = usage.nodeKinds[i];
31
+ if (runtime.rendererMap.has(kind)) {
32
+ out?.push({ coverage: SceneCoverage.Satisfied, kind, registry: RenderRegistry.NodeRenderer });
33
+ continue;
34
+ }
35
+ found = true;
36
+ if (stopAtFirst)
37
+ return true;
38
+ out?.push({ coverage: SceneCoverage.Missing, kind, registry: RenderRegistry.NodeRenderer });
39
+ }
40
+ // Only meaningful for a state that rasterizes shapes. A GL or WebGPU state drawing every shape
41
+ // through the mesh path never replays a command, so these entries are reported and simply not acted
42
+ // on — the same shape as reporting 3D node kinds a backend collects structurally.
43
+ const commands = runtime.canvasShapeCommandRegistry;
44
+ for (let i = 0; i < usage.shapeCommandKeys.length; i++) {
45
+ const kind = usage.shapeCommandKeys[i];
46
+ if (commands?.has(kind) === true) {
47
+ out?.push({ coverage: SceneCoverage.Satisfied, kind, registry: RenderRegistry.ShapeCommandHandler });
48
+ continue;
49
+ }
50
+ found = true;
51
+ if (stopAtFirst)
52
+ return true;
53
+ out?.push({ coverage: SceneCoverage.Missing, kind, registry: RenderRegistry.ShapeCommandHandler });
54
+ }
55
+ return found;
56
+ }
57
+ //# sourceMappingURL=explainScene2DCoverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainScene2DCoverage.js","sourceRoot":"","sources":["../src/explainScene2DCoverage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,oGAAoG;AACpG,oGAAoG;AACpG,EAAE;AACF,uGAAuG;AACvG,uGAAuG;AACvG,sGAAsG;AACtG,iGAAiG;AACjG,EAAE;AACF,qGAAqG;AACrG,iGAAiG;AACjG,MAAM,UAAU,sBAAsB,CACpC,GAAyB,EACzB,KAAkB,EAClB,KAAiC;IAEjC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACf,0BAA0B,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,mGAAmG;AACnG,mGAAmG;AACnG,MAAM,UAAU,kBAAkB,CAAC,KAAkB,EAAE,KAAiC;IACtF,OAAO,CAAC,0BAA0B,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,qGAAqG;AACrG,0GAA0G;AAC1G,SAAS,0BAA0B,CACjC,GAAgC,EAChC,KAAkB,EAClB,KAAiC,EACjC,WAAoB;IAEpB,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAE7C,+FAA+F;IAC/F,iGAAiG;IACjG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC;YAC9F,SAAS;QACX,CAAC;QACD,KAAK,GAAG,IAAI,CAAC;QACb,IAAI,WAAW;YAAE,OAAO,IAAI,CAAC;QAC7B,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,+FAA+F;IAC/F,oGAAoG;IACpG,kFAAkF;IAClF,MAAM,QAAQ,GAAG,OAAO,CAAC,0BAA0B,CAAC;IACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACjC,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACrG,SAAS;QACX,CAAC;QACD,KAAK,GAAG,IAAI,CAAC;QACb,IAAI,WAAW;YAAE,OAAO,IAAI,CAAC;QAC7B,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- export { createRenderCache, packScene3DLightBlock, prepareScene2DRender, prepareScene3DRender, registerRenderer, useRenderCache, } from './contract';
1
+ export { areColorAdjustmentsEnabled, disableSceneRenderGuards, enableColorAdjustments, enableSceneRenderGuards, createRenderCache, destroyRenderState, disposeScene2DRender, enableRenderRegistryGuards, enableRenderRegistrySignals, explainRenderRegistryMisses, packScene3DLightBlock, prepareScene2DRender, prepareScene3DRender, registerRenderer, useRenderCache, } from './contract';
2
+ export { SCENE2D_WORKING_COLOR_SPACE } from './scene2dWorkingColorSpace';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,EAC3B,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
- export { createRenderCache, packScene3DLightBlock, prepareScene2DRender, prepareScene3DRender, registerRenderer, useRenderCache, } from './contract';
1
+ export { areColorAdjustmentsEnabled, disableSceneRenderGuards, enableColorAdjustments, enableSceneRenderGuards, createRenderCache, destroyRenderState, disposeScene2DRender, enableRenderRegistryGuards, enableRenderRegistrySignals, explainRenderRegistryMisses, packScene3DLightBlock, prepareScene2DRender, prepareScene3DRender, registerRenderer, useRenderCache, } from './contract';
2
+ export { SCENE2D_WORKING_COLOR_SPACE } from './scene2dWorkingColorSpace';
2
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,EAC3B,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderProxy.d.ts","sourceRoot":"","sources":["../src/renderProxy.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAEV,kBAAkB,EAClB,cAAc,EAEd,UAAU,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,WAAW,EACZ,MAAM,0BAA0B,CAAC;AASlC,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;AAEvF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,WAAW,CAyBrF;AAKD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,UAAU,GAAG,cAAc,GAAG,kBAAkB,GACvD,aAAa,CAMf;AAMD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAM/E;AASD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAE/E;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,aAAa,CAY9F;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,CAElG;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,GAAG,IAAI,CAE9E;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,WAAW,EACjB,UAAU,CAAC,EAAE,WAAW,GACvB,OAAO,CAWT;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAEjE;AAOD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAEpF;AAMD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,aAAa,GAAG,SAAS,GACpC,IAAI,CAGN;AAID,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,aAAa,GAAG,SAAS,GACpC,IAAI,CASN;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAWrF;AAMD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CA+CjG"}
1
+ {"version":3,"file":"renderProxy.d.ts","sourceRoot":"","sources":["../src/renderProxy.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAEV,kBAAkB,EAClB,cAAc,EAEd,UAAU,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAQlC,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;AAEvF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,WAAW,CA2BrF;AAKD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,UAAU,GAAG,cAAc,GAAG,kBAAkB,GACvD,aAAa,CAMf;AAMD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAQ/E;AASD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAE/E;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,aAAa,CAa9F;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,CAElG;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,GAAG,IAAI,CAE9E;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,WAAW,EACjB,UAAU,CAAC,EAAE,WAAW,GACvB,OAAO,CAeT;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAEjE;AAOD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAEpF;AAMD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,aAAa,GAAG,SAAS,GACpC,IAAI,CAGN;AAID,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,aAAa,GAAG,SAAS,GACpC,IAAI,CAmBN;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAWrF;AAaD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAgDjG"}
@@ -1,15 +1,14 @@
1
1
  import { createEntity } from '@flighthq/entity/contract';
2
2
  import { createMatrix } from '@flighthq/geometry/contract';
3
- import { getNodeAppearanceRevision, getNodeLocalContentRevision, getNodeLocalTransformRevision, getNodeParent, getNodeRuntime, } from '@flighthq/node/contract';
4
- import { BlendMode } from '@flighthq/types/contract';
3
+ import { getNodeAppearanceRevision, getNodeChildrenRevision, getNodeLocalContentRevision, getNodeLocalTransformRevision, getNodeParentReferenceRevision, getNodeParent, getNodeRuntime, } from '@flighthq/node/contract';
4
+ import { BlendMode, RenderRegistry } from '@flighthq/types/contract';
5
5
  import { updateRenderProxyAppearance } from './renderAppearance';
6
- import { updateRenderProxyColorScaleBias } from './renderColorScaleBias';
7
6
  import { updateRenderProxyMaterial } from './renderMaterial';
8
7
  import { getRenderStateRuntime } from './renderState';
9
8
  import { updateRenderProxy2DTransform } from './renderTransform2d';
10
9
  export function createRenderProxy(state, source) {
11
10
  const runtime = getRenderStateRuntime(state);
12
- const renderer = runtime.rendererMap.get(source.kind) ?? null;
11
+ const renderer = resolveRenderProxyRenderer(state, source.kind);
13
12
  return createEntity({
14
13
  source: source,
15
14
  kind: source.kind,
@@ -22,8 +21,10 @@ export function createRenderProxy(state, source) {
22
21
  material: null,
23
22
  materialData: null,
24
23
  lastAppearanceId: -1,
24
+ lastChildrenId: -1,
25
25
  lastLocalContentId: -1,
26
26
  lastLocalTransformId: -1,
27
+ lastParentReferenceId: -1,
27
28
  name: null,
28
29
  renderer: renderer,
29
30
  rendererData: renderer?.createData(state, source) ?? null,
@@ -48,13 +49,15 @@ export function createRenderProxy2D(state, source) {
48
49
  // renderer's destroyData to free the non-GC GPU resources it owns. Call when a node is removed from
49
50
  // rendering for good — otherwise those GPU textures/framebuffers linger until the source is GC'd.
50
51
  export function disposeRenderProxy(state, source) {
51
- const renderProxyMap = getRenderStateRuntime(state).renderProxyMap;
52
+ const runtime = getRenderStateRuntime(state);
53
+ const renderProxyMap = runtime.renderProxyMap;
52
54
  const node = renderProxyMap.get(source);
53
55
  if (node === undefined)
54
56
  return;
55
57
  if (node.rendererData !== null)
56
58
  node.renderer?.destroyData?.(state, node.rendererData);
57
59
  renderProxyMap.delete(source);
60
+ runtime.renderProxySources.delete(source);
58
61
  }
59
62
  // Teardown counterpart to prepareScene2DRender: disposes the render of `root` and every descendant —
60
63
  // the render proxies that prepareScene2DRender created. Each disposeRenderProxy cascades to the
@@ -73,6 +76,7 @@ export function getOrCreateRenderProxy2D(state, source) {
73
76
  if (!node) {
74
77
  node = createRenderProxy2D(state, source);
75
78
  renderProxyMap.set(source, node);
79
+ runtime.renderProxySources.add(source);
76
80
  }
77
81
  if (node.rendererMapId !== runtime.rendererMapId) {
78
82
  updateRenderProxyRenderer(state, node);
@@ -89,11 +93,14 @@ export function isRenderProxyDirty(state, source, data, parentData) {
89
93
  const currentFrameId = getRenderStateRuntime(state).currentFrameId;
90
94
  const parentDirty = parentData !== undefined &&
91
95
  (parentData.transformFrameId === currentFrameId || parentData.appearanceFrameId === currentFrameId);
96
+ const rendererDirty = data.renderer?.isDirty?.(state, source, data.rendererData) ?? false;
97
+ const hierarchyDirty = data.lastChildrenId !== getNodeChildrenRevision(source) ||
98
+ data.lastParentReferenceId !== getNodeParentReferenceRevision(source);
92
99
  const localDirty = state.sceneGraphSyncPolicy === 'refreshDerivedState' ||
93
100
  data.lastLocalTransformId !== getNodeLocalTransformRevision(source) ||
94
101
  data.lastAppearanceId !== getNodeAppearanceRevision(source) ||
95
102
  data.lastLocalContentId !== getNodeLocalContentRevision(source);
96
- return parentDirty || localDirty;
103
+ return parentDirty || rendererDirty || hierarchyDirty || localDirty;
97
104
  }
98
105
  export function isRenderProxyVisible(data) {
99
106
  return data.visible && data.alpha > 0 && !(data.transform2D.a === 0 && data.transform2D.d === 0);
@@ -117,18 +124,28 @@ export function updateNodeClip(_state, source, data, parentData) {
117
124
  // The one per-node update step for the 2D walk: appearance, transform, material, color adjustment,
118
125
  // then the clip nesting depth. Sprites and display objects share this single visitor.
119
126
  export function updateRenderProxy2D(state, source, data, parentData) {
127
+ const parentReferenceId = getNodeParentReferenceRevision(source);
128
+ if (data.lastParentReferenceId !== parentReferenceId) {
129
+ // A prepared node may be detached while its eventual parent changes, then reattached to the same
130
+ // parent identity. Force both inherited axes through their existing update paths; comparing only
131
+ // the current parent or its "updated this frame" marker would leave that warm proxy stale.
132
+ data.lastAppearanceId = -1;
133
+ data.lastLocalTransformId = -1;
134
+ }
120
135
  updateRenderProxyAppearance(state, data, parentData);
121
136
  updateRenderProxy2DTransform(state, data, parentData);
122
137
  updateRenderProxyMaterial(state, data, parentData);
123
- updateRenderProxyColorScaleBias(state, data, parentData);
138
+ getRenderStateRuntime(state).colorAdjustmentResolver?.(state, data, parentData);
124
139
  updateNodeClip(state, source, data, parentData);
125
- // Record the content revision we synced at, so a later content-only change re-dirties the node.
140
+ // Record the local and structural revisions this adaptation consumed.
141
+ data.lastChildrenId = getNodeChildrenRevision(source);
126
142
  data.lastLocalContentId = getNodeLocalContentRevision(source);
143
+ data.lastParentReferenceId = parentReferenceId;
127
144
  getRenderStateRuntime(state).renderAdaptHook?.(state, source, data);
128
145
  }
129
146
  export function updateRenderProxyRenderer(state, node) {
130
147
  const runtime = getRenderStateRuntime(state);
131
- const renderer = runtime.rendererMap.get(node.kind) ?? null;
148
+ const renderer = resolveRenderProxyRenderer(state, node.kind);
132
149
  if (node.renderer !== renderer || node.rendererDataSource !== node.source) {
133
150
  // Free the outgoing renderer's GPU resources before replacing the data it owned.
134
151
  if (node.rendererData !== null)
@@ -139,12 +156,20 @@ export function updateRenderProxyRenderer(state, node) {
139
156
  }
140
157
  node.rendererMapId = runtime.rendererMapId;
141
158
  }
159
+ function resolveRenderProxyRenderer(state, kind) {
160
+ const runtime = getRenderStateRuntime(state);
161
+ const renderer = runtime.rendererMap.get(kind);
162
+ if (renderer === undefined)
163
+ runtime.registryMiss?.(RenderRegistry.NodeRenderer, kind);
164
+ return renderer ?? null;
165
+ }
142
166
  // One generic, dirty-checked pre-order walk over the 2D node graph. `visit` composes the trait
143
167
  // update* steps. Sprites and display objects share this single traversal and a single render-node
144
168
  // type — what differs is the traits they carry, not the path. Clip is not handled here: it is a
145
169
  // trait update step in the visitor (updateNodeClip), realized at draw time by the backend clip hooks.
146
170
  export function walkNode(state, root, visit) {
147
171
  const runtime = getRenderStateRuntime(state);
172
+ runtime.renderRootGuard?.(state, root);
148
173
  ++runtime.currentFrameId;
149
174
  const tempStack = runtime.tempStack;
150
175
  let stackLength = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"renderProxy.js","sourceRoot":"","sources":["../src/renderProxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderProxy.js","sourceRoot":"","sources":["../src/renderProxy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { RenderRegistryMissExplanation, RenderState } from '@flighthq/types/contract';
2
+ export declare function areRenderRegistryGuardsEnabled(state: RenderState): boolean;
3
+ export declare function enableRenderRegistryGuards(state: RenderState): void;
4
+ export declare function explainRenderRegistryMisses(state: RenderState): RenderRegistryMissExplanation;
5
+ //# sourceMappingURL=renderRegistryGuards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderRegistryGuards.d.ts","sourceRoot":"","sources":["../src/renderRegistryGuards.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA4B,6BAA6B,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKrH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE1E;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAQnE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,WAAW,GAAG,6BAA6B,CAM7F"}