@forgeax/engine-render 0.1.7 → 0.1.19

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 (683) hide show
  1. package/README.md +140 -2
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/assembly/backend-contract.d.ts +12 -0
  4. package/dist/assembly/backend-contract.d.ts.map +1 -1
  5. package/dist/assembly/factory.d.ts +12 -2
  6. package/dist/assembly/factory.d.ts.map +1 -1
  7. package/dist/assembly/host-contract.d.ts +4 -0
  8. package/dist/assembly/host-contract.d.ts.map +1 -1
  9. package/dist/assembly/renderer-frame-transaction.d.ts +39 -0
  10. package/dist/assembly/renderer-frame-transaction.d.ts.map +1 -0
  11. package/dist/assembly/renderer-inspection.d.ts +22 -0
  12. package/dist/assembly/renderer-inspection.d.ts.map +1 -0
  13. package/dist/assembly/renderer-lifecycle.d.ts +4 -0
  14. package/dist/assembly/renderer-lifecycle.d.ts.map +1 -0
  15. package/dist/authoring.mjs +4 -2
  16. package/dist/authoring.mjs.map +1 -1
  17. package/dist/chunk-FJ6P52EE.mjs +46 -0
  18. package/dist/chunk-FJ6P52EE.mjs.map +1 -0
  19. package/dist/chunk-IPXCABEP.mjs +73 -0
  20. package/dist/chunk-IPXCABEP.mjs.map +1 -0
  21. package/dist/chunk-JDWARUOI.mjs +44 -0
  22. package/dist/chunk-JDWARUOI.mjs.map +1 -0
  23. package/dist/{chunk-YEJIUW7D.mjs → chunk-LOSO4CTV.mjs} +296 -547
  24. package/dist/chunk-LOSO4CTV.mjs.map +1 -0
  25. package/dist/chunk-PCHBPYML.mjs +385 -0
  26. package/dist/chunk-PCHBPYML.mjs.map +1 -0
  27. package/dist/chunk-RJRUS55L.mjs +9323 -0
  28. package/dist/chunk-RJRUS55L.mjs.map +1 -0
  29. package/dist/chunk-RXZ3RGOU.mjs +53 -0
  30. package/dist/chunk-RXZ3RGOU.mjs.map +1 -0
  31. package/dist/{chunk-CQXZC5XI.mjs → chunk-VFPLTKCU.mjs} +79 -69
  32. package/dist/chunk-VFPLTKCU.mjs.map +1 -0
  33. package/dist/chunk-YTQ5C7YQ.mjs +584 -0
  34. package/dist/chunk-YTQ5C7YQ.mjs.map +1 -0
  35. package/dist/components/atmosphere.d.ts +9 -0
  36. package/dist/components/atmosphere.d.ts.map +1 -0
  37. package/dist/components/camera.d.ts +2 -1
  38. package/dist/components/camera.d.ts.map +1 -1
  39. package/dist/components/fog.d.ts +8 -0
  40. package/dist/components/fog.d.ts.map +1 -0
  41. package/dist/components/index.d.ts +3 -0
  42. package/dist/components/index.d.ts.map +1 -1
  43. package/dist/components/motion-blur.d.ts +7 -0
  44. package/dist/components/motion-blur.d.ts.map +1 -0
  45. package/dist/construct-renderer.d.ts +2 -2
  46. package/dist/construct-renderer.d.ts.map +1 -1
  47. package/dist/construct-renderer.mjs +10914 -16392
  48. package/dist/construct-renderer.mjs.map +1 -1
  49. package/dist/device/device-scope.d.ts +4 -0
  50. package/dist/device/device-scope.d.ts.map +1 -1
  51. package/dist/environment/frame.d.ts +60 -0
  52. package/dist/environment/frame.d.ts.map +1 -0
  53. package/dist/environment/generation.d.ts +21 -0
  54. package/dist/environment/generation.d.ts.map +1 -0
  55. package/dist/environment/graph.d.ts +4 -0
  56. package/dist/environment/graph.d.ts.map +1 -0
  57. package/dist/environment/inspection.d.ts +48 -0
  58. package/dist/environment/inspection.d.ts.map +1 -0
  59. package/dist/environment/lifecycle.d.ts +39 -0
  60. package/dist/environment/lifecycle.d.ts.map +1 -0
  61. package/dist/environment/signature.d.ts +25 -0
  62. package/dist/environment/signature.d.ts.map +1 -0
  63. package/dist/errors/render.d.ts +136 -1
  64. package/dist/errors/render.d.ts.map +1 -1
  65. package/dist/extract/camera.d.ts +5 -0
  66. package/dist/extract/camera.d.ts.map +1 -0
  67. package/dist/extract/environment.d.ts +74 -0
  68. package/dist/extract/environment.d.ts.map +1 -0
  69. package/dist/extract/visibility.d.ts +1 -1
  70. package/dist/extract/visibility.d.ts.map +1 -1
  71. package/dist/features/host.d.ts +9 -2
  72. package/dist/features/host.d.ts.map +1 -1
  73. package/dist/features/motion-blur/motion-blur-feature.d.ts +16 -0
  74. package/dist/features/motion-blur/motion-blur-feature.d.ts.map +1 -0
  75. package/dist/features/motion-blur/motion-blur-params.d.ts +25 -0
  76. package/dist/features/motion-blur/motion-blur-params.d.ts.map +1 -0
  77. package/dist/features/plan.d.ts +17 -2
  78. package/dist/features/plan.d.ts.map +1 -1
  79. package/dist/features/prepared-gpu-work.d.ts +3 -1
  80. package/dist/features/prepared-gpu-work.d.ts.map +1 -1
  81. package/dist/features/prepared-graphics.d.ts +2 -1
  82. package/dist/features/prepared-graphics.d.ts.map +1 -1
  83. package/dist/features/render-graph-raster.d.ts +2 -1
  84. package/dist/features/render-graph-raster.d.ts.map +1 -1
  85. package/dist/features/targets.d.ts +3 -0
  86. package/dist/features/targets.d.ts.map +1 -1
  87. package/dist/features/types.d.ts +12 -0
  88. package/dist/features/types.d.ts.map +1 -1
  89. package/dist/fullscreen-post-process-pass.d.ts +7 -1
  90. package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
  91. package/dist/gpu-scene.d.ts +2 -0
  92. package/dist/gpu-scene.d.ts.map +1 -1
  93. package/dist/ibl/skylight-bind-group.d.ts +5 -6
  94. package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
  95. package/dist/index.d.ts +17 -6
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.mjs +6 -4
  98. package/dist/index.mjs.map +1 -1
  99. package/dist/inspection-types.d.ts +43 -1
  100. package/dist/inspection-types.d.ts.map +1 -1
  101. package/dist/internal.d.ts +2 -0
  102. package/dist/internal.d.ts.map +1 -1
  103. package/dist/internal.mjs +2 -0
  104. package/dist/materials.d.ts +22 -0
  105. package/dist/materials.d.ts.map +1 -1
  106. package/dist/pbr-pipeline.d.ts +10 -6
  107. package/dist/pbr-pipeline.d.ts.map +1 -1
  108. package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
  109. package/dist/pipeline/standard-pipeline.d.ts +3 -0
  110. package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
  111. package/dist/pipeline/standard-post.d.ts +48 -0
  112. package/dist/pipeline/standard-post.d.ts.map +1 -0
  113. package/dist/pipeline/standard-profile.d.ts +3 -6
  114. package/dist/pipeline/standard-profile.d.ts.map +1 -1
  115. package/dist/pipeline-builder.d.ts +18 -0
  116. package/dist/pipeline-builder.d.ts.map +1 -1
  117. package/dist/pipeline-spec.d.ts.map +1 -1
  118. package/dist/plugin.d.ts.map +1 -1
  119. package/dist/record/frame-snapshot.d.ts +100 -5
  120. package/dist/record/frame-snapshot.d.ts.map +1 -1
  121. package/dist/record/frame-targets.d.ts.map +1 -1
  122. package/dist/record/frame.d.ts +4 -2
  123. package/dist/record/frame.d.ts.map +1 -1
  124. package/dist/record/main-pass-geometry.d.ts +11 -0
  125. package/dist/record/main-pass-geometry.d.ts.map +1 -1
  126. package/dist/record/main-pass-material.d.ts +8 -5
  127. package/dist/record/main-pass-material.d.ts.map +1 -1
  128. package/dist/record/main-pass-sprite-draws.d.ts +8 -1
  129. package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
  130. package/dist/record/main-pass.d.ts +2 -0
  131. package/dist/record/main-pass.d.ts.map +1 -1
  132. package/dist/record/mesh-ssbo.d.ts.map +1 -1
  133. package/dist/record/render-context.d.ts +76 -18
  134. package/dist/record/render-context.d.ts.map +1 -1
  135. package/dist/record/shadow-pass.d.ts.map +1 -1
  136. package/dist/record/skybox-post-pass.d.ts +1 -11
  137. package/dist/record/skybox-post-pass.d.ts.map +1 -1
  138. package/dist/record/typed-frame-graph.d.ts +26 -2
  139. package/dist/record/typed-frame-graph.d.ts.map +1 -1
  140. package/dist/record/view-ubo.d.ts +4 -1
  141. package/dist/record/view-ubo.d.ts.map +1 -1
  142. package/dist/render-contract.d.ts +92 -8
  143. package/dist/render-contract.d.ts.map +1 -1
  144. package/dist/render-graph-primitives.d.ts.map +1 -1
  145. package/dist/render-pipeline.d.ts +50 -6
  146. package/dist/render-pipeline.d.ts.map +1 -1
  147. package/dist/render-system-extract.d.ts +29 -5
  148. package/dist/render-system-extract.d.ts.map +1 -1
  149. package/dist/render-system.d.ts +23 -4
  150. package/dist/render-system.d.ts.map +1 -1
  151. package/dist/scene/render-scene.d.ts +36 -2
  152. package/dist/scene/render-scene.d.ts.map +1 -1
  153. package/dist/temporal/coverage.d.ts +42 -0
  154. package/dist/temporal/coverage.d.ts.map +1 -0
  155. package/dist/temporal/frame-coordinator.d.ts +99 -0
  156. package/dist/temporal/frame-coordinator.d.ts.map +1 -0
  157. package/dist/temporal/gpu.d.ts +39 -0
  158. package/dist/temporal/gpu.d.ts.map +1 -0
  159. package/dist/temporal/history.d.ts +37 -0
  160. package/dist/temporal/history.d.ts.map +1 -0
  161. package/dist/temporal/index.d.ts +7 -0
  162. package/dist/temporal/index.d.ts.map +1 -0
  163. package/dist/temporal/index.mjs +8 -0
  164. package/dist/temporal/index.mjs.map +1 -0
  165. package/dist/temporal/inspection.d.ts +36 -0
  166. package/dist/temporal/inspection.d.ts.map +1 -0
  167. package/dist/temporal/scene-data-catalog.d.ts +48 -0
  168. package/dist/temporal/scene-data-catalog.d.ts.map +1 -0
  169. package/dist/temporal/scene-data.d.ts +43 -0
  170. package/dist/temporal/scene-data.d.ts.map +1 -0
  171. package/dist/temporal/standard-scene-data.d.ts +61 -0
  172. package/dist/temporal/standard-scene-data.d.ts.map +1 -0
  173. package/dist/temporal/taa-history-resources.d.ts +22 -0
  174. package/dist/temporal/taa-history-resources.d.ts.map +1 -0
  175. package/dist/temporal/taa-history-store.d.ts +27 -0
  176. package/dist/temporal/taa-history-store.d.ts.map +1 -0
  177. package/dist/temporal/taa-resolve.d.ts +15 -0
  178. package/dist/temporal/taa-resolve.d.ts.map +1 -0
  179. package/dist/temporal/temporal-view.d.ts +40 -0
  180. package/dist/temporal/temporal-view.d.ts.map +1 -0
  181. package/dist/temporal/transaction.d.ts +9 -0
  182. package/dist/temporal/transaction.d.ts.map +1 -0
  183. package/dist/temporal/view.d.ts +56 -0
  184. package/dist/temporal/view.d.ts.map +1 -0
  185. package/dist/transmission/backdrop.d.ts +147 -0
  186. package/dist/transmission/backdrop.d.ts.map +1 -0
  187. package/dist/transmission/inspection.d.ts +57 -0
  188. package/dist/transmission/inspection.d.ts.map +1 -0
  189. package/dist/transmission/oracle.d.ts +42 -0
  190. package/dist/transmission/oracle.d.ts.map +1 -0
  191. package/dist/transmission/projection.d.ts +37 -0
  192. package/dist/transmission/projection.d.ts.map +1 -0
  193. package/dist/typed-render-graph-primitives.d.ts +25 -2
  194. package/dist/typed-render-graph-primitives.d.ts.map +1 -1
  195. package/package.json +24 -19
  196. package/src/__tests__/ai-user-cold-start.integration.test.ts +59 -0
  197. package/src/__tests__/ai-user-public-surface.test-d.ts +45 -0
  198. package/src/__tests__/bloom-exact-zero.unit.test.ts +202 -0
  199. package/src/__tests__/bloom-lifecycle.integration.test.ts +125 -0
  200. package/src/__tests__/construct-renderer-identity.unit.test.ts +4 -3
  201. package/src/__tests__/detached-inspection.integration.test.ts +177 -0
  202. package/src/__tests__/environment-fog-lanes.integration.test.ts +219 -0
  203. package/src/__tests__/environment-generation.integration.test.ts +141 -0
  204. package/src/__tests__/environment-selection.unit.test.ts +245 -0
  205. package/src/__tests__/factory-contract.integration.test.ts +1380 -9
  206. package/src/__tests__/frame-plan-contract.unit.test.ts +90 -0
  207. package/src/__tests__/fullscreen-feature-plan.unit.test.ts +7 -0
  208. package/src/__tests__/gpu-driven-production.integration.test.ts +74 -22
  209. package/src/__tests__/gpu-driven-view-graph.integration.test.ts +37 -0
  210. package/src/__tests__/gpu-scene.unit.test.ts +10 -0
  211. package/src/__tests__/injection-kind-owner.test-d.ts +2 -1
  212. package/src/__tests__/material-contract-inventory.unit.test.ts +62 -0
  213. package/src/__tests__/material-cooked-projection.unit.test.ts +18 -146
  214. package/src/__tests__/materials-transmission-validation.unit.test.ts +36 -0
  215. package/src/__tests__/morph-feature-plan.unit.test.ts +7 -0
  216. package/src/__tests__/motion-blur.pixel.integration.test.ts +121 -0
  217. package/src/__tests__/public-surface.test-d.ts +15 -1
  218. package/src/__tests__/render-error-code-owner.test-d.ts +9 -0
  219. package/src/__tests__/render-error-detail-ssot.test-d.ts +11 -2
  220. package/src/__tests__/render-error-exhaustive.test-d.ts +3 -0
  221. package/src/__tests__/render-feature-errors.unit.test.ts +33 -3
  222. package/src/__tests__/render-feature-gpu-work.integration.test.ts +44 -0
  223. package/src/__tests__/render-feature-plan.test-d.ts +22 -89
  224. package/src/__tests__/render-scene-projection.unit.test.ts +28 -0
  225. package/src/__tests__/render-temporal-environment-consumer.browser.test.ts +26 -0
  226. package/src/__tests__/render-temporal-environment-consumer.dawn.test.ts +21 -0
  227. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +395 -1
  228. package/src/__tests__/renderer-frame-transaction.integration.test.ts +405 -0
  229. package/src/__tests__/renderer-lifecycle.integration.test.ts +22 -0
  230. package/src/__tests__/scene-data-catalog.unit.test.ts +59 -0
  231. package/src/__tests__/scene-data-consumer.integration.test.ts +67 -0
  232. package/src/__tests__/scene-data-contract.test-d.ts +35 -0
  233. package/src/__tests__/scene-data-inspection.unit.test.ts +41 -0
  234. package/src/__tests__/scene-data-public-surface.test-d.ts +34 -0
  235. package/src/__tests__/shader-manifest-fixture.ts +111 -0
  236. package/src/__tests__/skinned-shadow-caster.test.ts +102 -0
  237. package/src/__tests__/standard-clustered-pipeline.unit.test.ts +24 -3
  238. package/src/__tests__/standard-pipeline.dawn.test.ts +15 -0
  239. package/src/__tests__/standard-pipeline.integration.test.ts +543 -1
  240. package/src/__tests__/standard-profile-oracle.unit.test.ts +10 -2
  241. package/src/__tests__/standard-temporal-producer.integration.test.ts +35 -0
  242. package/src/__tests__/surface-configuration.unit.test.ts +211 -12
  243. package/src/__tests__/taa-transaction.integration.test.ts +30 -0
  244. package/src/__tests__/temporal-admission.integration.test.ts +40 -0
  245. package/src/__tests__/temporal-coverage.unit.test.ts +35 -0
  246. package/src/__tests__/temporal-demand.unit.test.ts +44 -0
  247. package/src/__tests__/temporal-frame-coordinator.unit.test.ts +64 -0
  248. package/src/__tests__/temporal-graph-topology.unit.test.ts +51 -0
  249. package/src/__tests__/temporal-history-lifecycle.unit.test.ts +170 -0
  250. package/src/__tests__/temporal-performance.integration.test.ts +615 -0
  251. package/src/__tests__/temporal-reset-matrix.unit.test.ts +97 -0
  252. package/src/__tests__/temporal-transaction.integration.test.ts +60 -0
  253. package/src/__tests__/temporal-view.unit.test.ts +152 -0
  254. package/src/__tests__/transmission-prewarm.unit.test.ts +93 -0
  255. package/src/__tests__/typed-pipeline-topology.unit.test.ts +230 -1
  256. package/src/__tests__/urp-pipeline-targets.unit.test.ts +25 -1
  257. package/src/__tests__/urp-pipeline.unit.test.ts +4 -3
  258. package/src/__tests__/visibility-extract.integration.test.ts +27 -1
  259. package/src/__tests__/visibility-producer-matrix.integration.test.ts +10 -0
  260. package/src/assembly/backend-contract.ts +47 -1
  261. package/src/assembly/factory.ts +1224 -505
  262. package/src/assembly/host-contract.ts +4 -0
  263. package/src/assembly/renderer-frame-transaction.ts +75 -0
  264. package/src/assembly/renderer-inspection.ts +112 -0
  265. package/src/assembly/renderer-lifecycle.ts +6 -0
  266. package/src/components/__tests__/motion-blur.unit.test.ts +14 -0
  267. package/src/components/__tests__/schema-contract.unit.test.ts +6 -1
  268. package/src/components/atmosphere.ts +10 -0
  269. package/src/components/camera.ts +2 -1
  270. package/src/components/fog.ts +9 -0
  271. package/src/components/index.ts +3 -0
  272. package/src/components/motion-blur.ts +8 -0
  273. package/src/construct-renderer.ts +40 -3
  274. package/src/device/device-scope.ts +15 -1
  275. package/src/environment/frame.ts +185 -0
  276. package/src/environment/generation.ts +23 -0
  277. package/src/environment/graph.ts +9 -0
  278. package/src/environment/inspection.ts +87 -0
  279. package/src/environment/lifecycle.ts +250 -0
  280. package/src/environment/signature.ts +55 -0
  281. package/src/errors/render.ts +285 -0
  282. package/src/extract/camera.ts +78 -0
  283. package/src/extract/environment.ts +171 -0
  284. package/src/extract/visibility.ts +38 -19
  285. package/src/features/host.ts +36 -5
  286. package/src/features/motion-blur/__tests__/motion-blur-feature.unit.test.ts +67 -0
  287. package/src/features/motion-blur/__tests__/motion-blur-params.unit.test.ts +53 -0
  288. package/src/features/motion-blur/motion-blur-feature.ts +119 -0
  289. package/src/features/motion-blur/motion-blur-params.ts +89 -0
  290. package/src/features/plan.ts +32 -3
  291. package/src/features/prepared-gpu-work.ts +21 -6
  292. package/src/features/prepared-graphics.ts +2 -1
  293. package/src/features/render-graph-raster.ts +2 -1
  294. package/src/features/targets.ts +24 -2
  295. package/src/features/types.ts +13 -0
  296. package/src/fullscreen-post-process-pass.ts +34 -4
  297. package/src/gpu-scene.ts +24 -0
  298. package/src/ibl/skylight-bind-group.ts +30 -38
  299. package/src/index.ts +66 -6
  300. package/src/inspection-types.ts +48 -0
  301. package/src/internal.ts +5 -0
  302. package/src/materials.ts +119 -24
  303. package/src/pbr-pipeline.ts +58 -19
  304. package/src/pipeline/standard-forward-lane.ts +158 -101
  305. package/src/pipeline/standard-pipeline.ts +156 -105
  306. package/src/pipeline/standard-post.ts +373 -0
  307. package/src/pipeline/standard-profile.ts +11 -11
  308. package/src/pipeline-builder.ts +102 -12
  309. package/src/pipeline-spec.ts +9 -0
  310. package/src/plugin.ts +2 -0
  311. package/src/record/__tests__/fullscreen-temporal-routing.unit.test.ts +25 -0
  312. package/src/record/__tests__/main-pass-geometry.unit.test.ts +47 -0
  313. package/src/record/__tests__/material-bg-cache.unit.test.ts +12 -1
  314. package/src/record/__tests__/material-pipeline-pending-cache.unit.test.ts +22 -0
  315. package/src/record/__tests__/sprite-material-abi.unit.test.ts +75 -0
  316. package/src/record/__tests__/standard-pbr-ubo-layout.unit.test.ts +67 -0
  317. package/src/record/__tests__/temporal-payload.unit.test.ts +164 -0
  318. package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +127 -0
  319. package/src/record/frame-snapshot.ts +129 -5
  320. package/src/record/frame-targets.ts +15 -6
  321. package/src/record/frame.ts +107 -3
  322. package/src/record/main-pass-geometry.ts +86 -40
  323. package/src/record/main-pass-material.ts +114 -66
  324. package/src/record/main-pass-sprite-draws.ts +78 -101
  325. package/src/record/main-pass.ts +77 -4
  326. package/src/record/mesh-ssbo.ts +22 -3
  327. package/src/record/render-context.ts +189 -23
  328. package/src/record/shadow-pass.ts +113 -23
  329. package/src/record/skybox-post-pass.ts +97 -41
  330. package/src/record/typed-frame-graph.ts +565 -26
  331. package/src/record/view-ubo.ts +52 -4
  332. package/src/render-contract.ts +109 -6
  333. package/src/render-graph-primitives.ts +18 -1
  334. package/src/render-pipeline.ts +100 -27
  335. package/src/render-system-extract.ts +193 -69
  336. package/src/render-system.ts +482 -41
  337. package/src/scene/render-scene.ts +250 -7
  338. package/src/temporal/__tests__/taa-history-resources.unit.test.ts +45 -0
  339. package/src/temporal/coverage.ts +76 -0
  340. package/src/temporal/frame-coordinator.ts +311 -0
  341. package/src/temporal/gpu.ts +287 -0
  342. package/src/temporal/history.ts +92 -0
  343. package/src/temporal/index.ts +6 -0
  344. package/src/temporal/inspection.ts +97 -0
  345. package/src/temporal/scene-data-catalog.ts +200 -0
  346. package/src/temporal/scene-data.ts +149 -0
  347. package/src/temporal/standard-scene-data.ts +182 -0
  348. package/src/temporal/taa-history-resources.ts +128 -0
  349. package/src/temporal/taa-history-store.ts +79 -0
  350. package/src/temporal/taa-resolve.ts +34 -0
  351. package/src/temporal/temporal-view.ts +169 -0
  352. package/src/temporal/transaction.ts +17 -0
  353. package/src/temporal/view.ts +161 -0
  354. package/src/transmission/__tests__/capability.unit.test.ts +83 -0
  355. package/src/transmission/__tests__/composition.integration.test.ts +161 -0
  356. package/src/transmission/__tests__/inspection.unit.test.ts +241 -0
  357. package/src/transmission/__tests__/lifecycle.integration.test.ts +96 -0
  358. package/src/transmission/__tests__/oracle.unit.test.ts +131 -0
  359. package/src/transmission/__tests__/projection.unit.test.ts +71 -0
  360. package/src/transmission/__tests__/standard-transmission.dawn.test.ts +438 -0
  361. package/src/transmission/__tests__/transmission-backdrop-topology.unit.test.ts +109 -0
  362. package/src/transmission/__tests__/transmission-backdrop.dawn.test.ts +105 -0
  363. package/src/transmission/backdrop.ts +572 -0
  364. package/src/transmission/inspection.ts +190 -0
  365. package/src/transmission/oracle.ts +141 -0
  366. package/src/transmission/projection.ts +83 -0
  367. package/src/typed-render-graph-primitives.ts +162 -9
  368. package/dist/__tests__/authoring-path.unit.test.d.ts +0 -2
  369. package/dist/__tests__/authoring-path.unit.test.d.ts.map +0 -1
  370. package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts +0 -2
  371. package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts.map +0 -1
  372. package/dist/__tests__/callback-inference.test-d.d.ts +0 -2
  373. package/dist/__tests__/callback-inference.test-d.d.ts.map +0 -1
  374. package/dist/__tests__/cluster-binner.test.d.ts +0 -2
  375. package/dist/__tests__/cluster-binner.test.d.ts.map +0 -1
  376. package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts +0 -2
  377. package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts.map +0 -1
  378. package/dist/__tests__/construct-renderer-identity.unit.test.d.ts +0 -2
  379. package/dist/__tests__/construct-renderer-identity.unit.test.d.ts.map +0 -1
  380. package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts +0 -2
  381. package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts.map +0 -1
  382. package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts +0 -2
  383. package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts.map +0 -1
  384. package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts +0 -2
  385. package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts.map +0 -1
  386. package/dist/__tests__/direct-light-snapshot.unit.test.d.ts +0 -2
  387. package/dist/__tests__/direct-light-snapshot.unit.test.d.ts.map +0 -1
  388. package/dist/__tests__/factory-contract.integration.test.d.ts +0 -2
  389. package/dist/__tests__/factory-contract.integration.test.d.ts.map +0 -1
  390. package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts +0 -2
  391. package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts.map +0 -1
  392. package/dist/__tests__/frame-observation.contract.test.d.ts +0 -2
  393. package/dist/__tests__/frame-observation.contract.test.d.ts.map +0 -1
  394. package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts +0 -2
  395. package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts.map +0 -1
  396. package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts +0 -2
  397. package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts.map +0 -1
  398. package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts +0 -6
  399. package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts.map +0 -1
  400. package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts +0 -2
  401. package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts.map +0 -1
  402. package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts +0 -2
  403. package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts.map +0 -1
  404. package/dist/__tests__/gpu-driven-production.integration.test.d.ts +0 -2
  405. package/dist/__tests__/gpu-driven-production.integration.test.d.ts.map +0 -1
  406. package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts +0 -2
  407. package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts.map +0 -1
  408. package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts +0 -18
  409. package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts.map +0 -1
  410. package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts +0 -2
  411. package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts.map +0 -1
  412. package/dist/__tests__/gpu-driven-view-reference.d.ts +0 -15
  413. package/dist/__tests__/gpu-driven-view-reference.d.ts.map +0 -1
  414. package/dist/__tests__/gpu-driven-view.browser.test.d.ts +0 -2
  415. package/dist/__tests__/gpu-driven-view.browser.test.d.ts.map +0 -1
  416. package/dist/__tests__/gpu-driven-view.dawn.test.d.ts +0 -2
  417. package/dist/__tests__/gpu-driven-view.dawn.test.d.ts.map +0 -1
  418. package/dist/__tests__/gpu-driven-view.unit.test.d.ts +0 -2
  419. package/dist/__tests__/gpu-driven-view.unit.test.d.ts.map +0 -1
  420. package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts +0 -2
  421. package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts.map +0 -1
  422. package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts +0 -7
  423. package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts.map +0 -1
  424. package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts +0 -2
  425. package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts.map +0 -1
  426. package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts +0 -2
  427. package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts.map +0 -1
  428. package/dist/__tests__/gpu-scene-schema.unit.test.d.ts +0 -2
  429. package/dist/__tests__/gpu-scene-schema.unit.test.d.ts.map +0 -1
  430. package/dist/__tests__/gpu-scene.dawn.test.d.ts +0 -2
  431. package/dist/__tests__/gpu-scene.dawn.test.d.ts.map +0 -1
  432. package/dist/__tests__/gpu-scene.unit.test.d.ts +0 -2
  433. package/dist/__tests__/gpu-scene.unit.test.d.ts.map +0 -1
  434. package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts +0 -2
  435. package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts.map +0 -1
  436. package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts +0 -2
  437. package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts.map +0 -1
  438. package/dist/__tests__/injection-kind-owner.test-d.d.ts +0 -2
  439. package/dist/__tests__/injection-kind-owner.test-d.d.ts.map +0 -1
  440. package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts +0 -2
  441. package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts.map +0 -1
  442. package/dist/__tests__/light-buffer-layout.unit.test.d.ts +0 -2
  443. package/dist/__tests__/light-buffer-layout.unit.test.d.ts.map +0 -1
  444. package/dist/__tests__/material-contract-inventory.unit.test.d.ts +0 -2
  445. package/dist/__tests__/material-contract-inventory.unit.test.d.ts.map +0 -1
  446. package/dist/__tests__/material-cooked-projection.unit.test.d.ts +0 -2
  447. package/dist/__tests__/material-cooked-projection.unit.test.d.ts.map +0 -1
  448. package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts +0 -2
  449. package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts.map +0 -1
  450. package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts +0 -2
  451. package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts.map +0 -1
  452. package/dist/__tests__/material-stride-surface.unit.test.d.ts +0 -2
  453. package/dist/__tests__/material-stride-surface.unit.test.d.ts.map +0 -1
  454. package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts +0 -2
  455. package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts.map +0 -1
  456. package/dist/__tests__/mesh-material-bindings.unit.test.d.ts +0 -2
  457. package/dist/__tests__/mesh-material-bindings.unit.test.d.ts.map +0 -1
  458. package/dist/__tests__/mesh-stride-surface.unit.test.d.ts +0 -2
  459. package/dist/__tests__/mesh-stride-surface.unit.test.d.ts.map +0 -1
  460. package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts +0 -2
  461. package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts.map +0 -1
  462. package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts +0 -2
  463. package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts.map +0 -1
  464. package/dist/__tests__/morph-feature-plan.unit.test.d.ts +0 -2
  465. package/dist/__tests__/morph-feature-plan.unit.test.d.ts.map +0 -1
  466. package/dist/__tests__/morph-visual-evidence.integration.test.d.ts +0 -2
  467. package/dist/__tests__/morph-visual-evidence.integration.test.d.ts.map +0 -1
  468. package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts +0 -2
  469. package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts.map +0 -1
  470. package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts +0 -2
  471. package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts.map +0 -1
  472. package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts +0 -2
  473. package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts.map +0 -1
  474. package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts +0 -2
  475. package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts.map +0 -1
  476. package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts +0 -2
  477. package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts.map +0 -1
  478. package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts +0 -2
  479. package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts.map +0 -1
  480. package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts +0 -2
  481. package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts.map +0 -1
  482. package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts +0 -2
  483. package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts.map +0 -1
  484. package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts +0 -2
  485. package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts.map +0 -1
  486. package/dist/__tests__/prepared-graphics-store.unit.test.d.ts +0 -2
  487. package/dist/__tests__/prepared-graphics-store.unit.test.d.ts.map +0 -1
  488. package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts +0 -2
  489. package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts.map +0 -1
  490. package/dist/__tests__/profiler-default-off.test.d.ts +0 -2
  491. package/dist/__tests__/profiler-default-off.test.d.ts.map +0 -1
  492. package/dist/__tests__/profiler-phase-catalog.test.d.ts +0 -2
  493. package/dist/__tests__/profiler-phase-catalog.test.d.ts.map +0 -1
  494. package/dist/__tests__/profiler-phase-integration.test.d.ts +0 -2
  495. package/dist/__tests__/profiler-phase-integration.test.d.ts.map +0 -1
  496. package/dist/__tests__/profiler-phase-token.test.d.ts +0 -2
  497. package/dist/__tests__/profiler-phase-token.test.d.ts.map +0 -1
  498. package/dist/__tests__/public-surface.test-d.d.ts +0 -2
  499. package/dist/__tests__/public-surface.test-d.d.ts.map +0 -1
  500. package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts +0 -2
  501. package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts.map +0 -1
  502. package/dist/__tests__/render-error-code-owner.test-d.d.ts +0 -2
  503. package/dist/__tests__/render-error-code-owner.test-d.d.ts.map +0 -1
  504. package/dist/__tests__/render-error-detail-ssot.test-d.d.ts +0 -2
  505. package/dist/__tests__/render-error-detail-ssot.test-d.d.ts.map +0 -1
  506. package/dist/__tests__/render-error-exhaustive.test-d.d.ts +0 -2
  507. package/dist/__tests__/render-error-exhaustive.test-d.d.ts.map +0 -1
  508. package/dist/__tests__/render-feature-assembly.test-d.d.ts +0 -2
  509. package/dist/__tests__/render-feature-assembly.test-d.d.ts.map +0 -1
  510. package/dist/__tests__/render-feature-context.test-d.d.ts +0 -2
  511. package/dist/__tests__/render-feature-context.test-d.d.ts.map +0 -1
  512. package/dist/__tests__/render-feature-contract.test-d.d.ts +0 -2
  513. package/dist/__tests__/render-feature-contract.test-d.d.ts.map +0 -1
  514. package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts +0 -2
  515. package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts.map +0 -1
  516. package/dist/__tests__/render-feature-docs.unit.test.d.ts +0 -2
  517. package/dist/__tests__/render-feature-docs.unit.test.d.ts.map +0 -1
  518. package/dist/__tests__/render-feature-errors.unit.test.d.ts +0 -2
  519. package/dist/__tests__/render-feature-errors.unit.test.d.ts.map +0 -1
  520. package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts +0 -2
  521. package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts.map +0 -1
  522. package/dist/__tests__/render-feature-plan.test-d.d.ts +0 -2
  523. package/dist/__tests__/render-feature-plan.test-d.d.ts.map +0 -1
  524. package/dist/__tests__/render-feature-plan.unit.test.d.ts +0 -2
  525. package/dist/__tests__/render-feature-plan.unit.test.d.ts.map +0 -1
  526. package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts +0 -2
  527. package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts.map +0 -1
  528. package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts +0 -2
  529. package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts.map +0 -1
  530. package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts +0 -2
  531. package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts.map +0 -1
  532. package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts +0 -2
  533. package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts.map +0 -1
  534. package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts +0 -2
  535. package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts.map +0 -1
  536. package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts +0 -2
  537. package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts.map +0 -1
  538. package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts +0 -2
  539. package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts.map +0 -1
  540. package/dist/__tests__/render-feature-public-surface.test-d.d.ts +0 -2
  541. package/dist/__tests__/render-feature-public-surface.test-d.d.ts.map +0 -1
  542. package/dist/__tests__/render-feature-retry.unit.test.d.ts +0 -2
  543. package/dist/__tests__/render-feature-retry.unit.test.d.ts.map +0 -1
  544. package/dist/__tests__/render-feature-scheduling.unit.test.d.ts +0 -2
  545. package/dist/__tests__/render-feature-scheduling.unit.test.d.ts.map +0 -1
  546. package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts +0 -2
  547. package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts.map +0 -1
  548. package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts +0 -2
  549. package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts.map +0 -1
  550. package/dist/__tests__/render-feature-visibility-context.test-d.d.ts +0 -2
  551. package/dist/__tests__/render-feature-visibility-context.test-d.d.ts.map +0 -1
  552. package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts +0 -2
  553. package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts.map +0 -1
  554. package/dist/__tests__/render-feature-zero-work.unit.test.d.ts +0 -2
  555. package/dist/__tests__/render-feature-zero-work.unit.test.d.ts.map +0 -1
  556. package/dist/__tests__/render-graph-compute-raster-gpu.d.ts +0 -7
  557. package/dist/__tests__/render-graph-compute-raster-gpu.d.ts.map +0 -1
  558. package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts +0 -2
  559. package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts.map +0 -1
  560. package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts +0 -2
  561. package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts.map +0 -1
  562. package/dist/__tests__/render-graph-hzb-gpu.d.ts +0 -7
  563. package/dist/__tests__/render-graph-hzb-gpu.d.ts.map +0 -1
  564. package/dist/__tests__/render-graph-hzb.browser.test.d.ts +0 -2
  565. package/dist/__tests__/render-graph-hzb.browser.test.d.ts.map +0 -1
  566. package/dist/__tests__/render-graph-hzb.dawn.test.d.ts +0 -2
  567. package/dist/__tests__/render-graph-hzb.dawn.test.d.ts.map +0 -1
  568. package/dist/__tests__/render-graph-primitives.unit.test.d.ts +0 -2
  569. package/dist/__tests__/render-graph-primitives.unit.test.d.ts.map +0 -1
  570. package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts +0 -12
  571. package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts.map +0 -1
  572. package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts +0 -2
  573. package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts.map +0 -1
  574. package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts +0 -2
  575. package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts.map +0 -1
  576. package/dist/__tests__/render-scene-projection.unit.test.d.ts +0 -2
  577. package/dist/__tests__/render-scene-projection.unit.test.d.ts.map +0 -1
  578. package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts +0 -2
  579. package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts.map +0 -1
  580. package/dist/__tests__/renderer-lifecycle.integration.test.d.ts +0 -2
  581. package/dist/__tests__/renderer-lifecycle.integration.test.d.ts.map +0 -1
  582. package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts +0 -2
  583. package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts.map +0 -1
  584. package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts +0 -2
  585. package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts.map +0 -1
  586. package/dist/__tests__/shader-stage-surface.unit.test.d.ts +0 -2
  587. package/dist/__tests__/shader-stage-surface.unit.test.d.ts.map +0 -1
  588. package/dist/__tests__/ssao-config.unit.test.d.ts +0 -2
  589. package/dist/__tests__/ssao-config.unit.test.d.ts.map +0 -1
  590. package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts +0 -2
  591. package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts.map +0 -1
  592. package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts +0 -2
  593. package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts.map +0 -1
  594. package/dist/__tests__/standard-descriptors.test-d.d.ts +0 -2
  595. package/dist/__tests__/standard-descriptors.test-d.d.ts.map +0 -1
  596. package/dist/__tests__/standard-pipeline.dawn.test.d.ts +0 -2
  597. package/dist/__tests__/standard-pipeline.dawn.test.d.ts.map +0 -1
  598. package/dist/__tests__/standard-pipeline.integration.test.d.ts +0 -2
  599. package/dist/__tests__/standard-pipeline.integration.test.d.ts.map +0 -1
  600. package/dist/__tests__/standard-profile-oracle.unit.test.d.ts +0 -2
  601. package/dist/__tests__/standard-profile-oracle.unit.test.d.ts.map +0 -1
  602. package/dist/__tests__/surface-configuration.unit.test.d.ts +0 -2
  603. package/dist/__tests__/surface-configuration.unit.test.d.ts.map +0 -1
  604. package/dist/__tests__/texture-usage-surface.unit.test.d.ts +0 -2
  605. package/dist/__tests__/texture-usage-surface.unit.test.d.ts.map +0 -1
  606. package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts +0 -2
  607. package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts.map +0 -1
  608. package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts +0 -2
  609. package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts.map +0 -1
  610. package/dist/__tests__/urp-pipeline.unit.test.d.ts +0 -2
  611. package/dist/__tests__/urp-pipeline.unit.test.d.ts.map +0 -1
  612. package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts +0 -2
  613. package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts.map +0 -1
  614. package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts +0 -2
  615. package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts.map +0 -1
  616. package/dist/__tests__/visibility-diagnostics.integration.test.d.ts +0 -2
  617. package/dist/__tests__/visibility-diagnostics.integration.test.d.ts.map +0 -1
  618. package/dist/__tests__/visibility-extract.integration.test.d.ts +0 -2
  619. package/dist/__tests__/visibility-extract.integration.test.d.ts.map +0 -1
  620. package/dist/__tests__/visibility-extract.perf.test.d.ts +0 -2
  621. package/dist/__tests__/visibility-extract.perf.test.d.ts.map +0 -1
  622. package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts +0 -2
  623. package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts.map +0 -1
  624. package/dist/__tests__/visibility-hidden-report.unit.test.d.ts +0 -2
  625. package/dist/__tests__/visibility-hidden-report.unit.test.d.ts.map +0 -1
  626. package/dist/__tests__/visibility-instances.integration.test.d.ts +0 -2
  627. package/dist/__tests__/visibility-instances.integration.test.d.ts.map +0 -1
  628. package/dist/__tests__/visibility-multi-world.integration.test.d.ts +0 -2
  629. package/dist/__tests__/visibility-multi-world.integration.test.d.ts.map +0 -1
  630. package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts +0 -2
  631. package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts.map +0 -1
  632. package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts +0 -2
  633. package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts.map +0 -1
  634. package/dist/__tests__/visibility-public-surface.test-d.d.ts +0 -2
  635. package/dist/__tests__/visibility-public-surface.test-d.d.ts.map +0 -1
  636. package/dist/__tests__/visibility-resolver.unit.test.d.ts +0 -2
  637. package/dist/__tests__/visibility-resolver.unit.test.d.ts.map +0 -1
  638. package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts +0 -2
  639. package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts.map +0 -1
  640. package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts +0 -2
  641. package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts.map +0 -1
  642. package/dist/__tests__/vocabulary.unit.test.d.ts +0 -2
  643. package/dist/__tests__/vocabulary.unit.test.d.ts.map +0 -1
  644. package/dist/chunk-CQXZC5XI.mjs.map +0 -1
  645. package/dist/chunk-HCOGPHKS.mjs +0 -93
  646. package/dist/chunk-HCOGPHKS.mjs.map +0 -1
  647. package/dist/chunk-YEJIUW7D.mjs.map +0 -1
  648. package/dist/components/__tests__/points-lines-admission.unit.test.d.ts +0 -2
  649. package/dist/components/__tests__/points-lines-admission.unit.test.d.ts.map +0 -1
  650. package/dist/components/__tests__/points-lines-schema.unit.test.d.ts +0 -2
  651. package/dist/components/__tests__/points-lines-schema.unit.test.d.ts.map +0 -1
  652. package/dist/components/__tests__/schema-contract.unit.test.d.ts +0 -2
  653. package/dist/components/__tests__/schema-contract.unit.test.d.ts.map +0 -1
  654. package/dist/components/__tests__/schema-parity.unit.test.d.ts +0 -2
  655. package/dist/components/__tests__/schema-parity.unit.test.d.ts.map +0 -1
  656. package/dist/components/__tests__/visibility-schema.unit.test.d.ts +0 -2
  657. package/dist/components/__tests__/visibility-schema.unit.test.d.ts.map +0 -1
  658. package/dist/points-lines/__tests__/bounds.unit.test.d.ts +0 -2
  659. package/dist/points-lines/__tests__/bounds.unit.test.d.ts.map +0 -1
  660. package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts +0 -2
  661. package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts.map +0 -1
  662. package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts +0 -2
  663. package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts.map +0 -1
  664. package/dist/points-lines/__tests__/inspection.unit.test.d.ts +0 -2
  665. package/dist/points-lines/__tests__/inspection.unit.test.d.ts.map +0 -1
  666. package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts +0 -2
  667. package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts.map +0 -1
  668. package/dist/points-lines/__tests__/points-lines.bench.d.ts +0 -2
  669. package/dist/points-lines/__tests__/points-lines.bench.d.ts.map +0 -1
  670. package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts +0 -2
  671. package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts.map +0 -1
  672. package/dist/points-lines/__tests__/snapshot.unit.test.d.ts +0 -2
  673. package/dist/points-lines/__tests__/snapshot.unit.test.d.ts.map +0 -1
  674. package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts +0 -2
  675. package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts.map +0 -1
  676. package/dist/record/__tests__/material-bg-cache.unit.test.d.ts +0 -2
  677. package/dist/record/__tests__/material-bg-cache.unit.test.d.ts.map +0 -1
  678. package/dist/record/__tests__/material-slot-plan.unit.test.d.ts +0 -2
  679. package/dist/record/__tests__/material-slot-plan.unit.test.d.ts.map +0 -1
  680. package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts +0 -2
  681. package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts.map +0 -1
  682. package/dist/record/__tests__/video-texture-view.unit.test.d.ts +0 -2
  683. package/dist/record/__tests__/video-texture-view.unit.test.d.ts.map +0 -1
