@aura3d/engine 4.5.0 → 4.6.1

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 (221) hide show
  1. package/README.md +1 -0
  2. package/dist/animation/pose/BoneMask.d.ts +8 -0
  3. package/dist/animation/pose/BoneMask.d.ts.map +1 -1
  4. package/dist/animation/pose/BoneMask.js +18 -1
  5. package/dist/animation/pose/BoneMask.js.map +1 -1
  6. package/dist/animation/pose/PoseMixer.d.ts +18 -2
  7. package/dist/animation/pose/PoseMixer.d.ts.map +1 -1
  8. package/dist/animation/pose/PoseMixer.js +52 -4
  9. package/dist/animation/pose/PoseMixer.js.map +1 -1
  10. package/dist/animation/pose/RetargetWorker.d.ts +8 -1
  11. package/dist/animation/pose/RetargetWorker.d.ts.map +1 -1
  12. package/dist/animation/pose/RetargetWorker.js +30 -2
  13. package/dist/animation/pose/RetargetWorker.js.map +1 -1
  14. package/dist/aura3d-cli/index.d.ts +6 -0
  15. package/dist/aura3d-cli/index.d.ts.map +1 -1
  16. package/dist/aura3d-cli/index.js +28 -0
  17. package/dist/aura3d-cli/index.js.map +1 -1
  18. package/dist/create-aura3d/cli.js +22 -2
  19. package/dist/create-aura3d/cli.js.map +1 -1
  20. package/dist/create-aura3d/index.d.ts +11 -0
  21. package/dist/create-aura3d/index.d.ts.map +1 -1
  22. package/dist/create-aura3d/index.js +9 -2
  23. package/dist/create-aura3d/index.js.map +1 -1
  24. package/dist/create-aura3d/template-assets.d.ts +53 -0
  25. package/dist/create-aura3d/template-assets.d.ts.map +1 -0
  26. package/dist/create-aura3d/template-assets.js +116 -0
  27. package/dist/create-aura3d/template-assets.js.map +1 -0
  28. package/dist/engine/agent-api/Clock.d.ts +5 -2
  29. package/dist/engine/agent-api/Clock.d.ts.map +1 -1
  30. package/dist/engine/agent-api/Clock.js +9 -4
  31. package/dist/engine/agent-api/Clock.js.map +1 -1
  32. package/dist/engine/agent-api/animationMask.d.ts +14 -2
  33. package/dist/engine/agent-api/animationMask.d.ts.map +1 -1
  34. package/dist/engine/agent-api/animationMask.js +19 -4
  35. package/dist/engine/agent-api/animationMask.js.map +1 -1
  36. package/dist/engine/agent-api/app/actorAnimationHandle.d.ts.map +1 -1
  37. package/dist/engine/agent-api/app/actorAnimationHandle.js +7 -4
  38. package/dist/engine/agent-api/app/actorAnimationHandle.js.map +1 -1
  39. package/dist/engine/agent-api/app/canvas.d.ts +21 -0
  40. package/dist/engine/agent-api/app/canvas.d.ts.map +1 -1
  41. package/dist/engine/agent-api/app/canvas.js +125 -7
  42. package/dist/engine/agent-api/app/canvas.js.map +1 -1
  43. package/dist/engine/agent-api/app/createAuraApp.d.ts.map +1 -1
  44. package/dist/engine/agent-api/app/createAuraApp.js +108 -15
  45. package/dist/engine/agent-api/app/createAuraApp.js.map +1 -1
  46. package/dist/engine/agent-api/app/frameLoop.d.ts +13 -0
  47. package/dist/engine/agent-api/app/frameLoop.d.ts.map +1 -1
  48. package/dist/engine/agent-api/app/frameLoop.js +98 -12
  49. package/dist/engine/agent-api/app/frameLoop.js.map +1 -1
  50. package/dist/engine/agent-api/app/parentFit.d.ts +20 -2
  51. package/dist/engine/agent-api/app/parentFit.d.ts.map +1 -1
  52. package/dist/engine/agent-api/app/parentFit.js +13 -9
  53. package/dist/engine/agent-api/app/parentFit.js.map +1 -1
  54. package/dist/engine/agent-api/app/renderPath.d.ts +31 -2
  55. package/dist/engine/agent-api/app/renderPath.d.ts.map +1 -1
  56. package/dist/engine/agent-api/app/renderPath.js +128 -22
  57. package/dist/engine/agent-api/app/renderPath.js.map +1 -1
  58. package/dist/engine/agent-api/app/rendererOptions.d.ts +27 -4
  59. package/dist/engine/agent-api/app/rendererOptions.d.ts.map +1 -1
  60. package/dist/engine/agent-api/app/rendererOptions.js +63 -16
  61. package/dist/engine/agent-api/app/rendererOptions.js.map +1 -1
  62. package/dist/engine/agent-api/app/runtimeNodes.d.ts +2 -0
  63. package/dist/engine/agent-api/app/runtimeNodes.d.ts.map +1 -1
  64. package/dist/engine/agent-api/app/runtimeNodes.js +80 -2
  65. package/dist/engine/agent-api/app/runtimeNodes.js.map +1 -1
  66. package/dist/engine/agent-api/compiler/animation.d.ts.map +1 -1
  67. package/dist/engine/agent-api/compiler/animation.js +4 -3
  68. package/dist/engine/agent-api/compiler/animation.js.map +1 -1
  69. package/dist/engine/agent-api/compiler/compileScene.d.ts +21 -5
  70. package/dist/engine/agent-api/compiler/compileScene.d.ts.map +1 -1
  71. package/dist/engine/agent-api/compiler/compileScene.js +103 -11
  72. package/dist/engine/agent-api/compiler/compileScene.js.map +1 -1
  73. package/dist/engine/agent-api/compiler/contactShadowKey.d.ts +14 -0
  74. package/dist/engine/agent-api/compiler/contactShadowKey.d.ts.map +1 -0
  75. package/dist/engine/agent-api/compiler/contactShadowKey.js +66 -0
  76. package/dist/engine/agent-api/compiler/contactShadowKey.js.map +1 -0
  77. package/dist/engine/agent-api/compiler/environment.d.ts +37 -0
  78. package/dist/engine/agent-api/compiler/environment.d.ts.map +1 -1
  79. package/dist/engine/agent-api/compiler/environment.js +129 -11
  80. package/dist/engine/agent-api/compiler/environment.js.map +1 -1
  81. package/dist/engine/agent-api/compiler/mountedRoots.d.ts +6 -0
  82. package/dist/engine/agent-api/compiler/mountedRoots.d.ts.map +1 -0
  83. package/dist/engine/agent-api/compiler/mountedRoots.js +25 -0
  84. package/dist/engine/agent-api/compiler/mountedRoots.js.map +1 -0
  85. package/dist/engine/agent-api/compiler/postprocess.d.ts.map +1 -1
  86. package/dist/engine/agent-api/compiler/postprocess.js +3 -1
  87. package/dist/engine/agent-api/compiler/postprocess.js.map +1 -1
  88. package/dist/engine/agent-api/compiler/primitives.d.ts +13 -1
  89. package/dist/engine/agent-api/compiler/primitives.d.ts.map +1 -1
  90. package/dist/engine/agent-api/compiler/primitives.js +28 -3
  91. package/dist/engine/agent-api/compiler/primitives.js.map +1 -1
  92. package/dist/engine/agent-api/compiler/renderer.d.ts +5 -3
  93. package/dist/engine/agent-api/compiler/renderer.d.ts.map +1 -1
  94. package/dist/engine/agent-api/compiler/renderer.js +33 -7
  95. package/dist/engine/agent-api/compiler/renderer.js.map +1 -1
  96. package/dist/engine/agent-api/compiler/shadows.d.ts +4 -1
  97. package/dist/engine/agent-api/compiler/shadows.d.ts.map +1 -1
  98. package/dist/engine/agent-api/compiler/shadows.js +6 -2
  99. package/dist/engine/agent-api/compiler/shadows.js.map +1 -1
  100. package/dist/engine/agent-api/looks/lookGrade.d.ts +4 -0
  101. package/dist/engine/agent-api/looks/lookGrade.d.ts.map +1 -0
  102. package/dist/engine/agent-api/looks/lookGrade.js +41 -0
  103. package/dist/engine/agent-api/looks/lookGrade.js.map +1 -0
  104. package/dist/engine/agent-api/looks/looks.d.ts.map +1 -1
  105. package/dist/engine/agent-api/looks/looks.js +10 -6
  106. package/dist/engine/agent-api/looks/looks.js.map +1 -1
  107. package/dist/engine/agent-api/nodes/effects.post.d.ts.map +1 -1
  108. package/dist/engine/agent-api/nodes/effects.post.js +2 -1
  109. package/dist/engine/agent-api/nodes/effects.post.js.map +1 -1
  110. package/dist/engine/agent-api/nodes/instances.d.ts.map +1 -1
  111. package/dist/engine/agent-api/nodes/instances.js +16 -4
  112. package/dist/engine/agent-api/nodes/instances.js.map +1 -1
  113. package/dist/engine/agent-api/nodes/model.d.ts +15 -0
  114. package/dist/engine/agent-api/nodes/model.d.ts.map +1 -1
  115. package/dist/engine/agent-api/nodes/model.js +37 -0
  116. package/dist/engine/agent-api/nodes/model.js.map +1 -1
  117. package/dist/engine/agent-api/nodes/physics.d.ts +25 -0
  118. package/dist/engine/agent-api/nodes/physics.d.ts.map +1 -1
  119. package/dist/engine/agent-api/nodes/physics.js +107 -11
  120. package/dist/engine/agent-api/nodes/physics.js.map +1 -1
  121. package/dist/engine/agent-api/nodes/primitives.d.ts +16 -1
  122. package/dist/engine/agent-api/nodes/primitives.d.ts.map +1 -1
  123. package/dist/engine/agent-api/nodes/primitives.js +11 -8
  124. package/dist/engine/agent-api/nodes/primitives.js.map +1 -1
  125. package/dist/engine/agent-api/nodes/types/runtime.d.ts +5 -0
  126. package/dist/engine/agent-api/nodes/types/runtime.d.ts.map +1 -1
  127. package/dist/engine/agent-api/nodes/types.d.ts +4 -0
  128. package/dist/engine/agent-api/nodes/types.d.ts.map +1 -1
  129. package/dist/engine/agent-api/postBridge.d.ts.map +1 -1
  130. package/dist/engine/agent-api/postBridge.js +3 -1
  131. package/dist/engine/agent-api/postBridge.js.map +1 -1
  132. package/dist/engine/contracts/environment.d.ts +9 -0
  133. package/dist/engine/contracts/environment.d.ts.map +1 -1
  134. package/dist/engine/contracts/environment.js.map +1 -1
  135. package/dist/engine/contracts/lighting.d.ts +3 -0
  136. package/dist/engine/contracts/lighting.d.ts.map +1 -1
  137. package/dist/engine/contracts/lighting.js.map +1 -1
  138. package/dist/engine/lanes/prd02.d.ts +12 -4
  139. package/dist/engine/lanes/prd02.d.ts.map +1 -1
  140. package/dist/engine/lanes/prd02.js +23 -7
  141. package/dist/engine/lanes/prd02.js.map +1 -1
  142. package/dist/engine/production-runtime/effects/EffectNodeLowering.d.ts.map +1 -1
  143. package/dist/engine/production-runtime/effects/EffectNodeLowering.js +5 -0
  144. package/dist/engine/production-runtime/effects/EffectNodeLowering.js.map +1 -1
  145. package/dist/game/touch/TouchControls.d.ts.map +1 -1
  146. package/dist/game/touch/TouchControls.js +48 -12
  147. package/dist/game/touch/TouchControls.js.map +1 -1
  148. package/dist/react/index.d.ts +13 -0
  149. package/dist/react/index.d.ts.map +1 -1
  150. package/dist/react/index.js +88 -8
  151. package/dist/react/index.js.map +1 -1
  152. package/dist/rendering/DepthPass.d.ts +7 -0
  153. package/dist/rendering/DepthPass.d.ts.map +1 -1
  154. package/dist/rendering/DepthPass.js +40 -4
  155. package/dist/rendering/DepthPass.js.map +1 -1
  156. package/dist/rendering/ForwardPass.d.ts +69 -5
  157. package/dist/rendering/ForwardPass.d.ts.map +1 -1
  158. package/dist/rendering/ForwardPass.js +119 -27
  159. package/dist/rendering/ForwardPass.js.map +1 -1
  160. package/dist/rendering/RenderDevice.d.ts +5 -0
  161. package/dist/rendering/RenderDevice.d.ts.map +1 -1
  162. package/dist/rendering/RenderDevice.js.map +1 -1
  163. package/dist/rendering/RendererPostprocessPlan.d.ts.map +1 -1
  164. package/dist/rendering/RendererPostprocessPlan.js +8 -1
  165. package/dist/rendering/RendererPostprocessPlan.js.map +1 -1
  166. package/dist/rendering/WebGL2Device.d.ts +3 -0
  167. package/dist/rendering/WebGL2Device.d.ts.map +1 -1
  168. package/dist/rendering/WebGL2Device.js +34 -4
  169. package/dist/rendering/WebGL2Device.js.map +1 -1
  170. package/dist/rendering/forward/Lighting.d.ts +32 -0
  171. package/dist/rendering/forward/Lighting.d.ts.map +1 -1
  172. package/dist/rendering/forward/Lighting.js +103 -3
  173. package/dist/rendering/forward/Lighting.js.map +1 -1
  174. package/dist/rendering/index.d.ts +2 -2
  175. package/dist/rendering/index.d.ts.map +1 -1
  176. package/dist/rendering/index.js +1 -1
  177. package/dist/rendering/index.js.map +1 -1
  178. package/dist/rendering/post/v2Stages.d.ts.map +1 -1
  179. package/dist/rendering/post/v2Stages.js +2 -0
  180. package/dist/rendering/post/v2Stages.js.map +1 -1
  181. package/dist/rendering/quality/DirectPath.d.ts +13 -0
  182. package/dist/rendering/quality/DirectPath.d.ts.map +1 -1
  183. package/dist/rendering/quality/DirectPath.js +33 -1
  184. package/dist/rendering/quality/DirectPath.js.map +1 -1
  185. package/dist/rendering/renderer/Background.d.ts.map +1 -1
  186. package/dist/rendering/renderer/Background.js +31 -2
  187. package/dist/rendering/renderer/Background.js.map +1 -1
  188. package/dist/rendering/renderer/InstanceFrustumCull.d.ts +5 -3
  189. package/dist/rendering/renderer/InstanceFrustumCull.d.ts.map +1 -1
  190. package/dist/rendering/renderer/InstanceFrustumCull.js +17 -6
  191. package/dist/rendering/renderer/InstanceFrustumCull.js.map +1 -1
  192. package/dist/rendering/shaders/chunks/lighting_ibl.glsl.d.ts +6 -1
  193. package/dist/rendering/shaders/chunks/lighting_ibl.glsl.d.ts.map +1 -1
  194. package/dist/rendering/shaders/chunks/lighting_ibl.glsl.js +8 -2
  195. package/dist/rendering/shaders/chunks/lighting_ibl.glsl.js.map +1 -1
  196. package/dist/rendering/shadows/CascadeUse.d.ts +3 -0
  197. package/dist/rendering/shadows/CascadeUse.d.ts.map +1 -1
  198. package/dist/rendering/shadows/CascadeUse.js +16 -1
  199. package/dist/rendering/shadows/CascadeUse.js.map +1 -1
  200. package/dist/rendering/shadows/Prd02ShadowsContributor.d.ts +4 -0
  201. package/dist/rendering/shadows/Prd02ShadowsContributor.d.ts.map +1 -1
  202. package/dist/rendering/shadows/Prd02ShadowsContributor.js +3 -1
  203. package/dist/rendering/shadows/Prd02ShadowsContributor.js.map +1 -1
  204. package/dist/rendering/shadows/shadowLegacy.d.ts +3 -2
  205. package/dist/rendering/shadows/shadowLegacy.d.ts.map +1 -1
  206. package/dist/rendering/shadows/shadowLegacy.js.map +1 -1
  207. package/dist/rendering/webgl2/ContextLifecycle.d.ts.map +1 -1
  208. package/dist/rendering/webgl2/ContextLifecycle.js +14 -2
  209. package/dist/rendering/webgl2/ContextLifecycle.js.map +1 -1
  210. package/dist/rendering/webgl2/MultiDraw.d.ts +2 -0
  211. package/dist/rendering/webgl2/MultiDraw.d.ts.map +1 -1
  212. package/dist/rendering/webgl2/MultiDraw.js +24 -6
  213. package/dist/rendering/webgl2/MultiDraw.js.map +1 -1
  214. package/package.json +25 -25
  215. package/templates/cinematic-scene/package.json +2 -2
  216. package/templates/mini-game/package.json +2 -2
  217. package/templates/product-viewer/package.json +2 -2
  218. package/templates/production-asset-inspector/package.json +1 -1
  219. package/templates/production-material-studio/package.json +1 -1
  220. package/templates/production-product-configurator/package.json +1 -1
  221. package/templates/production-product-viewer/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"actorAnimationHandle.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/actorAnimationHandle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actorAnimationHandle.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/actorAnimationHandle.ts"],"names":[],"mappings":"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"}