@@ -1,7 +1,4 @@
1
- import { defineComponent, Entity } from '@forgeax/engine-ecs';
2
- import { TONEMAP_SHADER_MODE } from '@forgeax/engine-shader';
3
1
  import { err, ok } from '@forgeax/engine-types';
4
- import { projectHierarchy } from '@forgeax/engine-scene';
5
2
 
6
3
  // src/errors/render.ts
7
4
  var LifecycleConstructionError = class extends Error {
@@ -205,6 +202,17 @@ var MaterialSkinAttrMissingError = class extends Error {
205
202
  this.detail = { entity, missing };
206
203
  }
207
204
  };
205
+ var TransmissionCapabilityMissingError = class extends Error {
206
+ code = "transmission-capability-missing";
207
+ expected = "the renderer exposes the transmission capability for this material";
208
+ hint = "disable transmission or provide the renderer capability before drawing";
209
+ detail;
210
+ constructor(material, stage, evidence) {
211
+ super(`transmission capability is missing for material '${material}'`);
212
+ this.name = "TransmissionCapabilityMissingError";
213
+ this.detail = { material, capability: "transmission", stage, ...evidence };
214
+ }
215
+ };
208
216
  var renderFeatureRecoveryHintByRecovery = {
209
217
  "next-frame": (featureIdentity, stage) => `correct '${featureIdentity}' ${stage} data and retry on the next frame`,
210
218
  "renderer-recover": (featureIdentity, _stage) => `wait for renderer recovery before retrying '${featureIdentity}'`,
@@ -335,6 +343,26 @@ var ObservationUnavailableError = class extends Error {
335
343
  this.detail = { reason, recovery };
336
344
  }
337
345
  };