@@ -20,4 +20,25 @@ export declare function authoredBackingResize(resize: boolean, canvas: {
20
20
  readonly width: number;
21
21
  readonly height: number;
22
22
  } | null;
23
+ /** Axes on which the page's own CSS sizes the canvas smaller than its parent; the engine fits those axes to the canvas's box. */
24
+ export interface CanvasOwnSizedAxes {
25
+ width: boolean;
26
+ height: boolean;
27
+ }
28
+ /** Frame-loop resizes call this after writing the canvas's inline size, so a later mount can tell it from the page's. */
29
+ export declare function noteEngineCanvasSize(canvas: HTMLCanvasElement): void;
30
+ /** What `configureCanvas` decided for this canvas (both false when it never ran or could not measure). Live: resizes may set an axis. */
31
+ export declare function ownSizedCanvasAxes(canvas: HTMLCanvasElement): CanvasOwnSizedAxes;
32
+ /**
33
+ * At a resize, checks the parent-fit axes again without touching the backing store, because a media query (a phone turned to
34
+ * portrait) can start sizing the canvas after the mount. With the engine's inline size removed, an axis whose content box
35
+ * is neither the backing store's size (an `auto` size) nor the size its ratio gives (an aspect-ratio-only size), and is
36
+ * smaller than the parent, is now sized by the page: it switches to the canvas's own box and keeps no inline size.
37
+ */
38
+ export declare function refreshOwnSizedAxes(canvas: HTMLCanvasElement): CanvasOwnSizedAxes;
39
+ /** The canvas's CSS content box (its bounding box minus padding and border). Undefined without a layout engine. */
40
+ export declare function canvasContentBox(canvas: HTMLCanvasElement): {
41
+ readonly width: number;
42
+ readonly height: number;
43
+ } | undefined;
23
44
  //# sourceMappingURL=canvas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/canvas.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,GAAG,SAAS,CA0BlF;AAoDD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,OAAO,GAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAgC,GACzF,IAAI,CAeN;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC3D,MAAM,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAK5D"}
1
+ {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/canvas.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,GAAG,SAAS,CA0BlF;AAoDD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,OAAO,GAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAgC,GACzF,IAAI,CAiCN;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC3D,MAAM,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAK5D;AAED,iIAAiI;AACjI,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAOD,yHAAyH;AACzH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAGpE;AAED,yIAAyI;AACzI,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,kBAAkB,CAOhF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,kBAAkB,CAkBjF;AAED,mHAAmH;AACnH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAS3H"}
@@ -70,18 +70,42 @@ function applyDefaultCanvasMountLayout(target) {
70
70
  target.style.overflow ||= "hidden";
71
71
  }
72
72
  export function configureCanvas(canvas, pixelRatio, resize, minimum = { width: 320, height: 220 }) {
73
- canvas.style.width ||= "100%";
74
- canvas.style.height ||= "100%";
73
+ // A second app on the same canvas starts from the page's own inline size, not the pixel size the previous app wrote.
74
+ const previous = engineInlineSize.get(canvas);
75
+ if (previous) {
76
+ if (canvas.style.width === previous.written.width)
77
+ canvas.style.width = previous.authored.width;
78
+ if (canvas.style.height === previous.written.height)
79
+ canvas.style.height = previous.authored.height;
80
+ }
81
+ const authored = { width: canvas.style.width, height: canvas.style.height };
82
+ // Before the probe: it assigns the backing store, which adds width/height attributes.
83
+ const keepAuthoredSize = !resize && hasAuthoredBackingStore(canvas);
84
+ const own = probeCssSizedAxes(canvas);
85
+ canvasOwnSizedAxes.set(canvas, own);
86
+ if (!own.width)
87
+ canvas.style.width ||= "100%";
88
+ if (!own.height)
89
+ canvas.style.height ||= "100%";
75
90
  canvas.style.display ||= "block";
76
91
  const rect = canvas.getBoundingClientRect();
92
+ const ownBox = own.width || own.height ? canvasContentBox(canvas) : undefined;
77
93
  const parent = canvas.parentElement;
78
- const cssWidth = rect.width || canvas.clientWidth || parent?.clientWidth || (typeof window !== "undefined" ? window.innerWidth : 960) || 960;
79
- const cssHeight = rect.height || canvas.clientHeight || parent?.clientHeight || (typeof window !== "undefined" ? window.innerHeight : 540) || 540;
80
- canvas.style.width = `${cssWidth}px`;
81
- canvas.style.height = `${cssHeight}px`;
94
+ const cssWidth = (own.width ? ownBox?.width : undefined) || rect.width || canvas.clientWidth || parent?.clientWidth || (typeof window !== "undefined" ? window.innerWidth : 960) || 960;
95
+ const cssHeight = (own.height ? ownBox?.height : undefined) || rect.height || canvas.clientHeight || parent?.clientHeight || (typeof window !== "undefined" ? window.innerHeight : 540) || 540;
96
+ // With `resize: false` nothing re-measures the canvas later, so a pixel size written here stays forever: a page that grows
97
+ // after load (1280x720 to 1440x900) kept a 1280x720 canvas with black bands beside it, even when the game's own resize
98
+ // listener resized the backing store (g22 handoff, Saltwind Highway). Keep the percentage size so the canvas follows the
99
+ // page's layout; the author sizes the backing store and the frame loop forwards it (`authoredBackingResize`).
100
+ if (resize) {
101
+ if (!own.width)
102
+ canvas.style.width = `${cssWidth}px`;
103
+ if (!own.height)
104
+ canvas.style.height = `${cssHeight}px`;
105
+ }
106
+ engineInlineSize.set(canvas, { authored, written: { width: canvas.style.width, height: canvas.style.height } });
82
107
  const width = Math.max(minimum.width, Math.round(cssWidth * pixelRatio));
83
108
  const height = Math.max(minimum.height, Math.round(cssHeight * pixelRatio));
84
- const keepAuthoredSize = !resize && hasAuthoredBackingStore(canvas);
85
109
  canvas.width = keepAuthoredSize ? canvas.width : width;
86
110
  canvas.height = keepAuthoredSize ? canvas.height : height;
87
111
  }
@@ -100,4 +124,98 @@ export function authoredBackingResize(resize, canvas, synced) {
100
124
  return null;
101
125
  return { width: canvas.width, height: canvas.height };
102
126
  }
127
+ const canvasOwnSizedAxes = new WeakMap();
128
+ /** The page's inline size before the engine wrote one, and the last size the engine wrote. */
129
+ const engineInlineSize = new WeakMap();
130
+ /** Frame-loop resizes call this after writing the canvas's inline size, so a later mount can tell it from the page's. */
131
+ export function noteEngineCanvasSize(canvas) {
132
+ const entry = engineInlineSize.get(canvas);
133
+ if (entry)
134
+ entry.written = { width: canvas.style.width, height: canvas.style.height };
135
+ }
136
+ /** What `configureCanvas` decided for this canvas (both false when it never ran or could not measure). Live: resizes may set an axis. */
137
+ export function ownSizedCanvasAxes(canvas) {
138
+ let axes = canvasOwnSizedAxes.get(canvas);
139
+ if (!axes) {
140
+ axes = { width: false, height: false };
141
+ canvasOwnSizedAxes.set(canvas, axes);
142
+ }
143
+ return axes;
144
+ }
145
+ /**
146
+ * At a resize, checks the parent-fit axes again without touching the backing store, because a media query (a phone turned to
147
+ * portrait) can start sizing the canvas after the mount. With the engine's inline size removed, an axis whose content box
148
+ * is neither the backing store's size (an `auto` size) nor the size its ratio gives (an aspect-ratio-only size), and is
149
+ * smaller than the parent, is now sized by the page: it switches to the canvas's own box and keeps no inline size.
150
+ */
151
+ export function refreshOwnSizedAxes(canvas) {
152
+ const axes = ownSizedCanvasAxes(canvas);
153
+ if (axes.width && axes.height)
154
+ return axes;
155
+ const parent = canvas.parentElement;
156
+ if (!parent || typeof parent.getBoundingClientRect !== "function" || typeof getComputedStyle !== "function")
157
+ return axes;
158
+ const inline = { width: canvas.style.width, height: canvas.style.height };
159
+ if (!axes.width)
160
+ canvas.style.width = "";
161
+ if (!axes.height)
162
+ canvas.style.height = "";
163
+ const box = canvasContentBox(canvas);
164
+ const parentRect = parent.getBoundingClientRect();
165
+ const ratio = canvas.width > 0 ? canvas.height / canvas.width : 0;
166
+ const pageSized = (size, intrinsic, fromRatio, parentSize) => size > 0 && Math.abs(size - intrinsic) > 0.5 && Math.abs(size - fromRatio) > 0.5 && size < parentSize - 0.5;
167
+ if (box && !axes.width && pageSized(box.width, canvas.width, ratio > 0 ? box.height / ratio : -1, parentRect.width))
168
+ axes.width = true;
169
+ if (box && !axes.height && pageSized(box.height, canvas.height, box.width * ratio, parentRect.height))
170
+ axes.height = true;
171
+ if (!axes.width)
172
+ canvas.style.width = inline.width;
173
+ if (!axes.height)
174
+ canvas.style.height = inline.height;
175
+ return axes;
176
+ }
177
+ /** The canvas's CSS content box (its bounding box minus padding and border). Undefined without a layout engine. */
178
+ export function canvasContentBox(canvas) {
179
+ if (typeof getComputedStyle !== "function" || typeof canvas.getBoundingClientRect !== "function")
180
+ return undefined;
181
+ const rect = canvas.getBoundingClientRect();
182
+ const style = getComputedStyle(canvas);
183
+ const px = (value) => parseFloat(value) || 0;
184
+ return {
185
+ width: Math.max(0, rect.width - px(style.paddingLeft) - px(style.paddingRight) - px(style.borderLeftWidth) - px(style.borderRightWidth)),
186
+ height: Math.max(0, rect.height - px(style.paddingTop) - px(style.paddingBottom) - px(style.borderTopWidth) - px(style.borderBottomWidth))
187
+ };
188
+ }
189
+ /**
190
+ * top-tennis C2: a page that styles the canvas smaller than its parent (portrait score and control bands:
191
+ * `height: calc(100% - bands)` plus a top margin) had that size replaced by the parent's full height, which pushed the
192
+ * bottom of the canvas off screen. An axis counts as sized by the page's CSS when its content box does not move when the
193
+ * backing store changes (an `auto` CSS size follows the width/height attributes, and an aspect-ratio-only size follows
194
+ * their ratio) and the box is smaller than the parent's. Measured once at mount, before the engine writes any size; the
195
+ * probe changes the backing store, which the mount assigns again right after. Without a layout engine nothing is
196
+ * measured and both axes keep the parent fit.
197
+ */
198
+ function probeCssSizedAxes(canvas) {
199
+ const none = { width: false, height: false };
200
+ const parent = canvas.parentElement;
201
+ if (!parent || typeof parent.getBoundingClientRect !== "function")
202
+ return none;
203
+ const before = canvasContentBox(canvas);
204
+ if (!before || before.width <= 0 || before.height <= 0)
205
+ return none;
206
+ const backing = { width: canvas.width, height: canvas.height };
207
+ canvas.width = backing.width + 64;
208
+ canvas.height = backing.height + 48;
209
+ const after = canvasContentBox(canvas);
210
+ canvas.width = backing.width;
211
+ canvas.height = backing.height;
212
+ if (!after)
213
+ return none;
214
+ const parentRect = parent.getBoundingClientRect();
215
+ const fixedAxis = (a, b, parentSize) => Math.abs(a - b) <= 0.5 && a > 0 && a < parentSize - 0.5;
216
+ return {
217
+ width: fixedAxis(before.width, after.width, parentRect.width),
218
+ height: fixedAxis(before.height, after.height, parentRect.height)
219
+ };
220
+ }
103
221
  //# sourceMappingURL=canvas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/canvas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/canvas.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAG/G,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,UAAU,aAAa,CAAC,MAAqB;IACjD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,MAAM,IAAI,gBAAgB,CACxB,gBAAgB,EAChB,wCAAwC,MAAM,gHAAgH,CAC/J,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,gBAAgB,CACxB,gBAAgB,EAChB,wCAAwC,MAAM,qCAAqC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,0CAA0C,CACtJ,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,YAAY,iBAAiB;YAAE,OAAO,OAAO,CAAC;QACzD,IAAI,OAAO,YAAY,WAAW;YAAE,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,IAAI,gBAAgB,CACxB,gBAAgB,EAChB,kBAAkB,MAAM,6EAA6E,CACtG,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,YAAY,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,YAAY,CAAC,MAAmB;IACvC,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC;IACrC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAAC,MAAyB;IACxD,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACzD,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/E,OAAO,MAAM,CAAC,KAAK,KAAK,4BAA4B,IAAI,MAAM,CAAC,MAAM,KAAK,6BAA6B,CAAC;AAC1G,CAAC;AAED,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEzC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAE1C,SAAS,6BAA6B,CAAC,MAAmB;IACxD,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO;IAC1C,IAAI,MAAM,CAAC,aAAa,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,kCAAkC,CAAC,EAAE,CAAC;QACvG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC;QAChD,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;QACjD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAC5C,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC;IAC9B,kFAAkF;IAClF,sFAAsF;IACtF,+EAA+E;IAC/E,iFAAiF;IACjF,gFAAgF;IAChF,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,KAAK,QAAQ,CAAC,IAAI,CAAC;IAC9D,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IACtD,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,WAAW,CAAC;IACvC,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAAyB,EACzB,UAAkB,EAClB,MAAe,EACf,UAA+D,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAE1F,qHAAqH;IACrH,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,OAAO,CAAC,KAAK;YAAE,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChG,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;IACtG,CAAC;IACD,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAC5E,sFAAsF;IACtF,MAAM,gBAAgB,GAAG,CAAC,MAAM,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACtC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,KAAK;QAAE,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC;IAC9C,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;IACpC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,EAAE,WAAW,IAAI,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IACxL,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,EAAE,YAAY,IAAI,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IAC/L,2HAA2H;IAC3H,uHAAuH;IACvH,yHAAyH;IACzH,8GAA8G;IAC9G,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,GAAG,CAAC,KAAK;YAAE,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,QAAQ,IAAI,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC;IAC1D,CAAC;IACD,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC;IAC5E,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACvD,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAe,EACf,MAA2D,EAC3D,MAA2D;IAE3D,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAClF,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AACxD,CAAC;AAQD,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAyC,CAAC;AAEhF,8FAA8F;AAC9F,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAA6E,CAAC;AAElH,yHAAyH;AACzH,MAAM,UAAU,oBAAoB,CAAC,MAAyB;IAC5D,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,KAAK;QAAE,KAAK,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;AACxF,CAAC;AAED,yIAAyI;AACzI,MAAM,UAAU,kBAAkB,CAAC,MAAyB;IAC1D,IAAI,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACvC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAyB;IAC3D,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;IACpC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU,IAAI,OAAO,gBAAgB,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACzH,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAC1E,IAAI,CAAC,IAAI,CAAC,KAAK;QAAE,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;IACzC,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;IAC3C,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,SAAiB,EAAE,SAAiB,EAAE,UAAkB,EAAW,EAAE,CACpG,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,UAAU,GAAG,GAAG,CAAC;IAC9G,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACvI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC;QAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IAC1H,IAAI,CAAC,IAAI,CAAC,KAAK;QAAE,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IACnD,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,gBAAgB,CAAC,MAAyB;IACxD,IAAI,OAAO,gBAAgB,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IACnH,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACxI,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;KAC3I,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,MAAyB;IAClD,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;IACpC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAC/E,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpE,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC/D,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;IAClC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAClD,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,UAAkB,EAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,GAAG,CAAC;IACjI,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;QAC7D,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;KAClE,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createAuraApp.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/createAuraApp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAe,oBAAoB,EAAgH,MAAM,mBAAmB,CAAC;AAiDjN,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CA63B3F"}
1
+ {"version":3,"file":"createAuraApp.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/createAuraApp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAe,oBAAoB,EAAgH,MAAM,mBAAmB,CAAC;AAmDjN,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CA+8B3F"}
@@ -3,7 +3,7 @@ import { computeRuntimeAlpha } from "./frameAlpha.js";
3
3
  import { declaresWebGLContent, productionRenderErrorMessage } from "../compiler/observations.js";
4
4
  import { createDiagnosticsOverlay, renderDiagnosticPreviewToCanvas, shouldRenderOverlay } from "../public/devtools.js";
5
5
  import { createInitialDiagnostics, snapshotDiagnostics, validateSceneAssets } from "../diagnostics.js";
6
- import { createRuntimeScenePhysics, eulerToQuat, physics, quatToEuler, resolveNodePhysicsShape } from "../nodes/physics.js";
6
+ import { createRuntimeScenePhysics, nodeRotationQuaternion, physics, resolveNodePhysicsShape, writeNodeRotationFromBody } from "../nodes/physics.js";
7
7
  import { colorToLinearRgba } from "../colorUtils.js";
8
8
  import { scene } from "../nodes/scene.js";
9
9
  import { createComputeSurface } from "../nodes/compute.js";
@@ -17,7 +17,8 @@ import { appTierMaxPixelRatio, currentDevicePixelRatio, minimumBackingSize, reso
17
17
  import { resolveMountQuality } from "../compiler/renderer.js";
18
18
  import { AuraRuntimeError } from "./errors.js";
19
19
  import { AuraMigrationError } from "../compiler/errors.js";
20
- import { startProductionRender } from "./frameLoop.js";
20
+ import { createFrameRateMeter, startProductionRender } from "./frameLoop.js";
21
+ import { isDirectRenderPath, vetoDirectPath } from "./renderPath.js";
21
22
  import { registerAuraApp, unregisterAuraApp } from "./liveApps.js";
22
23
  import { markRouteError, markRouteReady } from "./routeState.js";
23
24
  import { AURA_APP_CANVAS, captureAuraScreenshot } from "./screenshot.js";
@@ -27,7 +28,7 @@ import { createGameInput } from "../GameRuntime.js";
27
28
  import { createPhysicsRuntime } from "../PhysicsRuntime.js";
28
29
  import { applyRootParticleQuality, hasRootRenderableContent, initializeRootPerformanceQuality, readRootDiagnosticSnapshot, setRootPerformanceQuality, supportsRootParticleQuality, validateRootPerformanceQuality } from "../RootRuntimeSupport.js";
29
30
  import { PhysicsWorld } from "../../../physics/world.js";
30
- import { normalizeCreateAppRendererOptions } from "./rendererOptions.js";
31
+ import { normalizeCreateAppRendererOptions, rendererQualityWarnings } from "./rendererOptions.js";
31
32
  import { qrFlagsWithAnimationMixer, resolveQrFlags } from "../../contracts/flags.js";
32
33
  import { setTypedGLBActorQrFlags } from "../../production-runtime/actor/extensions.js";
33
34
  import { setQrAnimationFlags } from "./actorAnimationHandle.js";
@@ -37,7 +38,8 @@ import { clearShaderFailures, setShaderFailureMode } from "../../../rendering/in
37
38
  import { createAuraRuntimeNodeRegistry } from "./runtimeNodes.js";
38
39
  import { setPrd01ModelMatrixCache } from "../compiler/renderInput.js";
39
40
  import { createModelMatrixCache } from "../sceneGraph.js";
40
- import { flattenAuraSceneSnapshot, modelMatrixFor } from "../compiler/sceneGraph.js";
41
+ import { flattenAuraSceneNodes, modelMatrixFor } from "../compiler/sceneGraph.js";
42
+ import { flattenTaggingMountedRoots } from "../compiler/mountedRoots.js";
41
43
  import { setPrd01ColorParsing } from "../compiler/color.js";
42
44
  import { collectGeneratedCodeWarnings } from "../looks/generatedCodeWarnings.js";
43
45
  import { material } from "../nodes/material.js";
@@ -70,7 +72,15 @@ export function createAuraApp(target, options) {
70
72
  // payload.extra.mountTiming (see markTiming in ./platform).
71
73
  markTiming("a3d:mount:create-app-start");
72
74
  let snapshot = normalizeSceneSnapshot(options.scene);
73
- let renderSnapshot = flattenSceneSnapshot(snapshot);
75
+ /*
76
+ * One top-level node at a time, so the compiled scene can find the children of a mounted group or look by the group's
77
+ * runtime id (`app.nodes.remove`). The concatenation is the same node list as flattening the whole list at once.
78
+ */
79
+ const flattenForRender = (scene, hierarchical) => ({
80
+ ...scene,
81
+ nodes: flattenTaggingMountedRoots(scene.nodes, hierarchical ? (nodes) => flattenAuraSceneNodes(nodes, qrFlags) : (nodes) => flattenSceneSnapshot({ ...scene, nodes: [...nodes] }).nodes)
82
+ });
83
+ let renderSnapshot = flattenForRender(snapshot, false);
74
84
  const rendererSelection = normalizeCreateAppRendererOptions(options.renderer);
75
85
  // PR 0 seams (CONTRACTS.md §3.2): flag resolution, C-27 quality-tier resolve, C-38
76
86
  // app-extension mount and C-31 diagnostics sections are fixed call sites owned by PRD 15.
@@ -100,7 +110,7 @@ export function createAuraApp(target, options) {
100
110
  // matrices) and the snapshot flattens hierarchically. Flag-off: unchanged.
101
111
  setPrd01ModelMatrixCache(qrFlags.on("A3D_QR_CORE") ? createModelMatrixCache(modelMatrixFor(qrFlags)) : null);
102
112
  if (qrFlags.on("A3D_QR_CORE"))
103
- renderSnapshot = flattenAuraSceneSnapshot(snapshot, qrFlags);
113
+ renderSnapshot = flattenForRender(snapshot, true);
104
114
  // 01-S5 (C-06): colorUtils helpers delegate to parseAuraColor under the flag.
105
115
  setPrd01ColorParsing(qrFlags.on("A3D_QR_CORE") ? { strict: options.strict ?? qrFlags.on("A3D_QR_STRICT") } : null);
106
116
  // Custom-shader compile/link failures: a fresh app starts with a clean failure list; strict (or
@@ -202,6 +212,30 @@ export function createAuraApp(target, options) {
202
212
  */
203
213
  const deviceLostListeners = new Map();
204
214
  const deviceRestoredListeners = new Map();
215
+ /*
216
+ * top-tennis C8: a restored context comes back with every GL object of the lost one gone, including the post chain's programs
217
+ * and targets, so frames stay black until something mounts the renderer again. Apps that remount in their own
218
+ * `onDeviceRestored` handler (setScene) keep doing so; for every other app the engine remounts the current scene, with
219
+ * nodes added at runtime, once those handlers have run. Runtime node handles, physics and the clock are kept.
220
+ */
221
+ let restoreRemountUnsubscribe;
222
+ const attachRestoreRemount = (controller) => {
223
+ restoreRemountUnsubscribe?.();
224
+ const attachedRevision = mountRevision;
225
+ restoreRemountUnsubscribe = controller.onDeviceRestored?.(() => {
226
+ if (disposed || attachedRevision !== mountRevision || productionController !== controller)
227
+ return;
228
+ try {
229
+ const current = runtimeNodes.sceneWithRuntimeAdditions() ?? snapshot;
230
+ renderSnapshot = flattenForRender(current, qrFlags.on("A3D_QR_CORE"));
231
+ mountCurrentScene();
232
+ diagnosticsState.warnings.push("DEVICE_RESTORED_REMOUNT: the WebGL context was restored; the scene was mounted again so it renders.");
233
+ }
234
+ catch (error) {
235
+ diagnosticsState.errors.push(`DEVICE_RESTORE_REMOUNT_FAILED: ${error instanceof Error ? error.message : String(error)}`);
236
+ }
237
+ });
238
+ };
205
239
  const attachDeviceListeners = (controller) => {
206
240
  for (const [listener, unsubscribe] of deviceLostListeners) {
207
241
  unsubscribe?.();
@@ -211,8 +245,12 @@ export function createAuraApp(target, options) {
211
245
  unsubscribe?.();
212
246
  deviceRestoredListeners.set(listener, controller.onDeviceRestored?.(listener));
213
247
  }
248
+ // Last, so the app's own restored handlers (which may remount through setScene) run first.
249
+ attachRestoreRemount(controller);
214
250
  };
215
251
  let lastTime = 0;
252
+ // ENG-FPS: the canvas preview loop reports a 1 s windowed rate, not 1000 / (last delta).
253
+ let canvasFrameRate = createFrameRateMeter();
216
254
  let mountRevision = 0;
217
255
  let canvasRuntimePhysics;
218
256
  const runtimeNodes = createAuraRuntimeNodeRegistry(renderSnapshot);
@@ -259,14 +297,14 @@ export function createAuraApp(target, options) {
259
297
  const world = appPhysicsWorldInstance;
260
298
  if (world === undefined)
261
299
  return;
262
- for (const [bodyId, runtimeId] of appPhysicsNodeBindings) {
300
+ for (const [bodyId, binding] of appPhysicsNodeBindings) {
263
301
  const body = world.getBody(bodyId);
264
- const handle = runtimeNodes.get(runtimeId);
302
+ const handle = runtimeNodes.get(binding.runtimeId);
265
303
  if (body === undefined || handle === undefined || body.sleeping)
266
304
  continue;
267
- const euler = quatToEuler(body.rotation);
268
305
  handle.setPosition(body.position[0], body.position[1], body.position[2]);
269
- handle.setRotation(euler[0], euler[1], euler[2]);
306
+ // Same convention the node was seeded with (anim-phys-01): quaternion or `rotationOrder`.
307
+ writeNodeRotationFromBody(binding.node, body.rotation, (euler) => handle.setRotation(euler[0], euler[1], euler[2]));
270
308
  }
271
309
  };
272
310
  /** Lazy `app.physics`. Identity is stable: the same runtime is returned on every access. */
@@ -310,7 +348,7 @@ export function createAuraApp(target, options) {
310
348
  const body = world.createRigidBody({
311
349
  type: spec.type ?? "dynamic",
312
350
  position: node.position ?? [0, 0, 0],
313
- rotation: eulerToQuat(node.rotation ?? [0, 0, 0]),
351
+ rotation: nodeRotationQuaternion(node),
314
352
  ...(spec.mass === undefined ? {} : { mass: spec.mass }),
315
353
  ...(spec.friction === undefined ? {} : { friction: spec.friction }),
316
354
  ...(spec.restitution === undefined ? {} : { restitution: spec.restitution })
@@ -324,7 +362,7 @@ export function createAuraApp(target, options) {
324
362
  appPhysicsNodeNames.set(body.id, node.name);
325
363
  const runtimeId = node.runtime?.id;
326
364
  if (options.physics?.bindNodes === true && runtimeId !== undefined && (spec.type ?? "dynamic") === "dynamic") {
327
- appPhysicsNodeBindings.set(body.id, runtimeId);
365
+ appPhysicsNodeBindings.set(body.id, { runtimeId, node });
328
366
  }
329
367
  }
330
368
  };
@@ -380,7 +418,7 @@ export function createAuraApp(target, options) {
380
418
  diagnosticsState.assets = [];
381
419
  diagnosticsState.evidence = fresh.evidence;
382
420
  diagnosticsState.renderer = fresh.renderer;
383
- diagnosticsState.warnings = [...fresh.warnings];
421
+ diagnosticsState.warnings = [...fresh.warnings, ...rendererQualityWarnings(options.renderer)];
384
422
  diagnosticsState.errors = [];
385
423
  validateSceneAssets(renderSnapshot, diagnosticsState.assets);
386
424
  diagnosticsState.warnings.push(...collectGeneratedCodeWarnings(renderSnapshot, qrFlags, {
@@ -394,11 +432,16 @@ export function createAuraApp(target, options) {
394
432
  lastTime = time;
395
433
  const dt = delta / 1000;
396
434
  if (!runtimePaused) {
435
+ const revision = mountRevision;
397
436
  runRuntimeFrame(dt, "raf");
437
+ // A callback that called `setScene()` (or `dispose()`) already mounted the next scene and started its loop.
438
+ if (disposed || revision !== mountRevision)
439
+ return;
398
440
  canvasRuntimePhysics?.step(dt);
399
441
  }
400
442
  diagnosticsState.evidence = collectAuraSceneEvidence(renderSnapshot);
401
- diagnosticsState.fps = Math.round(1000 / delta);
443
+ canvasFrameRate.sample(time);
444
+ diagnosticsState.fps = canvasFrameRate.fps();
402
445
  /*
403
446
  * WS-2.5 — the live loop must respect the same rule as `step()`.
404
447
  *
@@ -425,6 +468,7 @@ export function createAuraApp(target, options) {
425
468
  productionController?.dispose();
426
469
  productionController = undefined;
427
470
  lastTime = 0;
471
+ canvasFrameRate = createFrameRateMeter();
428
472
  const shouldUseProductionRenderer = shouldUseProductionRendererForCurrentScene();
429
473
  /*
430
474
  * WS-2.5 — a scene with renderable content must never fall to the diagnostic 2D path.
@@ -639,7 +683,7 @@ export function createAuraApp(target, options) {
639
683
  setScene(nextScene) {
640
684
  assertMutableFrame();
641
685
  snapshot = normalizeSceneSnapshot(nextScene);
642
- renderSnapshot = flattenAuraSceneSnapshot(snapshot, qrFlags);
686
+ renderSnapshot = flattenForRender(snapshot, true);
643
687
  runtimeNodes.reset(renderSnapshot);
644
688
  // Drop bodies from the previous scene before registering the new ones, so swapping
645
689
  // scenes does not leave orphaned bodies colliding with the new level.
@@ -732,6 +776,9 @@ export function createAuraApp(target, options) {
732
776
  },
733
777
  onDeviceRestored(listener) {
734
778
  deviceRestoredListeners.set(listener, productionController?.onDeviceRestored?.(listener));
779
+ // Keep the engine's restore remount after the app's handlers.
780
+ if (productionController)
781
+ attachRestoreRemount(productionController);
735
782
  return () => {
736
783
  deviceRestoredListeners.get(listener)?.();
737
784
  deviceRestoredListeners.delete(listener);
@@ -872,6 +919,24 @@ export function createAuraApp(target, options) {
872
919
  if (productionController && !disposed && !productionController.busy?.()) {
873
920
  productionController.render(runtimeTime * 1000);
874
921
  }
922
+ else if (productionController && !disposed) {
923
+ /*
924
+ * RP-08: an async frame is in flight, so a synchronous render would throw and the buffer may be cleared or half drawn.
925
+ * Say so instead of returning a possibly blank image silently; `screenshotAsync()` waits for the frame.
926
+ */
927
+ const warning = "SCREENSHOT_DURING_ASYNC_FRAME: app.screenshot() was called while an async frame was in flight, so it could not re-render and may return a cleared canvas. Use await app.screenshotAsync().";
928
+ if (!diagnosticsState.warnings.includes(warning))
929
+ diagnosticsState.warnings.push(warning);
930
+ }
931
+ return captureAuraScreenshot(canvas);
932
+ },
933
+ async screenshotAsync() {
934
+ // RP-08: wait for pending stepAsync() calls and the controller's in-flight frame, then re-render and read in one task.
935
+ await asyncSteps;
936
+ await productionController?.whenIdle?.();
937
+ if (productionController && !disposed && !productionController.busy?.()) {
938
+ productionController.render(runtimeTime * 1000);
939
+ }
875
940
  return captureAuraScreenshot(canvas);
876
941
  },
877
942
  dispose() {
@@ -887,6 +952,8 @@ export function createAuraApp(target, options) {
887
952
  unsubscribe?.();
888
953
  deviceLostListeners.clear();
889
954
  deviceRestoredListeners.clear();
955
+ restoreRemountUnsubscribe?.();
956
+ restoreRemountUnsubscribe = undefined;
890
957
  if (animationHandle && typeof cancelAnimationFrame !== "undefined")
891
958
  cancelAnimationFrame(animationHandle);
892
959
  for (const controller of ownedInputControllers)
@@ -921,6 +988,32 @@ export function createAuraApp(target, options) {
921
988
  // assigned by the extension loop; cutCamera binds the controller's C-14
922
989
  // reset so the camera extension's onCut hook invalidates temporal history.
923
990
  const postSurface = app.post;
991
+ /*
992
+ * RP-03: a custom post pass needs the post chain, which the direct path does not have, and the path was chosen at mount
993
+ * (before any addPostPass call could run). On a direct-path canvas, keep the canvas off the direct path while the pass is
994
+ * registered and remount, carrying over nodes added at runtime, so the pass runs.
995
+ */
996
+ if (postSurface?.addPostPass && canvas) {
997
+ const addPostPass = postSurface.addPostPass.bind(postSurface);
998
+ postSurface.addPostPass = (pass) => {
999
+ const release = addPostPass(pass);
1000
+ const releaseVeto = vetoDirectPath(canvas, `custom post pass "${pass.name}"`);
1001
+ if (isDirectRenderPath(canvas) && !disposed) {
1002
+ const remount = () => {
1003
+ if (disposed)
1004
+ return;
1005
+ app.setScene(runtimeNodes.sceneWithRuntimeAdditions() ?? snapshot);
1006
+ // After setScene: the remount resets the warning list.
1007
+ diagnosticsState.warnings.push(`DIRECT_PATH_REMOUNT: custom post pass "${pass.name}" needs the HDR target; the scene was remounted so it runs.`);
1008
+ };
1009
+ if (pendingAsyncSteps > 0 || productionController?.busy?.())
1010
+ void asyncSteps.then(() => productionController?.whenIdle?.()).then(remount);
1011
+ else
1012
+ remount();
1013
+ }
1014
+ return () => { releaseVeto(); release(); };
1015
+ };
1016
+ }
924
1017
  app.addPostPass =
925
1018
  (p) => postSurface?.addPostPass?.(p) ?? (() => { });
926
1019
  app.setQualityTier =