346
+ var SceneDataUnavailableError = class extends Error {
347
+ code = "scene-data-unavailable";
348
+ expected = "the requested semantic scene data is available for the active plan";
349
+ hint;
350
+ detail;
351
+ constructor(detail) {
352
+ const hint = detail.recovery === "enable-capability" ? "enable rgba16floatRenderable and retry the current frame" : detail.recovery === "renderer-recover" ? "wait for renderer recovery, then retry the frame" : "restore the producer coverage and retry on the next frame";
353
+ super(`scene data '${detail.schema}' unavailable for '${detail.featureIdentity}'`);
354
+ this.name = "SceneDataUnavailableError";
355
+ this.hint = hint;
356
+ this.detail = Object.freeze({
357
+ ...detail,
358
+ missingContributorIds: Object.freeze([...detail.missingContributorIds].slice(0, 32)),
359
+ omittedMissingContributorCount: Math.max(
360
+ detail.omittedMissingContributorCount,
361
+ Math.max(0, detail.missingContributorIds.length - 32)
362
+ )
363
+ });
364
+ }
365
+ };
338
366
  var FrameReceiptStaleError = class extends Error {
339
367
  code = "frame-receipt-stale";
340
368
  expected = "the observation receipt belongs to the active device generation";
@@ -357,6 +385,75 @@ var RendererContractFailureError = class extends Error {
357
385
  this.detail = { operation, cause };
358
386
  }
359
387
  };
388
+ var EnvironmentSourceConflictError = class extends Error {
389
+ code = "environment-source-conflict";
390
+ expected = "exactly one environment source owns the frame";
391
+ hint = "remove all but one image or atmosphere environment owner";
392
+ detail;
393
+ constructor(owners) {
394
+ super("environment source owners conflict");
395
+ this.name = "EnvironmentSourceConflictError";
396
+ this.detail = { owners: owners.map((owner) => Object.freeze({ ...owner })) };
397
+ }
398
+ };
399
+ var FogCardinalityError = class extends Error {
400
+ code = "fog-cardinality";
401
+ expected = "zero or one Fog owner contributes to a frame";
402
+ hint = "remove extra Fog owners so the resource owner has at most one";
403
+ detail;
404
+ constructor(count) {
405
+ super(`Fog owner cardinality is ${count}`);
406
+ this.name = "FogCardinalityError";
407
+ this.detail = { count };
408
+ }
409
+ };
410
+ var TaaCapsInsufficientError = class extends Error {
411
+ code = "taa-caps-insufficient";
412
+ expected = "the backend exposes the capabilities required by TAA";
413
+ hint = "select a backend with the required TAA capabilities or disable TAA on Camera";
414
+ detail;
415
+ constructor(required, available) {
416
+ super("TAA capabilities are insufficient");
417
+ this.name = "TaaCapsInsufficientError";
418
+ this.detail = { required: [...required], available: [...available] };
419
+ }
420
+ };
421
+ var EnvironmentGenerationFailedError = class extends Error {
422
+ code = "environment-generation-failed";
423
+ expected = "the selected environment generation completes its owner stage";
424
+ hint = "inspect the stage and sourceKey, then retry after correcting the environment";
425
+ detail;
426
+ constructor(sourceKey, stage) {
427
+ super(`environment generation failed during ${stage}`);
428
+ this.name = "EnvironmentGenerationFailedError";
429
+ this.detail = { sourceKey, stage };
430
+ }
431
+ };
432
+ var AtmosphereInvalidParameterError = class extends Error {
433
+ code = "atmosphere-invalid-parameter";
434
+ expected;
435
+ hint;
436
+ detail;
437
+ constructor(field, value, range) {
438
+ super(`Atmosphere.${field} is invalid`);
439
+ this.name = "AtmosphereInvalidParameterError";
440
+ this.detail = { field, value };
441
+ const rangeText = Number.isFinite(range.max) ? `[${range.min}, ${range.max}]` : `>= ${range.min}`;
442
+ this.expected = `Atmosphere.${field} must be finite and ${rangeText}`;
443
+ this.hint = `set Atmosphere.${field} to a finite value ${rangeText}`;
444
+ }
445
+ };
446
+ var OwnerStageFailedError = class extends Error {
447
+ code = "owner-stage-failed";
448
+ expected = "the owner completes its current frame stage";
449
+ hint = "inspect the owner and stage, keep the last-known-good frame, and retry";
450
+ detail;
451
+ constructor(owner, stage) {
452
+ super(`${owner} owner failed during ${stage}`);
453
+ this.name = "OwnerStageFailedError";
454
+ this.detail = { owner, stage };
455
+ }
456
+ };
360
457
  var RENDERER_OPERATION_ERROR_POLICY = {
361
458
  "world-lease-invalid": {
362
459
  expected: "every render World is represented by a live lease owned by this Renderer",
@@ -494,349 +591,200 @@ var PointsLinesPrepareFailedError = class extends Error {
494
591
  this.detail = detail;
495
592
  }
496
593
  };
497
- var CAMERA_PROJECTION_PERSPECTIVE = 0;
498
- var CAMERA_PROJECTION_ORTHOGRAPHIC = 1;
499
- function cameraProjectionFromF32(value) {
500
- return value === CAMERA_PROJECTION_ORTHOGRAPHIC ? "orthographic" : "perspective";
594
+
595
+ // src/temporal/scene-data.ts
596
+ var SCENE_DATA_TEMPORAL_V1_SCHEMA = "forgeax::scene-data::temporal-v1";
597
+ var SCENE_DATA_TEMPORAL_V1_DESCRIPTOR = Object.freeze({
598
+ schema: SCENE_DATA_TEMPORAL_V1_SCHEMA,
599
+ format: "rgba16float",
600
+ sampleCount: 1,
601
+ extent: "render-resolution",
602
+ clearValue: [0, 0, -1, 1],
603
+ channels: Object.freeze({
604
+ motionUv: "rg",
605
+ viewDepth: "b-log2-1-plus-depth",
606
+ reactive: "a"
607
+ })
608
+ });
609
+ var targetOwners = /* @__PURE__ */ new WeakMap();
610
+ function registerSceneDataTarget(target, owner) {
611
+ targetOwners.set(target, owner);
501
612
  }
502
- var TONEMAP_NONE = TONEMAP_SHADER_MODE.none;
503
- var TONEMAP_REINHARD_EXTENDED = TONEMAP_SHADER_MODE.reinhardExtended;
504
- var TONEMAP_REINHARD = TONEMAP_SHADER_MODE.reinhard;
505
- var TONEMAP_LINEAR = TONEMAP_SHADER_MODE.linear;
506
- var TONEMAP_CINEON = TONEMAP_SHADER_MODE.cineon;
507
- var TONEMAP_ACES_FILMIC = TONEMAP_SHADER_MODE.acesFilmic;
508
- var TONEMAP_AGX = TONEMAP_SHADER_MODE.agx;
509
- var TONEMAP_NEUTRAL = TONEMAP_SHADER_MODE.neutral;
510
- function tonemapFromF32(value) {
511
- switch (value) {
512
- case TONEMAP_REINHARD_EXTENDED:
513
- return "reinhard-extended";
514
- case TONEMAP_REINHARD:
515
- return "reinhard";
516
- case TONEMAP_LINEAR:
517
- return "linear";
518
- case TONEMAP_CINEON:
519
- return "cineon";
520
- case TONEMAP_ACES_FILMIC:
521
- return "aces-filmic";
522
- case TONEMAP_AGX:
523
- return "agx";
524
- case TONEMAP_NEUTRAL:
525
- return "neutral";
526
- default:
527
- return "none";
528
- }
613
+ function sceneDataTargetOwner(target) {
614
+ return typeof target === "object" && target !== null ? targetOwners.get(target) : void 0;
529
615
  }
530
- function tonemapToU32(mode) {
531
- switch (mode) {
532
- case "reinhard-extended":
533
- return TONEMAP_REINHARD_EXTENDED;
534
- case "reinhard":
535
- return TONEMAP_REINHARD;
536
- case "linear":
537
- return TONEMAP_LINEAR;
538
- case "cineon":
539
- return TONEMAP_CINEON;
540
- case "aces-filmic":
541
- return TONEMAP_ACES_FILMIC;
542
- case "agx":
543
- return TONEMAP_AGX;
544
- case "neutral":
545
- return TONEMAP_NEUTRAL;
546
- case "none":
547
- return TONEMAP_NONE;
548
- }
549
- throw new RangeError(`Invalid tonemap mode: ${String(mode)}.`);
616
+ function sceneDataTokenMismatch(operation, reason, owner, target) {
617
+ const detail = reason === "generation-mismatch" ? {
618
+ featureIdentity: owner.featureIdentity,
619
+ order: -1,
620
+ stage: "contribute",
621
+ operation,
622
+ resourceKind: "attachment",
623
+ reason,
624
+ expectedGeneration: owner.generation,
625
+ actualGeneration: targetOwners.get(target)?.generation ?? -1,
626
+ recovery: "renderer-recover"
627
+ } : reason === "foreign-feature" ? {
628
+ featureIdentity: owner.featureIdentity,
629
+ order: -1,
630
+ stage: "contribute",
631
+ operation,
632
+ resourceKind: "attachment",
633
+ reason,
634
+ expectedFeatureIdentity: owner.featureIdentity,
635
+ actualFeatureIdentity: targetOwners.get(target)?.featureIdentity ?? "unknown",
636
+ recovery: "next-frame"
637
+ } : reason === "foreign-kind" ? {
638
+ featureIdentity: owner.featureIdentity,
639
+ order: -1,
640
+ stage: "contribute",
641
+ operation,
642
+ resourceKind: "attachment",
643
+ reason,
644
+ expectedKind: "attachment",
645
+ actualKind: "pipeline",
646
+ recovery: "next-frame"
647
+ } : {
648
+ featureIdentity: owner.featureIdentity,
649
+ order: -1,
650
+ stage: "contribute",
651
+ operation,
652
+ resourceKind: "attachment",
653
+ reason,
654
+ expectedLayout: "sampled-read-temporal-v1",
655
+ actualLayout: target?.access ?? "unknown",
656
+ recovery: "next-frame"
657
+ };
658
+ return new RenderFeaturePreparedStateMismatchError(detail);
550
659
  }
551
- var ANTIALIAS_NONE = 0;
552
- var ANTIALIAS_FXAA = 1;
553
- var ANTIALIAS_MSAA = 2;
554
- var ANTIALIAS_TAA = 3;
555
- function antialiasFromF32(value) {
556
- if (value === ANTIALIAS_NONE) return "none";
557
- if (value === ANTIALIAS_FXAA) return "fxaa";
558
- if (value === ANTIALIAS_MSAA) return "msaa";
559
- if (value === ANTIALIAS_TAA) return "taa";
560
- throw new RangeError(
561
- `Invalid antialias value: ${value}. Expected ${ANTIALIAS_NONE} (none), ${ANTIALIAS_FXAA} (fxaa), ${ANTIALIAS_MSAA} (msaa), or ${ANTIALIAS_TAA} (taa).`
562
- );
660
+ function isSceneDataTarget(value) {
661
+ if (value === null || typeof value !== "object") return false;
662
+ const candidate = value;
663
+ return candidate.kind === "scene-data" && candidate.schema === SCENE_DATA_TEMPORAL_V1_SCHEMA && candidate.access === "sampled-read" && candidate.format === "rgba16float" && candidate.sampleCount === 1 && candidate.extent === "render-resolution" && targetOwners.has(value);
563
664
  }
564
- var BLOOM_DISABLED = 0;
565
- var BLOOM_ENABLED = 1;
566
- function bloomEnabledFromF32(value) {
567
- if (value === BLOOM_DISABLED) return "off";
568
- if (value === BLOOM_ENABLED) return "on";
569
- throw new RangeError(
570
- `Invalid bloom value: ${value}. Expected ${BLOOM_DISABLED} (off) or ${BLOOM_ENABLED} (on).`
571
- );
665
+ function sceneDataTargetAsAttachment(_target) {
666
+ throw new TypeError("SceneDataTarget is sampled-read-only and cannot be used as an attachment");
572
667
  }
573
- var Camera = defineComponent("Camera", {
574
- fov: { type: "f32" },
575
- aspect: { type: "f32" },
576
- near: { type: "f32" },
577
- far: { type: "f32" },
578
- projection: { type: "f32", default: 0 },
579
- left: { type: "f32", default: -1 },
580
- right: { type: "f32", default: 1 },
581
- bottom: { type: "f32", default: -1 },
582
- top: { type: "f32", default: 1 },
583
- tonemap: { type: "f32", default: 0 },
584
- exposure: { type: "f32", default: 1 },
585
- whitePoint: { type: "f32", default: 4 },
586
- antialias: { type: "f32", default: 0 },
587
- historyVersion: { type: "u32", default: 0 },
588
- bloom: { type: "f32", default: 0 },
589
- bloomThreshold: { type: "f32", default: 1 },
590
- bloomIntensity: { type: "f32", default: 1 },
591
- bloomBlurRadius: { type: "f32", default: 4 },
592
- // feat-20260709 M3 / D-3: clear-color is one inline `array<f32,4>` column.
593
- // The earlier 4-scalar form (clearR/G/B/A) was chosen when this was believed
594
- // to be the only SoA-safe shape; the Transform (pos/quat/scale) and light
595
- // (direction/color) precedents disprove that -- an `array<f32,N>` IS an
596
- // inline stride-N SoA column, read on the hot path as `col[i*N+a]` with zero
597
- // allocation, so collapsing four scalars into one column removes three field
598
- // names a reader must track without changing the storage layout or read
599
- // pattern. The default `[0, 0, 0, 0]` is transparent black; explicit alpha
600
- // stays visible through the same public array field.
601
- clearColor: { type: "array<f32, 4>", default: new Float32Array([0, 0, 0, 0]) },
602
- // feat-20260617-host-engine-contract-and-video-cutscene / M3 / D-4: the
603
- // aspect-sync sidecar on the createApp(canvas) path writes
604
- // canvas.width / canvas.height into `aspect` every frame when this flag is
605
- // true. Reuses the existing `bool` column tier (AnimationPlayer.paused /
606
- // AudioSource.playing precedent) -- zero ECS infrastructure change. Default
607
- // true so demos that never touch aspect track the canvas automatically
608
- // (charter P1 default-is-correct); set false for render-to-texture /
609
- // split-screen cameras that drive aspect themselves. Read it via
610
- // world.get (readRow narrows bool -> JS boolean); the query-bundle path
611
- // returns a raw 0/1 number (the `!== 0` always-true trap).
612
- autoAspect: { type: "bool", default: true }
613
- });
614
- function cameraPodFromDefaults() {
615
- const base = {};
616
- for (const [key, field] of Object.entries(Camera.fields)) {
617
- if ("default" in field && field.default !== void 0) {
618
- base[key] = field.default;
619
- }
620
- }
621
- return base;
668
+ function sceneDataError(error) {
669
+ return error;
622
670
  }
623
- function perspective(opts) {
671
+ function availability(options) {
672
+ if (options.recovering) return { status: "unavailable", reason: "renderer-recovering" };
673
+ if (!options.rgba16floatRenderable)
674
+ return { status: "unavailable", reason: "capability-missing" };
675
+ if (options.producerPresent === false)
676
+ return { status: "unavailable", reason: "producer-missing" };
677
+ if (options.coverageComplete === false)
678
+ return { status: "unavailable", reason: "coverage-incomplete" };
624
679
  return {
625
- // cameraPodFromDefaults() reads autoAspect's schema default (true), so an
626
- // omitted opts.autoAspect lands the default-correct value; an explicit
627
- // false overrides it below (D-4: factory one-step opt-out, charter P1).
628
- ...cameraPodFromDefaults(),
629
- fov: opts.fov,
630
- aspect: opts.aspect,
631
- near: opts.near ?? 0.1,
632
- far: opts.far ?? 100,
633
- projection: CAMERA_PROJECTION_PERSPECTIVE,
634
- ...opts.autoAspect !== void 0 ? { autoAspect: opts.autoAspect } : {}
680
+ status: "available",
681
+ completeness: options.reactiveFallback ? "exact-with-reactive-fallback" : "exact"
635
682
  };
636
683
  }
637
- function orthographic(opts) {
638
- return {
639
- ...cameraPodFromDefaults(),
640
- fov: 0,
641
- aspect: 1,
642
- near: opts.near ?? 0.1,
643
- far: opts.far ?? 100,
644
- projection: CAMERA_PROJECTION_ORTHOGRAPHIC,
645
- left: opts.left,
646
- right: opts.right,
647
- bottom: opts.bottom,
648
- top: opts.top
649
- };
684
+ function createTarget(owner) {
685
+ const target = Object.freeze({
686
+ kind: "scene-data",
687
+ schema: SCENE_DATA_TEMPORAL_V1_SCHEMA,
688
+ access: "sampled-read",
689
+ format: "rgba16float",
690
+ sampleCount: 1,
691
+ extent: "render-resolution"
692
+ });
693
+ registerSceneDataTarget(target, {
694
+ featureIdentity: owner.featureIdentity,
695
+ planIdentity: owner.planIdentity,
696
+ generation: owner.generation
697
+ });
698
+ return target;
650
699
  }
651
- var DirectionalLight = defineComponent("DirectionalLight", {
652
- // direction is the ONLY field with no default (D-5): omitting it lands the
653
- // array layer-3 all-zero [0,0,0], which the renderer owner rejects -- there is no
654
- // universal default direction, so "default is illegal" forces an explicit
655
- // non-zero value. color carries an explicit layer-2 default [1,1,1] (white);
656
- // the array layer-3 fallback is all-zero, so the default MUST be explicit.
657
- direction: { type: "array<f32, 3>" },
658
- color: { type: "array<f32, 3>", default: new Float32Array([1, 1, 1]) },
659
- intensity: { type: "f32", default: 1 },
660
- // Shadow opt-out gate: defaults to true so zero-config spawns get shadows.
661
- castShadow: { type: "bool", default: true },
662
- // 9 shadow fields migrated from DirectionalLightShadow (feat-20260621 M1).
663
- cascadeCount: { type: "f32", default: 4 },
664
- splitLambda: { type: "f32", default: 0.75 },
665
- cascadeBlend: { type: "f32", default: 0.2 },
666
- mapSize: { type: "f32", default: 2048 },
667
- depthBias: { type: "f32", default: 5e-3 },
668
- normalBias: { type: "f32", default: 0.05 },
669
- // Sole shadow coverage knob (feat replaces nearPlane/farPlane). The PSSM
670
- // near end derives from the active camera near; shadowDistance is the far
671
- // reach. Default 200 world units (matches UE-style "dynamic shadow
672
- // distance"; the old farPlane default was 50).
673
- shadowDistance: { type: "f32", default: 200 },
674
- pcfKernelSize: { type: "f32", default: 3 }
675
- });
676
- var Instances = defineComponent("Instances", {
677
- transforms: { type: "array<f32>" }
678
- });
679
- var Layer = defineComponent("Layer", {
680
- value: { type: "i32", default: 0 }
681
- });
682
- var Lines = defineComponent(
683
- "Lines",
684
- {
685
- widthPx: { type: "f32", default: 1 }
686
- },
687
- {
688
- meta: {
689
- quickStart: "Attach Lines to render line-list MeshAsset pairs in screen pixels.",
690
- diagnostics: "Inspect widthPx at the points-lines admission boundary.",
691
- recovery: "Use points-lines-invalid-style for non-finite or non-positive widthPx values.",
692
- boundaries: "Lines owns raster width only; MeshFilter and MeshRenderer own geometry and material."
693
- }
694
- }
695
- );
696
- var MeshFilter = defineComponent("MeshFilter", {
697
- assetHandle: { type: "shared<MeshAsset>" }
698
- });
699
- var MeshRenderer = defineComponent("MeshRenderer", {
700
- materials: { type: "array<shared<MaterialAsset>>", default: [] }
701
- });
702
- var PointLight = defineComponent("PointLight", {
703
- // color carries an explicit layer-2 default [1,1,1] (white); the array
704
- // layer-3 fallback is all-zero, so the default MUST be explicit (D-5).
705
- color: { type: "array<f32, 3>", default: new Float32Array([1, 1, 1]) },
706
- intensity: { type: "f32", default: 1 },
707
- range: { type: "f32", default: 10 }
708
- });
709
- var PointLightShadow = defineComponent("PointLightShadow", {
710
- mapSize: { type: "f32", default: 512 },
711
- depthBias: { type: "f32", default: 5e-3 },
712
- normalBias: { type: "f32", default: 0.05 },
713
- nearPlane: { type: "f32", default: 0.1 },
714
- farPlane: { type: "f32", default: 25 },
715
- pcfKernelSize: { type: "f32", default: 3 }
716
- });
717
- var PointShapeValue = Object.freeze({
718
- square: 0,
719
- circle: 1
720
- });
721
- function pointShapeFromU32(value) {
722
- switch (value) {
723
- case PointShapeValue.square:
724
- return "square";
725
- case PointShapeValue.circle:
726
- return "circle";
727
- default:
728
- return void 0;
729
- }
700
+ function tokenError(catalog, operation) {
701
+ return sceneDataTokenMismatch(
702
+ operation,
703
+ "foreign-kind",
704
+ {
705
+ featureIdentity: catalog.featureIdentity,
706
+ planIdentity: catalog.planIdentity,
707
+ generation: catalog.generation
708
+ },
709
+ void 0
710
+ );
730
711
  }
731
- var Points = defineComponent(
732
- "Points",
733
- {
734
- sizePx: { type: "f32", default: 4 },
735
- shape: { type: "enum", default: PointShapeValue.square, labels: PointShapeValue }
736
- },
737
- {
738
- meta: {
739
- quickStart: "Attach Points to render point-list MeshAsset vertices in screen pixels.",
740
- diagnostics: "Inspect sizePx and decode shape with pointShapeFromU32.",
741
- recovery: "Use points-lines-invalid-style for non-finite or non-positive sizePx values.",
742
- boundaries: "Points owns raster size and shape only; MeshFilter and MeshRenderer own geometry and material."
743
- }
744
- }
745
- );
746
- var schema = {
747
- shader: "string",
748
- data: "buffer"
749
- };
750
- var PostProcessParams = defineComponent("PostProcessParams", schema);
751
- var SceneInstance = defineComponent(
752
- "SceneInstance",
753
- {
754
- source: { type: "shared<SceneAsset>" },
755
- mapping: { type: "array<entity>" },
756
- // The unique slot is the ECS storage seam for the instance's structured
757
- // runtime payload; keep the nested semantic visible to schema consumers.
758
- state: { type: "unique<SceneInstanceState>", shape: "nested" }
759
- },
760
- { transient: true }
761
- );
762
- var SKYBOX_MODE_CUBEMAP = 0;
763
- var SkyboxBackground = defineComponent("SkyboxBackground", {
764
- // The GPU skybox projection is render-owned presentation state; restore
765
- // keeps the portable mode/rotation controls and lets the owner re-resolve
766
- // the environment asset on the target world.
767
- equirect: { type: "shared<EquirectAsset>", simulationTransient: true },
768
- mode: { type: "f32", default: SKYBOX_MODE_CUBEMAP },
769
- rotation: { type: "array<f32, 4>", default: new Float32Array([0, 0, 0, 1]) }
770
- });
771
- var Skylight = defineComponent("Skylight", {
772
- // The GPU equirect-to-cubemap projection is render-owned presentation
773
- // state. Record/restore preserves the portable lighting controls while the
774
- // render owner resolves this asset again on the target world.
775
- equirect: { type: "shared<EquirectAsset>", simulationTransient: true },
776
- // color carries an explicit layer-2 default [1,1,1] (white); the array
777
- // layer-3 fallback is all-zero, so the default MUST be explicit (D-5).
778
- color: { type: "array<f32, 3>", default: new Float32Array([1, 1, 1]) },
779
- intensity: { type: "f32", default: 1 },
780
- rotation: { type: "array<f32, 4>", default: new Float32Array([0, 0, 0, 1]) }
781
- });
782
- var SortKey = defineComponent("SortKey", {
783
- value: { type: "f32", default: 0 }
784
- });
785
- var SpotLight = defineComponent("SpotLight", {
786
- // direction has no default (D-5): omitting it lands the array layer-3
787
- // all-zero, which validate() rejects. color carries an explicit layer-2
788
- // default [1,1,1] (white); the array layer-3 fallback is all-zero.
789
- direction: { type: "array<f32, 3>" },
790
- color: { type: "array<f32, 3>", default: new Float32Array([1, 1, 1]) },
791
- intensity: { type: "f32", default: 1 },
792
- range: { type: "f32", default: 10 },
793
- innerConeDeg: { type: "f32", default: 0 },
794
- outerConeDeg: { type: "f32", default: 45 },
795
- // Shadow opt-out gate: defaults to true so zero-config spawns cast shadows.
796
- castShadow: { type: "bool", default: true },
797
- // 6 shadow fields aligned with DirectionalLight (plan-strategy D-6).
798
- mapSize: { type: "f32", default: 2048 },
799
- depthBias: { type: "f32", default: 5e-3 },
800
- normalBias: { type: "f32", default: 0.05 },
801
- nearPlane: { type: "f32", default: 0.1 },
802
- farPlane: { type: "f32", default: 50 },
803
- pcfKernelSize: { type: "f32", default: 3 }
804
- });
805
- var VisibilityStateValue = Object.freeze({
806
- inherited: 0,
807
- hidden: 1,
808
- visible: 2
809
- });
810
- function visibilityStateFromU32(value) {
811
- switch (value) {
812
- case VisibilityStateValue.inherited:
813
- return "inherited";
814
- case VisibilityStateValue.hidden:
815
- return "hidden";
816
- case VisibilityStateValue.visible:
817
- return "visible";
818
- default:
819
- return void 0;
820
- }
712
+ function unavailableError(options, reason) {
713
+ const recovery = reason === "capability-missing" ? "enable-capability" : reason === "renderer-recovering" ? "renderer-recover" : "next-frame";
714
+ return new SceneDataUnavailableError({
715
+ featureIdentity: options.featureIdentity,
716
+ schema: SCENE_DATA_TEMPORAL_V1_SCHEMA,
717
+ lane: options.lane ?? "direct",
718
+ reason,
719
+ missingContributorIds: options.missingContributorIds ?? [],
720
+ omittedMissingContributorCount: 0,
721
+ recovery
722
+ });
821
723
  }
822
- var Visibility = defineComponent(
823
- "Visibility",
824
- {
825
- state: {
826
- type: "enum",
827
- default: VisibilityStateValue.inherited,
828
- labels: VisibilityStateValue
829
- }
830
- },
831
- {
832
- meta: {
833
- quickStart: "Attach Visibility to author render participation intent.",
834
- diagnostics: "Compare the ECS state with resolveVisibility and renderer.visibilityStats.",
835
- recovery: "Use structured ECS write errors and repair the owning scene relation.",
836
- boundaries: "Visibility does not own camera, picking, lifecycle, assets, or VFX shadow policy."
724
+ function createSceneDataCatalog(options) {
725
+ const state = availability(options);
726
+ const owner = {
727
+ featureIdentity: options.featureIdentity,
728
+ planIdentity: options.planIdentity,
729
+ generation: options.generation
730
+ };
731
+ const missing = [...options.missingContributorIds ?? []];
732
+ const inspectionBase = {
733
+ schema: SCENE_DATA_TEMPORAL_V1_SCHEMA,
734
+ generation: options.generation,
735
+ planIdentity: options.planIdentity,
736
+ lane: options.lane ?? "direct",
737
+ missingContributorIds: Object.freeze(missing.slice(0, 32)),
738
+ omittedMissingContributorCount: Math.max(0, missing.length - 32)
739
+ };
740
+ return {
741
+ schema: SCENE_DATA_TEMPORAL_V1_SCHEMA,
742
+ generation: options.generation,
743
+ planIdentity: options.planIdentity,
744
+ availability: state,
745
+ require(schema) {
746
+ if (schema !== SCENE_DATA_TEMPORAL_V1_SCHEMA || state.status !== "available") {
747
+ if (state.status === "unavailable") throw unavailableError(options, state.reason);
748
+ throw tokenError(options, "require scene-data target");
749
+ }
750
+ return createTarget(options);
751
+ },
752
+ validate(target, generation = options.generation) {
753
+ const targetOwner = sceneDataTargetOwner(target);
754
+ if (targetOwner === void 0) {
755
+ return err(
756
+ sceneDataTokenMismatch("validate scene-data target", "foreign-feature", owner, target)
757
+ );
758
+ }
759
+ if (targetOwner.planIdentity !== owner.planIdentity || targetOwner.featureIdentity !== owner.featureIdentity) {
760
+ return err(
761
+ sceneDataTokenMismatch("validate scene-data target", "foreign-feature", owner, target)
762
+ );
763
+ }
764
+ if (generation !== owner.generation || targetOwner.generation !== owner.generation) {
765
+ return err(
766
+ sceneDataTokenMismatch(
767
+ "validate scene-data target",
768
+ "generation-mismatch",
769
+ owner,
770
+ target
771
+ )
772
+ );
773
+ }
774
+ if (target.access !== "sampled-read") {
775
+ return err(
776
+ sceneDataTokenMismatch("validate scene-data target", "layout-mismatch", owner, target)
777
+ );
778
+ }
779
+ return ok(target);
780
+ },
781
+ inspect() {
782
+ return Object.freeze(
783
+ state.status === "available" ? { ...inspectionBase, status: state.status, completeness: state.completeness } : { ...inspectionBase, status: state.status, reason: state.reason }
784
+ );
837
785
  }
838
- }
839
- );
786
+ };
787
+ }
840
788
 
841
789
  // src/pipeline/standard-profile.ts
842
790
  var STANDARD_PIPELINE_ID = "forgeax::standard";
@@ -845,6 +793,14 @@ var DEFAULT_CLUSTER_GRID = { x: 16, y: 9, z: 24 };
845
793
  var CLUSTER_GRID_STRIDE_U32 = 2;
846
794
  var LIGHT_INDEX_LIST_CAPACITY = 1048576;
847
795
  var MAX_LIGHTS = 256;
796
+ var STANDARD_POST_STAGE_NAMES = [
797
+ "transparent-blend",
798
+ "bloom",
799
+ "output-transform",
800
+ "fxaa",
801
+ "post-effect",
802
+ "present"
803
+ ];
848
804
  var DEFAULT_STANDARD_PROFILE = Object.freeze({
849
805
  pipelineId: STANDARD_PIPELINE_ID,
850
806
  lightCount: 32,
@@ -853,12 +809,8 @@ var DEFAULT_STANDARD_PROFILE = Object.freeze({
853
809
  pbr: true,
854
810
  ibl: true,
855
811
  ssao: false,
856
- bloom: true,
857
- tone: "aces-filmic",
858
- antialias: "fxaa",
859
- sky: true,
860
812
  fallback: "native",
861
- postStages: ["transparent-blend", "bloom", "tone", "fxaa", "output"]
813
+ postStages: STANDARD_POST_STAGE_NAMES
862
814
  });
863
815
  function resolveStandardLane(profile, capabilities) {
864
816
  if (!capabilities.compute || !capabilities.storageBuffer) return "cpu-webgl2";
@@ -866,7 +818,7 @@ function resolveStandardLane(profile, capabilities) {
866
818
  }
867
819
 
868
820
  // src/render-contract.ts
869
- var STANDARD_TONEMAP_FEATURE_ID = "forgeax::standard::tonemap";
821
+ var STANDARD_OUTPUT_TRANSFORM_FEATURE_ID = "forgeax::standard::output-transform";
870
822
  var RENDER_GRAPH_EXECUTION_PHASE_CATALOG = [
871
823
  "record/graph-execute/point-shadow",
872
824
  "record/graph-execute/cluster-binner-upload",
@@ -883,7 +835,8 @@ var RENDER_GRAPH_EXECUTION_PHASE_CATALOG = [
883
835
  "record/graph-execute/forward/material-bind-groups",
884
836
  "record/graph-execute/forward/pipeline-selection",
885
837
  "record/graph-execute/forward/draw-submit",
886
- "record/graph-execute/tonemap",
838
+ "record/graph-execute/output-transform",
839
+ "record/graph-execute/present",
887
840
  "record/graph-execute/debug-overlay",
888
841
  "record/graph-execute/shadow",
889
842
  "record/graph-execute/spot-shadow",
@@ -942,211 +895,7 @@ var RENDER_PHASE_CATALOG = [
942
895
  "record",
943
896
  ...RENDER_RECORD_PHASE_CATALOG
944
897
  ];
945
- function invalidStyle(input, component, field, value, expected) {
946
- return err(new PointsLinesInvalidStyleError({ entity: input.entity, component, field, value, expected }));
947
- }
948
- function topologyMismatch(input, submesh, expected, actual) {
949
- return err(new PointsLinesTopologyMismatchError({ entity: input.entity, submesh, expected, actual }));
950
- }
951
- function checkStyle(input) {
952
- const hasPoints = input.points !== void 0;
953
- const hasLines = input.lines !== void 0;
954
- if (hasPoints && hasLines) {
955
- return invalidStyle(
956
- input,
957
- "Points/Lines",
958
- "components",
959
- "Points + Lines",
960
- "exactly one style component"
961
- );
962
- }
963
- if (!hasPoints && !hasLines) {
964
- return invalidStyle(input, "Points/Lines", "components", void 0, "one style component");
965
- }
966
- if (hasPoints) {
967
- const sizePx = input.points?.sizePx ?? 4;
968
- const shapeValue = input.points?.shape ?? PointShapeValue.square;
969
- const shape = pointShapeFromU32(shapeValue);
970
- if (!Number.isFinite(sizePx) || sizePx <= 0) {
971
- return invalidStyle(input, "Points", "sizePx", sizePx, "finite sizePx > 0");
972
- }
973
- if (shape === void 0) {
974
- return invalidStyle(input, "Points", "shape", shapeValue, "shape is 'square' or 'circle'");
975
- }
976
- return ok({ component: "Points", shape, sizePx });
977
- }
978
- const widthPx = input.lines?.widthPx ?? 1;
979
- if (!Number.isFinite(widthPx) || widthPx <= 0) {
980
- return invalidStyle(input, "Lines", "widthPx", widthPx, "finite widthPx > 0");
981
- }
982
- return ok({ component: "Lines", widthPx });
983
- }
984
- function checkTopology(input, component) {
985
- const expected = component === "Points" ? "point-list" : "line-list";
986
- let pointCount = 0;
987
- let segmentCount = 0;
988
- const acceptedSubmeshes = [];
989
- let sawNonEmpty = false;
990
- for (const [submeshIndex, submesh] of input.mesh.submeshes.entries()) {
991
- const indexed = input.mesh.indices !== void 0 && submesh.indexCount > 0;
992
- const elementCount = indexed ? submesh.indexCount : submesh.vertexCount;
993
- if (elementCount === 0) continue;
994
- sawNonEmpty = true;
995
- if (component === "Lines" && submesh.topology === "line-strip") {
996
- return err(
997
- new PointsLinesStyleUnsupportedError({
998
- lane: "admission",
999
- field: "topology",
1000
- member: "line-strip",
1001
- supported: ["line-list"]
1002
- })
1003
- );
1004
- }
1005
- if (submesh.topology !== expected) {
1006
- return topologyMismatch(input, submeshIndex, expected, submesh.topology);
1007
- }
1008
- if (component === "Lines" && elementCount % 2 !== 0) {
1009
- return topologyMismatch(input, submeshIndex, "line-list pairs", "line-list odd tail");
1010
- }
1011
- acceptedSubmeshes.push(submeshIndex);
1012
- if (component === "Points") pointCount += elementCount;
1013
- else segmentCount += elementCount / 2;
1014
- }
1015
- if (!sawNonEmpty) return topologyMismatch(input, 0, expected, "empty-range");
1016
- return ok({ pointCount, segmentCount, submeshes: acceptedSubmeshes });
1017
- }
1018
- function checkMaterial(input) {
1019
- const passes = input.material.passes ?? [];
1020
- const unlitModules = /* @__PURE__ */ new Set(["forgeax_material::unlit", "forgeax::default-unlit"]);
1021
- if (passes.length !== 1 || passes[0] === void 0) {
1022
- const pass2 = passes.find(
1023
- (candidate) => candidate.name === "deferred" || candidate.name === "shadow-caster"
1024
- ) ?? passes[0];
1025
- return err(
1026
- new PointsLinesMaterialUnsupportedError({
1027
- entity: input.entity,
1028
- material: input.materialId ?? "<anonymous>",
1029
- pass: pass2?.name ?? "<empty>",
1030
- module: pass2?.program.module ?? "<empty>",
1031
- reason: "points-lines admission requires one unlit forward pass"
1032
- })
1033
- );
1034
- }
1035
- const pass = passes[0];
1036
- const lightMode = pass.renderState?.tags?.LightMode;
1037
- if (!unlitModules.has(pass.program.module) || pass.name !== "forward" || lightMode === "ShadowCaster") {
1038
- return err(
1039
- new PointsLinesMaterialUnsupportedError({
1040
- entity: input.entity,
1041
- material: input.materialId ?? "<anonymous>",
1042
- pass: pass.name,
1043
- module: pass.program.module,
1044
- reason: "points-lines admission requires an engine-owned unlit forward pass"
1045
- })
1046
- );
1047
- }
1048
- return ok(void 0);
1049
- }
1050
- function admitPointsLines(input) {
1051
- const style = checkStyle(input);
1052
- if (!style.ok) return style;
1053
- const topology = checkTopology(input, style.value.component);
1054
- if (!topology.ok) return topology;
1055
- const material = checkMaterial(input);
1056
- if (!material.ok) return material;
1057
- if (style.value.component === "Points" && input.limits?.maxPoints !== void 0) {
1058
- if (topology.value.pointCount > input.limits.maxPoints) {
1059
- return err(
1060
- new PointsLinesBudgetExceededError({
1061
- lane: "admission",
1062
- requested: topology.value.pointCount,
1063
- limit: input.limits.maxPoints,
1064
- unit: "points"
1065
- })
1066
- );
1067
- }
1068
- }
1069
- if (style.value.component === "Lines" && input.limits?.maxSegments !== void 0) {
1070
- if (topology.value.segmentCount > input.limits.maxSegments) {
1071
- return err(
1072
- new PointsLinesBudgetExceededError({
1073
- lane: "admission",
1074
- requested: topology.value.segmentCount,
1075
- limit: input.limits.maxSegments,
1076
- unit: "segments"
1077
- })
1078
- );
1079
- }
1080
- }
1081
- return ok({ ...style.value, ...topology.value });
1082
- }
1083
- function resolveVisibility(world, hierarchy = projectHierarchy(world)) {
1084
- const query = world.query({ read: [Entity], optional: [Visibility] });
1085
- let intentCount = 0;
1086
- let hasAnyHiddenIntent = false;
1087
- if (query.ok) {
1088
- for (const row of query.value) {
1089
- const visibility = row.get(Visibility);
1090
- if (visibility === void 0) continue;
1091
- intentCount += 1;
1092
- if (visibility.state === VisibilityStateValue.hidden) {
1093
- hasAnyHiddenIntent = true;
1094
- }
1095
- }
1096
- }
1097
- let resolveEntity;
1098
- let hasIntent;
1099
- const ensureResolver = () => {
1100
- if (resolveEntity !== void 0) return;
1101
- const intentByEntity = /* @__PURE__ */ new Map();
1102
- if (query.ok) {
1103
- for (const row of query.value) {
1104
- const raw = row.get(Visibility);
1105
- const intent = raw === void 0 ? void 0 : visibilityStateFromU32(raw.state);
1106
- if (intent !== void 0) {
1107
- intentByEntity.set(row.entity, intent);
1108
- }
1109
- }
1110
- }
1111
- hasIntent = (entity) => intentByEntity.has(entity);
1112
- const resolved = /* @__PURE__ */ new Map();
1113
- const resolving = /* @__PURE__ */ new Set();
1114
- resolveEntity = (entity) => {
1115
- const existing = resolved.get(entity);
1116
- if (existing !== void 0) return existing;
1117
- if (resolving.has(entity)) return void 0;
1118
- const intent = intentByEntity.get(entity) ?? "inherited";
1119
- resolving.add(entity);
1120
- let result;
1121
- if (intent === "hidden") {
1122
- result = { intent, effective: "hidden", source: "self" };
1123
- } else if (intent === "visible") {
1124
- result = { intent, effective: "visible", source: "self" };
1125
- } else {
1126
- const parent = hierarchy.getParent(entity);
1127
- const parentResult = parent === void 0 ? void 0 : resolveEntity?.(parent);
1128
- result = parentResult === void 0 ? { intent, effective: "visible", source: "default" } : { intent, effective: parentResult.effective, source: "parent" };
1129
- }
1130
- resolving.delete(entity);
1131
- resolved.set(entity, result);
1132
- return result;
1133
- };
1134
- };
1135
- return {
1136
- diagnostics: hierarchy.diagnostics,
1137
- hasAnyIntent: intentCount > 0,
1138
- hasAnyHiddenIntent,
1139
- get(entity) {
1140
- ensureResolver();
1141
- return hasIntent?.(entity) ? resolveEntity?.(entity) : void 0;
1142
- },
1143
- effective(entity) {
1144
- ensureResolver();
1145
- return resolveEntity?.(entity)?.effective ?? "visible";
1146
- }
1147
- };
1148
- }
1149
898
 
1150
- export { ANTIALIAS_FXAA, ANTIALIAS_MSAA, ANTIALIAS_NONE, BLOOM_DISABLED, BLOOM_ENABLED, CAMERA_PROJECTION_ORTHOGRAPHIC, CAMERA_PROJECTION_PERSPECTIVE, CLUSTER_GRID_STRIDE_U32, Camera, DEFAULT_CLUSTER_GRID, DEFAULT_STANDARD_PROFILE, DirectionalLight, EquirectProjectionFailedError, FrameReceiptStaleError, HdrpDeferredCapsInsufficientError, HdrpIndexListOverflowError, HdrpLightBudgetExceededError, Instances, LIGHT_INDEX_LIST_CAPACITY, Layer, LifecycleConstructionError, Lines, MAX_LIGHTS, MaterialSkinAttrMissingError, MeshFilter, MeshRenderer, ObservationUnavailableError, PointLight, PointLightShadow, PointShadowAtlasBoundsViolationError, PointShadowAtlasUninitializedError, PointShapeValue, Points, PointsLinesMaterialUnsupportedError, PointsLinesPrepareFailedError, PostProcessParams, RENDER_PHASE_CATALOG, RenderFeatureCapabilityMissingError, RenderFeatureDrawRecordingFailedError, RenderFeaturePreparationFailedError, RenderFeaturePreparedStateMismatchError, RenderFeatureRegistrationConflictError, RenderFeatureStageFailedError, RendererContractFailureError, RendererOperationError, SKYBOX_MODE_CUBEMAP, STANDARD_LIGHT_COUNTS, STANDARD_PIPELINE_ID, STANDARD_TONEMAP_FEATURE_ID, SceneInstance, ShadowInvalidConfigError, SkinMaterialMismatchError, SkinPaletteOverflowError, SkyboxBackground, Skylight, SortKey, SpotLight, TONEMAP_ACES_FILMIC, TONEMAP_AGX, TONEMAP_CINEON, TONEMAP_LINEAR, TONEMAP_NEUTRAL, TONEMAP_NONE, TONEMAP_REINHARD, TONEMAP_REINHARD_EXTENDED, VertexColorVariantConflictError, VideoUploadUnsupportedError, Visibility, VisibilityStateValue, admitPointsLines, antialiasFromF32, bloomEnabledFromF32, cameraProjectionFromF32, orthographic, perspective, pointShapeFromU32, resolveStandardLane, resolveVisibility, tonemapFromF32, tonemapToU32, visibilityStateFromU32 };
1151
- //# sourceMappingURL=chunk-YEJIUW7D.mjs.map
1152
- //# sourceMappingURL=chunk-YEJIUW7D.mjs.map
899
+ export { AtmosphereInvalidParameterError, CLUSTER_GRID_STRIDE_U32, DEFAULT_CLUSTER_GRID, DEFAULT_STANDARD_PROFILE, EnvironmentGenerationFailedError, EnvironmentSourceConflictError, EquirectProjectionFailedError, FogCardinalityError, FrameReceiptStaleError, HdrpDeferredCapsInsufficientError, HdrpIndexListOverflowError, HdrpLightBudgetExceededError, LIGHT_INDEX_LIST_CAPACITY, LifecycleConstructionError, MAX_LIGHTS, MaterialSkinAttrMissingError, ObservationUnavailableError, OwnerStageFailedError, PointShadowAtlasBoundsViolationError, PointShadowAtlasUninitializedError, PointsLinesBudgetExceededError, PointsLinesInvalidStyleError, PointsLinesMaterialUnsupportedError, PointsLinesPrepareFailedError, PointsLinesStyleUnsupportedError, PointsLinesTopologyMismatchError, RENDER_PHASE_CATALOG, RenderFeatureCapabilityMissingError, RenderFeatureDrawRecordingFailedError, RenderFeaturePreparationFailedError, RenderFeaturePreparedStateMismatchError, RenderFeatureRegistrationConflictError, RenderFeatureStageFailedError, RendererContractFailureError, RendererOperationError, SCENE_DATA_TEMPORAL_V1_DESCRIPTOR, SCENE_DATA_TEMPORAL_V1_SCHEMA, STANDARD_LIGHT_COUNTS, STANDARD_OUTPUT_TRANSFORM_FEATURE_ID, STANDARD_PIPELINE_ID, STANDARD_POST_STAGE_NAMES, SceneDataUnavailableError, ShadowInvalidConfigError, SkinMaterialMismatchError, SkinPaletteOverflowError, TaaCapsInsufficientError, TransmissionCapabilityMissingError, VertexColorVariantConflictError, VideoUploadUnsupportedError, createSceneDataCatalog, isSceneDataTarget, registerSceneDataTarget, resolveStandardLane, sceneDataError, sceneDataTargetAsAttachment, sceneDataTargetOwner, sceneDataTokenMismatch };
900
+ //# sourceMappingURL=chunk-LOSO4CTV.mjs.map
901
+ //# sourceMappingURL=chunk-LOSO4CTV.mjs.map