@forgeax/engine-render 0.1.6 → 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 (713) hide show
  1. package/README.md +279 -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 +19 -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/material/assembly.d.ts.map +1 -1
  10. package/dist/assembly/renderer-frame-transaction.d.ts +39 -0
  11. package/dist/assembly/renderer-frame-transaction.d.ts.map +1 -0
  12. package/dist/assembly/renderer-inspection.d.ts +22 -0
  13. package/dist/assembly/renderer-inspection.d.ts.map +1 -0
  14. package/dist/assembly/renderer-lifecycle.d.ts +4 -0
  15. package/dist/assembly/renderer-lifecycle.d.ts.map +1 -0
  16. package/dist/authoring.d.ts +1 -0
  17. package/dist/authoring.d.ts.map +1 -1
  18. package/dist/authoring.mjs +4 -2
  19. package/dist/authoring.mjs.map +1 -1
  20. package/dist/chunk-FJ6P52EE.mjs +46 -0
  21. package/dist/chunk-FJ6P52EE.mjs.map +1 -0
  22. package/dist/chunk-IPXCABEP.mjs +73 -0
  23. package/dist/chunk-IPXCABEP.mjs.map +1 -0
  24. package/dist/chunk-JDWARUOI.mjs +44 -0
  25. package/dist/chunk-JDWARUOI.mjs.map +1 -0
  26. package/dist/chunk-LOSO4CTV.mjs +901 -0
  27. package/dist/chunk-LOSO4CTV.mjs.map +1 -0
  28. package/dist/chunk-PCHBPYML.mjs +385 -0
  29. package/dist/chunk-PCHBPYML.mjs.map +1 -0
  30. package/dist/chunk-RJRUS55L.mjs +9323 -0
  31. package/dist/chunk-RJRUS55L.mjs.map +1 -0
  32. package/dist/{chunk-QC4VW3XJ.mjs → chunk-RXZ3RGOU.mjs} +4 -30
  33. package/dist/chunk-RXZ3RGOU.mjs.map +1 -0
  34. package/dist/{chunk-CQXZC5XI.mjs → chunk-VFPLTKCU.mjs} +79 -69
  35. package/dist/chunk-VFPLTKCU.mjs.map +1 -0
  36. package/dist/{chunk-SCRSAK5B.mjs → chunk-YTQ5C7YQ.mjs} +231 -127
  37. package/dist/chunk-YTQ5C7YQ.mjs.map +1 -0
  38. package/dist/components/atmosphere.d.ts +9 -0
  39. package/dist/components/atmosphere.d.ts.map +1 -0
  40. package/dist/components/camera.d.ts +2 -1
  41. package/dist/components/camera.d.ts.map +1 -1
  42. package/dist/components/fog.d.ts +8 -0
  43. package/dist/components/fog.d.ts.map +1 -0
  44. package/dist/components/index.d.ts +5 -0
  45. package/dist/components/index.d.ts.map +1 -1
  46. package/dist/components/lines.d.ts +5 -0
  47. package/dist/components/lines.d.ts.map +1 -0
  48. package/dist/components/motion-blur.d.ts +7 -0
  49. package/dist/components/motion-blur.d.ts.map +1 -0
  50. package/dist/components/points.d.ts +15 -0
  51. package/dist/components/points.d.ts.map +1 -0
  52. package/dist/construct-renderer.d.ts +2 -2
  53. package/dist/construct-renderer.d.ts.map +1 -1
  54. package/dist/construct-renderer.mjs +11419 -16442
  55. package/dist/construct-renderer.mjs.map +1 -1
  56. package/dist/device/device-scope.d.ts +4 -0
  57. package/dist/device/device-scope.d.ts.map +1 -1
  58. package/dist/environment/frame.d.ts +60 -0
  59. package/dist/environment/frame.d.ts.map +1 -0
  60. package/dist/environment/generation.d.ts +21 -0
  61. package/dist/environment/generation.d.ts.map +1 -0
  62. package/dist/environment/graph.d.ts +4 -0
  63. package/dist/environment/graph.d.ts.map +1 -0
  64. package/dist/environment/inspection.d.ts +48 -0
  65. package/dist/environment/inspection.d.ts.map +1 -0
  66. package/dist/environment/lifecycle.d.ts +39 -0
  67. package/dist/environment/lifecycle.d.ts.map +1 -0
  68. package/dist/environment/signature.d.ts +25 -0
  69. package/dist/environment/signature.d.ts.map +1 -0
  70. package/dist/errors/render.d.ts +217 -1
  71. package/dist/errors/render.d.ts.map +1 -1
  72. package/dist/extract/camera.d.ts +5 -0
  73. package/dist/extract/camera.d.ts.map +1 -0
  74. package/dist/extract/environment.d.ts +74 -0
  75. package/dist/extract/environment.d.ts.map +1 -0
  76. package/dist/extract/visibility.d.ts +1 -1
  77. package/dist/extract/visibility.d.ts.map +1 -1
  78. package/dist/features/host.d.ts +9 -2
  79. package/dist/features/host.d.ts.map +1 -1
  80. package/dist/features/motion-blur/motion-blur-feature.d.ts +16 -0
  81. package/dist/features/motion-blur/motion-blur-feature.d.ts.map +1 -0
  82. package/dist/features/motion-blur/motion-blur-params.d.ts +25 -0
  83. package/dist/features/motion-blur/motion-blur-params.d.ts.map +1 -0
  84. package/dist/features/plan.d.ts +17 -2
  85. package/dist/features/plan.d.ts.map +1 -1
  86. package/dist/features/prepared-gpu-work.d.ts +3 -1
  87. package/dist/features/prepared-gpu-work.d.ts.map +1 -1
  88. package/dist/features/prepared-graphics.d.ts +2 -1
  89. package/dist/features/prepared-graphics.d.ts.map +1 -1
  90. package/dist/features/render-graph-raster.d.ts +7 -2
  91. package/dist/features/render-graph-raster.d.ts.map +1 -1
  92. package/dist/features/targets.d.ts +3 -0
  93. package/dist/features/targets.d.ts.map +1 -1
  94. package/dist/features/types.d.ts +12 -0
  95. package/dist/features/types.d.ts.map +1 -1
  96. package/dist/fullscreen-post-process-pass.d.ts +7 -1
  97. package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
  98. package/dist/gpu-driven/production-raster.d.ts.map +1 -1
  99. package/dist/gpu-scene.d.ts +2 -0
  100. package/dist/gpu-scene.d.ts.map +1 -1
  101. package/dist/ibl/skylight-bind-group.d.ts +5 -6
  102. package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
  103. package/dist/index.d.ts +21 -6
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.mjs +8 -4
  106. package/dist/index.mjs.map +1 -1
  107. package/dist/inspection-types.d.ts +46 -1
  108. package/dist/inspection-types.d.ts.map +1 -1
  109. package/dist/internal.d.ts +2 -0
  110. package/dist/internal.d.ts.map +1 -1
  111. package/dist/internal.mjs +2 -0
  112. package/dist/materials.d.ts +22 -0
  113. package/dist/materials.d.ts.map +1 -1
  114. package/dist/pbr-pipeline.d.ts +12 -6
  115. package/dist/pbr-pipeline.d.ts.map +1 -1
  116. package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
  117. package/dist/pipeline/standard-pipeline.d.ts +3 -0
  118. package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
  119. package/dist/pipeline/standard-post.d.ts +48 -0
  120. package/dist/pipeline/standard-post.d.ts.map +1 -0
  121. package/dist/pipeline/standard-profile.d.ts +3 -6
  122. package/dist/pipeline/standard-profile.d.ts.map +1 -1
  123. package/dist/pipeline-builder.d.ts +18 -0
  124. package/dist/pipeline-builder.d.ts.map +1 -1
  125. package/dist/pipeline-spec.d.ts.map +1 -1
  126. package/dist/plugin.d.ts.map +1 -1
  127. package/dist/points-lines/admission.d.ts +36 -0
  128. package/dist/points-lines/admission.d.ts.map +1 -0
  129. package/dist/points-lines/bounds.d.ts +8 -0
  130. package/dist/points-lines/bounds.d.ts.map +1 -0
  131. package/dist/points-lines/expansion-cache.d.ts +28 -0
  132. package/dist/points-lines/expansion-cache.d.ts.map +1 -0
  133. package/dist/points-lines/inspection.d.ts +53 -0
  134. package/dist/points-lines/inspection.d.ts.map +1 -0
  135. package/dist/points-lines/prepare.d.ts +67 -0
  136. package/dist/points-lines/prepare.d.ts.map +1 -0
  137. package/dist/points-lines/record.d.ts +60 -0
  138. package/dist/points-lines/record.d.ts.map +1 -0
  139. package/dist/points-lines/snapshot.d.ts +49 -0
  140. package/dist/points-lines/snapshot.d.ts.map +1 -0
  141. package/dist/record/frame-lighting.d.ts.map +1 -1
  142. package/dist/record/frame-snapshot.d.ts +100 -5
  143. package/dist/record/frame-snapshot.d.ts.map +1 -1
  144. package/dist/record/frame-targets.d.ts.map +1 -1
  145. package/dist/record/frame.d.ts +4 -2
  146. package/dist/record/frame.d.ts.map +1 -1
  147. package/dist/record/main-pass-geometry.d.ts +18 -0
  148. package/dist/record/main-pass-geometry.d.ts.map +1 -1
  149. package/dist/record/main-pass-material.d.ts +8 -5
  150. package/dist/record/main-pass-material.d.ts.map +1 -1
  151. package/dist/record/main-pass-sprite-draws.d.ts +8 -1
  152. package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
  153. package/dist/record/main-pass.d.ts +2 -0
  154. package/dist/record/main-pass.d.ts.map +1 -1
  155. package/dist/record/mesh-ssbo.d.ts.map +1 -1
  156. package/dist/record/render-context.d.ts +93 -18
  157. package/dist/record/render-context.d.ts.map +1 -1
  158. package/dist/record/shadow-pass.d.ts.map +1 -1
  159. package/dist/record/skybox-post-pass.d.ts +1 -11
  160. package/dist/record/skybox-post-pass.d.ts.map +1 -1
  161. package/dist/record/typed-frame-graph.d.ts +26 -2
  162. package/dist/record/typed-frame-graph.d.ts.map +1 -1
  163. package/dist/record/view-ubo.d.ts +10 -1
  164. package/dist/record/view-ubo.d.ts.map +1 -1
  165. package/dist/render-contract.d.ts +102 -10
  166. package/dist/render-contract.d.ts.map +1 -1
  167. package/dist/render-graph-primitives.d.ts.map +1 -1
  168. package/dist/render-pipeline.d.ts +50 -6
  169. package/dist/render-pipeline.d.ts.map +1 -1
  170. package/dist/render-system-extract.d.ts +32 -5
  171. package/dist/render-system-extract.d.ts.map +1 -1
  172. package/dist/render-system.d.ts +27 -5
  173. package/dist/render-system.d.ts.map +1 -1
  174. package/dist/scene/render-scene-types.d.ts +3 -0
  175. package/dist/scene/render-scene-types.d.ts.map +1 -1
  176. package/dist/scene/render-scene.d.ts +43 -2
  177. package/dist/scene/render-scene.d.ts.map +1 -1
  178. package/dist/temporal/coverage.d.ts +42 -0
  179. package/dist/temporal/coverage.d.ts.map +1 -0
  180. package/dist/temporal/frame-coordinator.d.ts +99 -0
  181. package/dist/temporal/frame-coordinator.d.ts.map +1 -0
  182. package/dist/temporal/gpu.d.ts +39 -0
  183. package/dist/temporal/gpu.d.ts.map +1 -0
  184. package/dist/temporal/history.d.ts +37 -0
  185. package/dist/temporal/history.d.ts.map +1 -0
  186. package/dist/temporal/index.d.ts +7 -0
  187. package/dist/temporal/index.d.ts.map +1 -0
  188. package/dist/temporal/index.mjs +8 -0
  189. package/dist/temporal/index.mjs.map +1 -0
  190. package/dist/temporal/inspection.d.ts +36 -0
  191. package/dist/temporal/inspection.d.ts.map +1 -0
  192. package/dist/temporal/scene-data-catalog.d.ts +48 -0
  193. package/dist/temporal/scene-data-catalog.d.ts.map +1 -0
  194. package/dist/temporal/scene-data.d.ts +43 -0
  195. package/dist/temporal/scene-data.d.ts.map +1 -0
  196. package/dist/temporal/standard-scene-data.d.ts +61 -0
  197. package/dist/temporal/standard-scene-data.d.ts.map +1 -0
  198. package/dist/temporal/taa-history-resources.d.ts +22 -0
  199. package/dist/temporal/taa-history-resources.d.ts.map +1 -0
  200. package/dist/temporal/taa-history-store.d.ts +27 -0
  201. package/dist/temporal/taa-history-store.d.ts.map +1 -0
  202. package/dist/temporal/taa-resolve.d.ts +15 -0
  203. package/dist/temporal/taa-resolve.d.ts.map +1 -0
  204. package/dist/temporal/temporal-view.d.ts +40 -0
  205. package/dist/temporal/temporal-view.d.ts.map +1 -0
  206. package/dist/temporal/transaction.d.ts +9 -0
  207. package/dist/temporal/transaction.d.ts.map +1 -0
  208. package/dist/temporal/view.d.ts +56 -0
  209. package/dist/temporal/view.d.ts.map +1 -0
  210. package/dist/transmission/backdrop.d.ts +147 -0
  211. package/dist/transmission/backdrop.d.ts.map +1 -0
  212. package/dist/transmission/inspection.d.ts +57 -0
  213. package/dist/transmission/inspection.d.ts.map +1 -0
  214. package/dist/transmission/oracle.d.ts +42 -0
  215. package/dist/transmission/oracle.d.ts.map +1 -0
  216. package/dist/transmission/projection.d.ts +37 -0
  217. package/dist/transmission/projection.d.ts.map +1 -0
  218. package/dist/typed-render-graph-primitives.d.ts +25 -2
  219. package/dist/typed-render-graph-primitives.d.ts.map +1 -1
  220. package/package.json +24 -19
  221. package/src/__tests__/ai-user-cold-start.integration.test.ts +59 -0
  222. package/src/__tests__/ai-user-public-surface.test-d.ts +45 -0
  223. package/src/__tests__/authoring-path.unit.test.ts +9 -0
  224. package/src/__tests__/bloom-exact-zero.unit.test.ts +202 -0
  225. package/src/__tests__/bloom-lifecycle.integration.test.ts +125 -0
  226. package/src/__tests__/construct-renderer-identity.unit.test.ts +4 -3
  227. package/src/__tests__/detached-inspection.integration.test.ts +177 -0
  228. package/src/__tests__/environment-fog-lanes.integration.test.ts +219 -0
  229. package/src/__tests__/environment-generation.integration.test.ts +141 -0
  230. package/src/__tests__/environment-selection.unit.test.ts +245 -0
  231. package/src/__tests__/factory-contract.integration.test.ts +1380 -9
  232. package/src/__tests__/frame-plan-contract.unit.test.ts +90 -0
  233. package/src/__tests__/fullscreen-feature-plan.unit.test.ts +7 -0
  234. package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +12 -2
  235. package/src/__tests__/gpu-driven-production.integration.test.ts +74 -22
  236. package/src/__tests__/gpu-driven-view-graph.integration.test.ts +37 -0
  237. package/src/__tests__/gpu-scene.unit.test.ts +10 -0
  238. package/src/__tests__/injection-kind-owner.test-d.ts +2 -1
  239. package/src/__tests__/material-contract-inventory.unit.test.ts +62 -0
  240. package/src/__tests__/material-cooked-projection.unit.test.ts +18 -124
  241. package/src/__tests__/material-static-dynamic-route.unit.test.ts +28 -28
  242. package/src/__tests__/materials-transmission-validation.unit.test.ts +36 -0
  243. package/src/__tests__/morph-feature-plan.unit.test.ts +7 -0
  244. package/src/__tests__/motion-blur.pixel.integration.test.ts +121 -0
  245. package/src/__tests__/public-surface.test-d.ts +15 -1
  246. package/src/__tests__/render-error-code-owner.test-d.ts +15 -0
  247. package/src/__tests__/render-error-detail-ssot.test-d.ts +11 -2
  248. package/src/__tests__/render-error-exhaustive.test-d.ts +22 -0
  249. package/src/__tests__/render-feature-errors.unit.test.ts +33 -3
  250. package/src/__tests__/render-feature-gpu-work.integration.test.ts +44 -0
  251. package/src/__tests__/render-feature-plan.test-d.ts +22 -89
  252. package/src/__tests__/render-scene-projection.unit.test.ts +28 -0
  253. package/src/__tests__/render-temporal-environment-consumer.browser.test.ts +26 -0
  254. package/src/__tests__/render-temporal-environment-consumer.dawn.test.ts +21 -0
  255. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +433 -1
  256. package/src/__tests__/renderer-frame-transaction.integration.test.ts +405 -0
  257. package/src/__tests__/renderer-lifecycle.integration.test.ts +22 -0
  258. package/src/__tests__/scene-data-catalog.unit.test.ts +59 -0
  259. package/src/__tests__/scene-data-consumer.integration.test.ts +67 -0
  260. package/src/__tests__/scene-data-contract.test-d.ts +35 -0
  261. package/src/__tests__/scene-data-inspection.unit.test.ts +41 -0
  262. package/src/__tests__/scene-data-public-surface.test-d.ts +34 -0
  263. package/src/__tests__/shader-manifest-fixture.ts +111 -0
  264. package/src/__tests__/skinned-shadow-caster.test.ts +102 -0
  265. package/src/__tests__/standard-clustered-pipeline.unit.test.ts +24 -3
  266. package/src/__tests__/standard-pipeline.dawn.test.ts +15 -0
  267. package/src/__tests__/standard-pipeline.integration.test.ts +543 -1
  268. package/src/__tests__/standard-profile-oracle.unit.test.ts +10 -2
  269. package/src/__tests__/standard-temporal-producer.integration.test.ts +35 -0
  270. package/src/__tests__/surface-configuration.unit.test.ts +211 -12
  271. package/src/__tests__/taa-transaction.integration.test.ts +30 -0
  272. package/src/__tests__/temporal-admission.integration.test.ts +40 -0
  273. package/src/__tests__/temporal-coverage.unit.test.ts +35 -0
  274. package/src/__tests__/temporal-demand.unit.test.ts +44 -0
  275. package/src/__tests__/temporal-frame-coordinator.unit.test.ts +64 -0
  276. package/src/__tests__/temporal-graph-topology.unit.test.ts +51 -0
  277. package/src/__tests__/temporal-history-lifecycle.unit.test.ts +170 -0
  278. package/src/__tests__/temporal-performance.integration.test.ts +615 -0
  279. package/src/__tests__/temporal-reset-matrix.unit.test.ts +97 -0
  280. package/src/__tests__/temporal-transaction.integration.test.ts +60 -0
  281. package/src/__tests__/temporal-view.unit.test.ts +152 -0
  282. package/src/__tests__/transmission-prewarm.unit.test.ts +93 -0
  283. package/src/__tests__/typed-pipeline-topology.unit.test.ts +230 -1
  284. package/src/__tests__/urp-pipeline-targets.unit.test.ts +25 -1
  285. package/src/__tests__/urp-pipeline.unit.test.ts +4 -3
  286. package/src/__tests__/visibility-extract.integration.test.ts +27 -1
  287. package/src/__tests__/visibility-producer-matrix.integration.test.ts +10 -0
  288. package/src/assembly/backend-contract.ts +47 -1
  289. package/src/assembly/factory.ts +1295 -507
  290. package/src/assembly/host-contract.ts +4 -0
  291. package/src/assembly/material/assembly.ts +2 -5
  292. package/src/assembly/renderer-frame-transaction.ts +75 -0
  293. package/src/assembly/renderer-inspection.ts +112 -0
  294. package/src/assembly/renderer-lifecycle.ts +6 -0
  295. package/src/authoring.ts +1 -0
  296. package/src/components/__tests__/motion-blur.unit.test.ts +14 -0
  297. package/src/components/__tests__/points-lines-admission.unit.test.ts +219 -0
  298. package/src/components/__tests__/points-lines-schema.unit.test.ts +56 -0
  299. package/src/components/__tests__/schema-contract.unit.test.ts +6 -1
  300. package/src/components/atmosphere.ts +10 -0
  301. package/src/components/camera.ts +2 -1
  302. package/src/components/fog.ts +9 -0
  303. package/src/components/index.ts +10 -0
  304. package/src/components/lines.ts +18 -0
  305. package/src/components/motion-blur.ts +8 -0
  306. package/src/components/points.ts +40 -0
  307. package/src/construct-renderer.ts +40 -3
  308. package/src/device/device-scope.ts +15 -1
  309. package/src/environment/frame.ts +185 -0
  310. package/src/environment/generation.ts +23 -0
  311. package/src/environment/graph.ts +9 -0
  312. package/src/environment/inspection.ts +87 -0
  313. package/src/environment/lifecycle.ts +250 -0
  314. package/src/environment/signature.ts +55 -0
  315. package/src/errors/render.ts +429 -1
  316. package/src/extract/camera.ts +78 -0
  317. package/src/extract/environment.ts +171 -0
  318. package/src/extract/visibility.ts +38 -19
  319. package/src/features/host.ts +36 -5
  320. package/src/features/motion-blur/__tests__/motion-blur-feature.unit.test.ts +67 -0
  321. package/src/features/motion-blur/__tests__/motion-blur-params.unit.test.ts +53 -0
  322. package/src/features/motion-blur/motion-blur-feature.ts +119 -0
  323. package/src/features/motion-blur/motion-blur-params.ts +89 -0
  324. package/src/features/plan.ts +32 -3
  325. package/src/features/prepared-gpu-work.ts +21 -6
  326. package/src/features/prepared-graphics.ts +2 -1
  327. package/src/features/render-graph-raster.ts +24 -4
  328. package/src/features/targets.ts +24 -2
  329. package/src/features/types.ts +13 -0
  330. package/src/fullscreen-post-process-pass.ts +34 -4
  331. package/src/gpu-driven/production-raster.ts +6 -1
  332. package/src/gpu-scene.ts +24 -0
  333. package/src/ibl/skylight-bind-group.ts +30 -38
  334. package/src/index.ts +83 -6
  335. package/src/inspection-types.ts +52 -0
  336. package/src/internal.ts +5 -0
  337. package/src/materials.ts +119 -24
  338. package/src/pbr-pipeline.ts +66 -20
  339. package/src/pipeline/standard-forward-lane.ts +158 -101
  340. package/src/pipeline/standard-pipeline.ts +156 -105
  341. package/src/pipeline/standard-post.ts +373 -0
  342. package/src/pipeline/standard-profile.ts +11 -11
  343. package/src/pipeline-builder.ts +102 -12
  344. package/src/pipeline-spec.ts +9 -0
  345. package/src/plugin.ts +6 -0
  346. package/src/points-lines/__tests__/bounds.unit.test.ts +21 -0
  347. package/src/points-lines/__tests__/cache-recovery.unit.test.ts +157 -0
  348. package/src/points-lines/__tests__/inspection-lanes.integration.test.ts +146 -0
  349. package/src/points-lines/__tests__/inspection.unit.test.ts +173 -0
  350. package/src/points-lines/__tests__/lane-structural.integration.test.ts +122 -0
  351. package/src/points-lines/__tests__/points-lines.bench.ts +400 -0
  352. package/src/points-lines/__tests__/raster-lane.integration.test.ts +44 -0
  353. package/src/points-lines/__tests__/snapshot.unit.test.ts +101 -0
  354. package/src/points-lines/__tests__/view-ubo.unit.test.ts +73 -0
  355. package/src/points-lines/admission.ts +238 -0
  356. package/src/points-lines/bounds.ts +23 -0
  357. package/src/points-lines/expansion-cache.ts +215 -0
  358. package/src/points-lines/inspection.ts +97 -0
  359. package/src/points-lines/prepare.ts +177 -0
  360. package/src/points-lines/record.ts +125 -0
  361. package/src/points-lines/snapshot.ts +130 -0
  362. package/src/record/__tests__/fullscreen-temporal-routing.unit.test.ts +25 -0
  363. package/src/record/__tests__/main-pass-geometry.unit.test.ts +47 -0
  364. package/src/record/__tests__/material-bg-cache.unit.test.ts +12 -1
  365. package/src/record/__tests__/material-pipeline-pending-cache.unit.test.ts +22 -0
  366. package/src/record/__tests__/sprite-material-abi.unit.test.ts +75 -0
  367. package/src/record/__tests__/standard-pbr-ubo-layout.unit.test.ts +67 -0
  368. package/src/record/__tests__/temporal-payload.unit.test.ts +164 -0
  369. package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +127 -0
  370. package/src/record/frame-lighting.ts +14 -2
  371. package/src/record/frame-snapshot.ts +129 -5
  372. package/src/record/frame-targets.ts +15 -6
  373. package/src/record/frame.ts +119 -4
  374. package/src/record/main-pass-geometry.ts +178 -40
  375. package/src/record/main-pass-material.ts +114 -66
  376. package/src/record/main-pass-sprite-draws.ts +79 -102
  377. package/src/record/main-pass.ts +83 -7
  378. package/src/record/mesh-ssbo.ts +22 -3
  379. package/src/record/render-context.ts +209 -23
  380. package/src/record/shadow-pass.ts +129 -28
  381. package/src/record/skybox-post-pass.ts +99 -42
  382. package/src/record/typed-frame-graph.ts +582 -42
  383. package/src/record/view-ubo.ts +99 -4
  384. package/src/render-contract.ts +121 -7
  385. package/src/render-graph-primitives.ts +18 -1
  386. package/src/render-pipeline.ts +100 -27
  387. package/src/render-system-extract.ts +264 -77
  388. package/src/render-system.ts +786 -43
  389. package/src/scene/render-scene-types.ts +3 -0
  390. package/src/scene/render-scene.ts +307 -9
  391. package/src/temporal/__tests__/taa-history-resources.unit.test.ts +45 -0
  392. package/src/temporal/coverage.ts +76 -0
  393. package/src/temporal/frame-coordinator.ts +311 -0
  394. package/src/temporal/gpu.ts +287 -0
  395. package/src/temporal/history.ts +92 -0
  396. package/src/temporal/index.ts +6 -0
  397. package/src/temporal/inspection.ts +97 -0
  398. package/src/temporal/scene-data-catalog.ts +200 -0
  399. package/src/temporal/scene-data.ts +149 -0
  400. package/src/temporal/standard-scene-data.ts +182 -0
  401. package/src/temporal/taa-history-resources.ts +128 -0
  402. package/src/temporal/taa-history-store.ts +79 -0
  403. package/src/temporal/taa-resolve.ts +34 -0
  404. package/src/temporal/temporal-view.ts +169 -0
  405. package/src/temporal/transaction.ts +17 -0
  406. package/src/temporal/view.ts +161 -0
  407. package/src/transmission/__tests__/capability.unit.test.ts +83 -0
  408. package/src/transmission/__tests__/composition.integration.test.ts +161 -0
  409. package/src/transmission/__tests__/inspection.unit.test.ts +241 -0
  410. package/src/transmission/__tests__/lifecycle.integration.test.ts +96 -0
  411. package/src/transmission/__tests__/oracle.unit.test.ts +131 -0
  412. package/src/transmission/__tests__/projection.unit.test.ts +71 -0
  413. package/src/transmission/__tests__/standard-transmission.dawn.test.ts +438 -0
  414. package/src/transmission/__tests__/transmission-backdrop-topology.unit.test.ts +109 -0
  415. package/src/transmission/__tests__/transmission-backdrop.dawn.test.ts +105 -0
  416. package/src/transmission/backdrop.ts +572 -0
  417. package/src/transmission/inspection.ts +190 -0
  418. package/src/transmission/oracle.ts +141 -0
  419. package/src/transmission/projection.ts +83 -0
  420. package/src/typed-render-graph-primitives.ts +162 -9
  421. package/dist/__tests__/authoring-path.unit.test.d.ts +0 -2
  422. package/dist/__tests__/authoring-path.unit.test.d.ts.map +0 -1
  423. package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts +0 -2
  424. package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts.map +0 -1
  425. package/dist/__tests__/callback-inference.test-d.d.ts +0 -2
  426. package/dist/__tests__/callback-inference.test-d.d.ts.map +0 -1
  427. package/dist/__tests__/cluster-binner.test.d.ts +0 -2
  428. package/dist/__tests__/cluster-binner.test.d.ts.map +0 -1
  429. package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts +0 -2
  430. package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts.map +0 -1
  431. package/dist/__tests__/construct-renderer-identity.unit.test.d.ts +0 -2
  432. package/dist/__tests__/construct-renderer-identity.unit.test.d.ts.map +0 -1
  433. package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts +0 -2
  434. package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts.map +0 -1
  435. package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts +0 -2
  436. package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts.map +0 -1
  437. package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts +0 -2
  438. package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts.map +0 -1
  439. package/dist/__tests__/direct-light-snapshot.unit.test.d.ts +0 -2
  440. package/dist/__tests__/direct-light-snapshot.unit.test.d.ts.map +0 -1
  441. package/dist/__tests__/factory-contract.integration.test.d.ts +0 -2
  442. package/dist/__tests__/factory-contract.integration.test.d.ts.map +0 -1
  443. package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts +0 -2
  444. package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts.map +0 -1
  445. package/dist/__tests__/frame-observation.contract.test.d.ts +0 -2
  446. package/dist/__tests__/frame-observation.contract.test.d.ts.map +0 -1
  447. package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts +0 -2
  448. package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts.map +0 -1
  449. package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts +0 -2
  450. package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts.map +0 -1
  451. package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts +0 -6
  452. package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts.map +0 -1
  453. package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts +0 -2
  454. package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts.map +0 -1
  455. package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts +0 -2
  456. package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts.map +0 -1
  457. package/dist/__tests__/gpu-driven-production.integration.test.d.ts +0 -2
  458. package/dist/__tests__/gpu-driven-production.integration.test.d.ts.map +0 -1
  459. package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts +0 -2
  460. package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts.map +0 -1
  461. package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts +0 -18
  462. package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts.map +0 -1
  463. package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts +0 -2
  464. package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts.map +0 -1
  465. package/dist/__tests__/gpu-driven-view-reference.d.ts +0 -15
  466. package/dist/__tests__/gpu-driven-view-reference.d.ts.map +0 -1
  467. package/dist/__tests__/gpu-driven-view.browser.test.d.ts +0 -2
  468. package/dist/__tests__/gpu-driven-view.browser.test.d.ts.map +0 -1
  469. package/dist/__tests__/gpu-driven-view.dawn.test.d.ts +0 -2
  470. package/dist/__tests__/gpu-driven-view.dawn.test.d.ts.map +0 -1
  471. package/dist/__tests__/gpu-driven-view.unit.test.d.ts +0 -2
  472. package/dist/__tests__/gpu-driven-view.unit.test.d.ts.map +0 -1
  473. package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts +0 -2
  474. package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts.map +0 -1
  475. package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts +0 -7
  476. package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts.map +0 -1
  477. package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts +0 -2
  478. package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts.map +0 -1
  479. package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts +0 -2
  480. package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts.map +0 -1
  481. package/dist/__tests__/gpu-scene-schema.unit.test.d.ts +0 -2
  482. package/dist/__tests__/gpu-scene-schema.unit.test.d.ts.map +0 -1
  483. package/dist/__tests__/gpu-scene.dawn.test.d.ts +0 -2
  484. package/dist/__tests__/gpu-scene.dawn.test.d.ts.map +0 -1
  485. package/dist/__tests__/gpu-scene.unit.test.d.ts +0 -2
  486. package/dist/__tests__/gpu-scene.unit.test.d.ts.map +0 -1
  487. package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts +0 -2
  488. package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts.map +0 -1
  489. package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts +0 -2
  490. package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts.map +0 -1
  491. package/dist/__tests__/injection-kind-owner.test-d.d.ts +0 -2
  492. package/dist/__tests__/injection-kind-owner.test-d.d.ts.map +0 -1
  493. package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts +0 -2
  494. package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts.map +0 -1
  495. package/dist/__tests__/light-buffer-layout.unit.test.d.ts +0 -2
  496. package/dist/__tests__/light-buffer-layout.unit.test.d.ts.map +0 -1
  497. package/dist/__tests__/material-contract-inventory.unit.test.d.ts +0 -2
  498. package/dist/__tests__/material-contract-inventory.unit.test.d.ts.map +0 -1
  499. package/dist/__tests__/material-cooked-projection.unit.test.d.ts +0 -2
  500. package/dist/__tests__/material-cooked-projection.unit.test.d.ts.map +0 -1
  501. package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts +0 -2
  502. package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts.map +0 -1
  503. package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts +0 -2
  504. package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts.map +0 -1
  505. package/dist/__tests__/material-stride-surface.unit.test.d.ts +0 -2
  506. package/dist/__tests__/material-stride-surface.unit.test.d.ts.map +0 -1
  507. package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts +0 -2
  508. package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts.map +0 -1
  509. package/dist/__tests__/mesh-material-bindings.unit.test.d.ts +0 -2
  510. package/dist/__tests__/mesh-material-bindings.unit.test.d.ts.map +0 -1
  511. package/dist/__tests__/mesh-stride-surface.unit.test.d.ts +0 -2
  512. package/dist/__tests__/mesh-stride-surface.unit.test.d.ts.map +0 -1
  513. package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts +0 -2
  514. package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts.map +0 -1
  515. package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts +0 -2
  516. package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts.map +0 -1
  517. package/dist/__tests__/morph-feature-plan.unit.test.d.ts +0 -2
  518. package/dist/__tests__/morph-feature-plan.unit.test.d.ts.map +0 -1
  519. package/dist/__tests__/morph-visual-evidence.integration.test.d.ts +0 -2
  520. package/dist/__tests__/morph-visual-evidence.integration.test.d.ts.map +0 -1
  521. package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts +0 -2
  522. package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts.map +0 -1
  523. package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts +0 -2
  524. package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts.map +0 -1
  525. package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts +0 -2
  526. package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts.map +0 -1
  527. package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts +0 -2
  528. package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts.map +0 -1
  529. package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts +0 -2
  530. package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts.map +0 -1
  531. package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts +0 -2
  532. package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts.map +0 -1
  533. package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts +0 -2
  534. package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts.map +0 -1
  535. package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts +0 -2
  536. package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts.map +0 -1
  537. package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts +0 -2
  538. package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts.map +0 -1
  539. package/dist/__tests__/prepared-graphics-store.unit.test.d.ts +0 -2
  540. package/dist/__tests__/prepared-graphics-store.unit.test.d.ts.map +0 -1
  541. package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts +0 -2
  542. package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts.map +0 -1
  543. package/dist/__tests__/profiler-default-off.test.d.ts +0 -2
  544. package/dist/__tests__/profiler-default-off.test.d.ts.map +0 -1
  545. package/dist/__tests__/profiler-phase-catalog.test.d.ts +0 -2
  546. package/dist/__tests__/profiler-phase-catalog.test.d.ts.map +0 -1
  547. package/dist/__tests__/profiler-phase-integration.test.d.ts +0 -2
  548. package/dist/__tests__/profiler-phase-integration.test.d.ts.map +0 -1
  549. package/dist/__tests__/profiler-phase-token.test.d.ts +0 -2
  550. package/dist/__tests__/profiler-phase-token.test.d.ts.map +0 -1
  551. package/dist/__tests__/public-surface.test-d.d.ts +0 -2
  552. package/dist/__tests__/public-surface.test-d.d.ts.map +0 -1
  553. package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts +0 -2
  554. package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts.map +0 -1
  555. package/dist/__tests__/render-error-code-owner.test-d.d.ts +0 -2
  556. package/dist/__tests__/render-error-code-owner.test-d.d.ts.map +0 -1
  557. package/dist/__tests__/render-error-detail-ssot.test-d.d.ts +0 -2
  558. package/dist/__tests__/render-error-detail-ssot.test-d.d.ts.map +0 -1
  559. package/dist/__tests__/render-error-exhaustive.test-d.d.ts +0 -2
  560. package/dist/__tests__/render-error-exhaustive.test-d.d.ts.map +0 -1
  561. package/dist/__tests__/render-feature-assembly.test-d.d.ts +0 -2
  562. package/dist/__tests__/render-feature-assembly.test-d.d.ts.map +0 -1
  563. package/dist/__tests__/render-feature-context.test-d.d.ts +0 -2
  564. package/dist/__tests__/render-feature-context.test-d.d.ts.map +0 -1
  565. package/dist/__tests__/render-feature-contract.test-d.d.ts +0 -2
  566. package/dist/__tests__/render-feature-contract.test-d.d.ts.map +0 -1
  567. package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts +0 -2
  568. package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts.map +0 -1
  569. package/dist/__tests__/render-feature-docs.unit.test.d.ts +0 -2
  570. package/dist/__tests__/render-feature-docs.unit.test.d.ts.map +0 -1
  571. package/dist/__tests__/render-feature-errors.unit.test.d.ts +0 -2
  572. package/dist/__tests__/render-feature-errors.unit.test.d.ts.map +0 -1
  573. package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts +0 -2
  574. package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts.map +0 -1
  575. package/dist/__tests__/render-feature-plan.test-d.d.ts +0 -2
  576. package/dist/__tests__/render-feature-plan.test-d.d.ts.map +0 -1
  577. package/dist/__tests__/render-feature-plan.unit.test.d.ts +0 -2
  578. package/dist/__tests__/render-feature-plan.unit.test.d.ts.map +0 -1
  579. package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts +0 -2
  580. package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts.map +0 -1
  581. package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts +0 -2
  582. package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts.map +0 -1
  583. package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts +0 -2
  584. package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts.map +0 -1
  585. package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts +0 -2
  586. package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts.map +0 -1
  587. package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts +0 -2
  588. package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts.map +0 -1
  589. package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts +0 -2
  590. package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts.map +0 -1
  591. package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts +0 -2
  592. package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts.map +0 -1
  593. package/dist/__tests__/render-feature-public-surface.test-d.d.ts +0 -2
  594. package/dist/__tests__/render-feature-public-surface.test-d.d.ts.map +0 -1
  595. package/dist/__tests__/render-feature-retry.unit.test.d.ts +0 -2
  596. package/dist/__tests__/render-feature-retry.unit.test.d.ts.map +0 -1
  597. package/dist/__tests__/render-feature-scheduling.unit.test.d.ts +0 -2
  598. package/dist/__tests__/render-feature-scheduling.unit.test.d.ts.map +0 -1
  599. package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts +0 -2
  600. package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts.map +0 -1
  601. package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts +0 -2
  602. package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts.map +0 -1
  603. package/dist/__tests__/render-feature-visibility-context.test-d.d.ts +0 -2
  604. package/dist/__tests__/render-feature-visibility-context.test-d.d.ts.map +0 -1
  605. package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts +0 -2
  606. package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts.map +0 -1
  607. package/dist/__tests__/render-feature-zero-work.unit.test.d.ts +0 -2
  608. package/dist/__tests__/render-feature-zero-work.unit.test.d.ts.map +0 -1
  609. package/dist/__tests__/render-graph-compute-raster-gpu.d.ts +0 -7
  610. package/dist/__tests__/render-graph-compute-raster-gpu.d.ts.map +0 -1
  611. package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts +0 -2
  612. package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts.map +0 -1
  613. package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts +0 -2
  614. package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts.map +0 -1
  615. package/dist/__tests__/render-graph-hzb-gpu.d.ts +0 -7
  616. package/dist/__tests__/render-graph-hzb-gpu.d.ts.map +0 -1
  617. package/dist/__tests__/render-graph-hzb.browser.test.d.ts +0 -2
  618. package/dist/__tests__/render-graph-hzb.browser.test.d.ts.map +0 -1
  619. package/dist/__tests__/render-graph-hzb.dawn.test.d.ts +0 -2
  620. package/dist/__tests__/render-graph-hzb.dawn.test.d.ts.map +0 -1
  621. package/dist/__tests__/render-graph-primitives.unit.test.d.ts +0 -2
  622. package/dist/__tests__/render-graph-primitives.unit.test.d.ts.map +0 -1
  623. package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts +0 -12
  624. package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts.map +0 -1
  625. package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts +0 -2
  626. package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts.map +0 -1
  627. package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts +0 -2
  628. package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts.map +0 -1
  629. package/dist/__tests__/render-scene-projection.unit.test.d.ts +0 -2
  630. package/dist/__tests__/render-scene-projection.unit.test.d.ts.map +0 -1
  631. package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts +0 -2
  632. package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts.map +0 -1
  633. package/dist/__tests__/renderer-lifecycle.integration.test.d.ts +0 -2
  634. package/dist/__tests__/renderer-lifecycle.integration.test.d.ts.map +0 -1
  635. package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts +0 -2
  636. package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts.map +0 -1
  637. package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts +0 -2
  638. package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts.map +0 -1
  639. package/dist/__tests__/shader-stage-surface.unit.test.d.ts +0 -2
  640. package/dist/__tests__/shader-stage-surface.unit.test.d.ts.map +0 -1
  641. package/dist/__tests__/ssao-config.unit.test.d.ts +0 -2
  642. package/dist/__tests__/ssao-config.unit.test.d.ts.map +0 -1
  643. package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts +0 -2
  644. package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts.map +0 -1
  645. package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts +0 -2
  646. package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts.map +0 -1
  647. package/dist/__tests__/standard-descriptors.test-d.d.ts +0 -2
  648. package/dist/__tests__/standard-descriptors.test-d.d.ts.map +0 -1
  649. package/dist/__tests__/standard-pipeline.dawn.test.d.ts +0 -2
  650. package/dist/__tests__/standard-pipeline.dawn.test.d.ts.map +0 -1
  651. package/dist/__tests__/standard-pipeline.integration.test.d.ts +0 -2
  652. package/dist/__tests__/standard-pipeline.integration.test.d.ts.map +0 -1
  653. package/dist/__tests__/standard-profile-oracle.unit.test.d.ts +0 -2
  654. package/dist/__tests__/standard-profile-oracle.unit.test.d.ts.map +0 -1
  655. package/dist/__tests__/surface-configuration.unit.test.d.ts +0 -2
  656. package/dist/__tests__/surface-configuration.unit.test.d.ts.map +0 -1
  657. package/dist/__tests__/texture-usage-surface.unit.test.d.ts +0 -2
  658. package/dist/__tests__/texture-usage-surface.unit.test.d.ts.map +0 -1
  659. package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts +0 -2
  660. package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts.map +0 -1
  661. package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts +0 -2
  662. package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts.map +0 -1
  663. package/dist/__tests__/urp-pipeline.unit.test.d.ts +0 -2
  664. package/dist/__tests__/urp-pipeline.unit.test.d.ts.map +0 -1
  665. package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts +0 -2
  666. package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts.map +0 -1
  667. package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts +0 -2
  668. package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts.map +0 -1
  669. package/dist/__tests__/visibility-diagnostics.integration.test.d.ts +0 -2
  670. package/dist/__tests__/visibility-diagnostics.integration.test.d.ts.map +0 -1
  671. package/dist/__tests__/visibility-extract.integration.test.d.ts +0 -2
  672. package/dist/__tests__/visibility-extract.integration.test.d.ts.map +0 -1
  673. package/dist/__tests__/visibility-extract.perf.test.d.ts +0 -2
  674. package/dist/__tests__/visibility-extract.perf.test.d.ts.map +0 -1
  675. package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts +0 -2
  676. package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts.map +0 -1
  677. package/dist/__tests__/visibility-hidden-report.unit.test.d.ts +0 -2
  678. package/dist/__tests__/visibility-hidden-report.unit.test.d.ts.map +0 -1
  679. package/dist/__tests__/visibility-instances.integration.test.d.ts +0 -2
  680. package/dist/__tests__/visibility-instances.integration.test.d.ts.map +0 -1
  681. package/dist/__tests__/visibility-multi-world.integration.test.d.ts +0 -2
  682. package/dist/__tests__/visibility-multi-world.integration.test.d.ts.map +0 -1
  683. package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts +0 -2
  684. package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts.map +0 -1
  685. package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts +0 -2
  686. package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts.map +0 -1
  687. package/dist/__tests__/visibility-public-surface.test-d.d.ts +0 -2
  688. package/dist/__tests__/visibility-public-surface.test-d.d.ts.map +0 -1
  689. package/dist/__tests__/visibility-resolver.unit.test.d.ts +0 -2
  690. package/dist/__tests__/visibility-resolver.unit.test.d.ts.map +0 -1
  691. package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts +0 -2
  692. package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts.map +0 -1
  693. package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts +0 -2
  694. package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts.map +0 -1
  695. package/dist/__tests__/vocabulary.unit.test.d.ts +0 -2
  696. package/dist/__tests__/vocabulary.unit.test.d.ts.map +0 -1
  697. package/dist/chunk-CQXZC5XI.mjs.map +0 -1
  698. package/dist/chunk-QC4VW3XJ.mjs.map +0 -1
  699. package/dist/chunk-SCRSAK5B.mjs.map +0 -1
  700. package/dist/components/__tests__/schema-contract.unit.test.d.ts +0 -2
  701. package/dist/components/__tests__/schema-contract.unit.test.d.ts.map +0 -1
  702. package/dist/components/__tests__/schema-parity.unit.test.d.ts +0 -2
  703. package/dist/components/__tests__/schema-parity.unit.test.d.ts.map +0 -1
  704. package/dist/components/__tests__/visibility-schema.unit.test.d.ts +0 -2
  705. package/dist/components/__tests__/visibility-schema.unit.test.d.ts.map +0 -1
  706. package/dist/record/__tests__/material-bg-cache.unit.test.d.ts +0 -2
  707. package/dist/record/__tests__/material-bg-cache.unit.test.d.ts.map +0 -1
  708. package/dist/record/__tests__/material-slot-plan.unit.test.d.ts +0 -2
  709. package/dist/record/__tests__/material-slot-plan.unit.test.d.ts.map +0 -1
  710. package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts +0 -2
  711. package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts.map +0 -1
  712. package/dist/record/__tests__/video-texture-view.unit.test.d.ts +0 -2
  713. package/dist/record/__tests__/video-texture-view.unit.test.d.ts.map +0 -1
@@ -0,0 +1,43 @@
1
+ import { type RenderError, RenderFeaturePreparedStateMismatchError } from '../errors/render';
2
+ import type { RenderFeatureTargetHandle } from '../features/targets';
3
+ /** The closed semantic schema namespace published by the render owner. */
4
+ export declare const SCENE_DATA_TEMPORAL_V1_SCHEMA: "forgeax::scene-data::temporal-v1";
5
+ export type SceneDataSchemaId = typeof SCENE_DATA_TEMPORAL_V1_SCHEMA;
6
+ export type SceneDataLane = 'direct' | 'clustered' | 'cpu-webgl2';
7
+ export interface SceneDataTemporalV1Descriptor {
8
+ readonly schema: typeof SCENE_DATA_TEMPORAL_V1_SCHEMA;
9
+ readonly format: 'rgba16float';
10
+ readonly sampleCount: 1;
11
+ readonly extent: 'render-resolution';
12
+ readonly clearValue: readonly [0, 0, -1, 1];
13
+ readonly channels: Readonly<{
14
+ readonly motionUv: 'rg';
15
+ readonly viewDepth: 'b-log2-1-plus-depth';
16
+ readonly reactive: 'a';
17
+ }>;
18
+ }
19
+ export declare const SCENE_DATA_TEMPORAL_V1_DESCRIPTOR: SceneDataTemporalV1Descriptor;
20
+ /** Opaque, sampled-read-only semantic data token. */
21
+ export interface SceneDataTarget<Schema extends SceneDataSchemaId = SceneDataSchemaId> {
22
+ readonly kind: 'scene-data';
23
+ readonly schema: Schema;
24
+ readonly access: 'sampled-read';
25
+ readonly format: 'rgba16float';
26
+ readonly sampleCount: 1;
27
+ readonly extent: 'render-resolution';
28
+ readonly __sceneDataTarget: unique symbol;
29
+ }
30
+ export type SceneDataTokenMismatch = RenderFeaturePreparedStateMismatchError;
31
+ export interface SceneDataCatalogIdentity {
32
+ readonly featureIdentity: string;
33
+ readonly planIdentity: string;
34
+ readonly generation: number;
35
+ }
36
+ export declare function registerSceneDataTarget(target: SceneDataTarget, owner: SceneDataCatalogIdentity): void;
37
+ export declare function sceneDataTargetOwner(target: SceneDataTarget): SceneDataCatalogIdentity | undefined;
38
+ export declare function sceneDataTokenMismatch(operation: string, reason: 'foreign-feature' | 'foreign-kind' | 'generation-mismatch' | 'layout-mismatch', owner: SceneDataCatalogIdentity, target: Partial<SceneDataTarget> | undefined): SceneDataTokenMismatch;
39
+ export declare function isSceneDataTarget(value: unknown): value is SceneDataTarget;
40
+ export declare function sceneDataTargetAsAttachment(_target: SceneDataTarget): never;
41
+ export type SceneDataTargetInput = RenderFeatureTargetHandle | SceneDataTarget;
42
+ export declare function sceneDataError(error: SceneDataTokenMismatch): RenderError;
43
+ //# sourceMappingURL=scene-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-data.d.ts","sourceRoot":"","sources":["../../src/temporal/scene-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,uCAAuC,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAErE,0EAA0E;AAC1E,eAAO,MAAM,6BAA6B,EAAG,kCAA2C,CAAC;AACzF,MAAM,MAAM,iBAAiB,GAAG,OAAO,6BAA6B,CAAC;AAErE,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC;AAElE,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,EAAE,OAAO,6BAA6B,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC1B,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;QACxB,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;QAC1C,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;KACxB,CAAC,CAAC;CACJ;AAED,eAAO,MAAM,iCAAiC,EAAE,6BAW9C,CAAC;AAEH,qDAAqD;AACrD,MAAM,WAAW,eAAe,CAAC,MAAM,SAAS,iBAAiB,GAAG,iBAAiB;IACnF,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,MAAM,CAAC;CAC3C;AAED,MAAM,MAAM,sBAAsB,GAAG,uCAAuC,CAAC;AAI7E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,wBAAwB,GAC9B,IAAI,CAEN;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,eAAe,GACtB,wBAAwB,GAAG,SAAS,CAEtC;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,iBAAiB,GAAG,cAAc,GAAG,qBAAqB,GAAG,iBAAiB,EACtF,KAAK,EAAE,wBAAwB,EAC/B,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,GAC3C,sBAAsB,CAkDxB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAY1E;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,eAAe,GAAG,KAAK,CAE3E;AAED,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAAG,eAAe,CAAC;AAE/E,wBAAgB,cAAc,CAAC,KAAK,EAAE,sBAAsB,GAAG,WAAW,CAEzE"}
@@ -0,0 +1,61 @@
1
+ import type { RenderGraphBuilder, RenderGraphError } from '@forgeax/engine-render-graph';
2
+ import { type Result } from '@forgeax/engine-types';
3
+ import type { RenderPipelineFrame, RenderPipelineTarget } from '../render-pipeline';
4
+ export interface StandardTemporalDemandInput {
5
+ readonly taa: boolean;
6
+ readonly motionBlur: boolean;
7
+ }
8
+ export interface StandardTemporalDemand {
9
+ readonly consumerIds: readonly ('taa' | 'motion-blur')[];
10
+ readonly targetCount: 0 | 1;
11
+ readonly producerPassCount: 0 | 1;
12
+ readonly historyCount: 0 | 1;
13
+ }
14
+ export interface StandardTemporalDemandDescription {
15
+ readonly consumerCount: number;
16
+ readonly targetCount: 0 | 1;
17
+ readonly producerPassCount: 0 | 1;
18
+ readonly historyCount: 0 | 1;
19
+ readonly byteLength: 0 | 1;
20
+ }
21
+ /** Aggregate all temporal consumers before any graph resource is allocated. */
22
+ export declare function aggregateTemporalDemand(input: StandardTemporalDemandInput): StandardTemporalDemand;
23
+ export declare function describeTemporalDemand(demand: StandardTemporalDemand): StandardTemporalDemandDescription;
24
+ export type StandardTemporalLane = 'direct' | 'clustered' | 'cpu-webgl2' | 'rhi-null';
25
+ export type StandardTemporalLaneAdmission = {
26
+ readonly status: 'available';
27
+ readonly schema: typeof import('./scene-data').SCENE_DATA_TEMPORAL_V1_SCHEMA;
28
+ readonly producerId: 'forgeax::standard::scene-data';
29
+ readonly structuralOnly: boolean;
30
+ readonly format: 'rgba16float';
31
+ } | {
32
+ readonly status: 'unavailable';
33
+ readonly reason: 'capability-missing' | 'producer-missing' | 'no-demand';
34
+ readonly format?: never;
35
+ };
36
+ export declare function standardTemporalLaneAdmission(input: {
37
+ readonly lane: StandardTemporalLane;
38
+ readonly demand: StandardTemporalDemand;
39
+ readonly capabilities: {
40
+ readonly compute: boolean;
41
+ readonly storageBuffer: boolean;
42
+ readonly rgba16floatRenderable: boolean;
43
+ readonly filterable?: boolean;
44
+ readonly copy?: boolean;
45
+ readonly readback?: boolean;
46
+ readonly producerPresent?: boolean;
47
+ };
48
+ }): StandardTemporalLaneAdmission;
49
+ export declare function standardTemporalPostOrder(input: {
50
+ readonly taa: boolean;
51
+ readonly motionBlur: boolean;
52
+ readonly bloom: boolean;
53
+ }): readonly string[];
54
+ export interface StandardSceneDataTargets {
55
+ readonly temporal: RenderPipelineTarget;
56
+ }
57
+ /** The single Standard TAA current-frame producer target. */
58
+ export declare function createStandardSceneDataTarget(graph: RenderGraphBuilder<RenderPipelineFrame>): Result<StandardSceneDataTargets, RenderGraphError>;
59
+ export declare function addStandardSceneDataPass(graph: RenderGraphBuilder<RenderPipelineFrame>, target: RenderPipelineTarget, depth: RenderPipelineTarget): Result<void, RenderGraphError>;
60
+ export declare function addTaaResolvePass(graph: RenderGraphBuilder<RenderPipelineFrame>, current: RenderPipelineTarget, currentTemporal: RenderPipelineTarget, previousColor: RenderPipelineTarget, previousTemporal: RenderPipelineTarget, output: RenderPipelineTarget): Result<void, RenderGraphError>;
61
+ //# sourceMappingURL=standard-scene-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-scene-data.d.ts","sourceRoot":"","sources":["../../src/temporal/standard-scene-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { RhiDevice, RhiError, Texture, TextureDescriptor, TextureView } from '@forgeax/engine-rhi';
2
+ import { type Result } from '@forgeax/engine-types';
3
+ export interface TaaHistorySlot {
4
+ readonly texture: Texture;
5
+ readonly view: TextureView;
6
+ }
7
+ export interface TaaHistoryResources {
8
+ readonly width: number;
9
+ readonly height: number;
10
+ readonly descriptor: TextureDescriptor;
11
+ readonly slots: readonly [TaaHistorySlot, TaaHistorySlot];
12
+ readonly temporalSlots: readonly [TaaHistorySlot, TaaHistorySlot];
13
+ readonly currentIndex: 0 | 1;
14
+ readonly previousIndex: 0 | 1;
15
+ readonly valid: boolean;
16
+ beginFrame(): void;
17
+ commitFrame(): void;
18
+ abortFrame(): void;
19
+ dispose(): void;
20
+ }
21
+ export declare function createTaaHistoryResources(device: RhiDevice, width: number, height: number): Result<TaaHistoryResources, RhiError>;
22
+ //# sourceMappingURL=taa-history-resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taa-history-resources.d.ts","sourceRoot":"","sources":["../../src/temporal/taa-history-resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAc7D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IAC1D,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IAClE,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,UAAU,IAAI,IAAI,CAAC;IACnB,WAAW,IAAI,IAAI,CAAC;IACpB,UAAU,IAAI,IAAI,CAAC;IACnB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAkFvC"}
@@ -0,0 +1,27 @@
1
+ export type TaaHistoryResetReason = 'first-frame' | 'camera-cut' | 'resize' | 'recover' | 'device-generation';
2
+ export interface TaaHistoryInspection {
3
+ readonly generation: number;
4
+ readonly seed: number;
5
+ readonly attempt: 'none' | 'active' | 'committed' | 'aborted';
6
+ readonly valid: boolean;
7
+ readonly resetReason: TaaHistoryResetReason | undefined;
8
+ }
9
+ export interface TaaHistoryAttempt {
10
+ readonly generation: number;
11
+ readonly seed: number;
12
+ commit(): void;
13
+ abort(): void;
14
+ }
15
+ /** TAA-only history owner. No global registry or backend handle crosses this boundary. */
16
+ export declare class TaaHistoryStore {
17
+ private generation;
18
+ private seed;
19
+ private valid;
20
+ private attempt;
21
+ private resetReason;
22
+ begin(reason?: TaaHistoryResetReason | undefined): TaaHistoryAttempt;
23
+ seedHistory(reason?: TaaHistoryResetReason): void;
24
+ reset(reason: TaaHistoryResetReason): void;
25
+ inspect(): TaaHistoryInspection;
26
+ }
27
+ //# sourceMappingURL=taa-history-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taa-history-store.d.ts","sourceRoot":"","sources":["../../src/temporal/taa-history-store.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAC7B,aAAa,GACb,YAAY,GACZ,QAAQ,GACR,SAAS,GACT,mBAAmB,CAAC;AAExB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;IAC9D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,qBAAqB,GAAG,SAAS,CAAC;CACzD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,IAAI,IAAI,CAAC;IACf,KAAK,IAAI,IAAI,CAAC;CACf;AAED,0FAA0F;AAC1F,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAA2C;IAC1D,OAAO,CAAC,WAAW,CAAoC;IAEvD,KAAK,CAAC,MAAM,GAAE,qBAAqB,GAAG,SAAqB,GAAG,iBAAiB;IAyB/E,WAAW,CAAC,MAAM,GAAE,qBAAqC,GAAG,IAAI;IAMhE,KAAK,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IAQ1C,OAAO,IAAI,oBAAoB;CAShC"}
@@ -0,0 +1,15 @@
1
+ import type { RenderPipelineFeatureTarget, RenderPipelineTarget } from '../render-pipeline';
2
+ export interface TaaResolveInput {
3
+ readonly current: RenderPipelineFeatureTarget;
4
+ readonly temporal: RenderPipelineFeatureTarget;
5
+ readonly historyValid: boolean;
6
+ }
7
+ export interface TaaResolveInspection {
8
+ readonly applied: boolean;
9
+ readonly currentOnly: boolean;
10
+ readonly historyGeneration: number;
11
+ }
12
+ /** TAA resolve contract; graph encoding remains owned by Standard topology. */
13
+ export declare function resolveTaa(input: TaaResolveInput, historyGeneration: number): TaaResolveInspection;
14
+ export declare function taaOutputTarget(target: RenderPipelineFeatureTarget): RenderPipelineTarget;
15
+ //# sourceMappingURL=taa-resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taa-resolve.d.ts","sourceRoot":"","sources":["../../src/temporal/taa-resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE5F,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,+EAA+E;AAC/E,wBAAgB,UAAU,CACxB,KAAK,EAAE,eAAe,EACtB,iBAAiB,EAAE,MAAM,GACxB,oBAAoB,CAMtB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,2BAA2B,GAAG,oBAAoB,CAOzF"}
@@ -0,0 +1,40 @@
1
+ import type { CameraProjection } from '../components/camera';
2
+ import type { CameraSnapshot } from '../render-contract';
3
+ export declare const TEMPORAL_JITTER_SAMPLE_COUNT = 8;
4
+ export type TemporalViewResetReason = 'first-frame' | 'camera-switch' | 'history-version-changed' | 'projection-kind-changed' | 'projection-range-changed';
5
+ export interface SubmittedTemporalView {
6
+ readonly viewId: string;
7
+ readonly historyVersion: number;
8
+ readonly projection: CameraProjection;
9
+ readonly near: number;
10
+ readonly far: number;
11
+ readonly jitterUv: readonly [number, number];
12
+ readonly unjitteredViewProjection: Float32Array;
13
+ }
14
+ export interface TemporalView {
15
+ readonly viewId: string;
16
+ readonly historyVersion: number;
17
+ readonly temporalFrameIndex: number;
18
+ readonly historyValid: boolean;
19
+ readonly resetReason: TemporalViewResetReason | undefined;
20
+ readonly currentJitterUv: readonly [number, number];
21
+ readonly previousJitterUv: readonly [number, number];
22
+ readonly currentJitteredViewProjection: Float32Array;
23
+ readonly currentUnjitteredViewProjection: Float32Array;
24
+ readonly previousUnjitteredViewProjection: Float32Array;
25
+ readonly projection: CameraProjection;
26
+ readonly near: number;
27
+ readonly far: number;
28
+ }
29
+ export interface TemporalViewInput {
30
+ readonly camera: CameraSnapshot;
31
+ readonly temporalFrameIndex: number;
32
+ readonly surfaceWidth: number;
33
+ readonly surfaceHeight: number;
34
+ readonly lastSubmitted?: SubmittedTemporalView;
35
+ }
36
+ export declare function temporalViewId(worldId: number, entityKey: number): string;
37
+ export declare function temporalJitterSample(temporalFrameIndex: number): readonly [number, number];
38
+ export declare function projectTemporalView(input: TemporalViewInput): TemporalView;
39
+ export declare function snapshotSubmittedTemporalView(view: TemporalView): SubmittedTemporalView;
40
+ //# sourceMappingURL=temporal-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temporal-view.d.ts","sourceRoot":"","sources":["../../src/temporal/temporal-view.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,MAAM,MAAM,uBAAuB,GAC/B,aAAa,GACb,eAAe,GACf,yBAAyB,GACzB,yBAAyB,GACzB,0BAA0B,CAAC;AAE/B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,wBAAwB,EAAE,YAAY,CAAC;CACjD;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,6BAA6B,EAAE,YAAY,CAAC;IACrD,QAAQ,CAAC,+BAA+B,EAAE,YAAY,CAAC;IACvD,QAAQ,CAAC,gCAAgC,EAAE,YAAY,CAAC;IACxD,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,qBAAqB,CAAC;CAChD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKzE;AAcD,wBAAgB,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAO1F;AA8CD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,CAqC1E;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,YAAY,GAAG,qBAAqB,CAUvF"}
@@ -0,0 +1,9 @@
1
+ import { type RendererFrameTransaction } from '../assembly/renderer-frame-transaction';
2
+ import type { TemporalHistory } from './history';
3
+ import type { TemporalView } from './view';
4
+ export interface TemporalFrameCandidate {
5
+ readonly view: TemporalView;
6
+ readonly history: TemporalHistory;
7
+ }
8
+ export declare function stageTemporalFrame(candidate: TemporalFrameCandidate): RendererFrameTransaction<TemporalFrameCandidate>;
9
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/temporal/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;CACnC;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,sBAAsB,GAChC,wBAAwB,CAAC,sBAAsB,CAAC,CAElD"}
@@ -0,0 +1,56 @@
1
+ import type { Antialias } from '../components/camera';
2
+ export declare const HALTON_23_8: readonly [readonly number[], readonly number[], readonly number[], readonly number[], readonly number[], readonly number[], readonly number[], readonly number[]];
3
+ export type TemporalResetReason = 'first-frame' | 'resize' | 'camera-cut' | 'history-version' | 'view-switch' | 'environment-change' | 'fog-change' | 'device-recover' | 'submit-failure';
4
+ export interface TemporalViewInput {
5
+ readonly antialias: Antialias;
6
+ readonly width: number;
7
+ readonly height: number;
8
+ readonly frameIndex?: number;
9
+ readonly historyVersion?: number;
10
+ readonly viewIdentity?: string;
11
+ readonly environmentSignature?: string;
12
+ readonly fogSignature?: string;
13
+ readonly deviceGeneration?: number;
14
+ readonly cameraCut?: boolean;
15
+ readonly historyValid?: boolean;
16
+ readonly currentUnjitteredViewProjection?: ArrayLike<number> | undefined;
17
+ readonly previousUnjitteredViewProjection?: ArrayLike<number> | undefined;
18
+ readonly resetReason?: TemporalResetReason | undefined;
19
+ }
20
+ interface TemporalViewSnapshot {
21
+ readonly antialias: Antialias;
22
+ readonly width: number;
23
+ readonly height: number;
24
+ readonly frameIndex: number;
25
+ readonly historyVersion: number;
26
+ readonly viewIdentity: string;
27
+ readonly environmentSignature: string;
28
+ readonly fogSignature: string;
29
+ readonly deviceGeneration: number;
30
+ readonly cameraCut: boolean;
31
+ readonly historyValid: boolean;
32
+ readonly currentUnjitteredViewProjection: ArrayLike<number> | undefined;
33
+ readonly previousUnjitteredViewProjection: ArrayLike<number> | undefined;
34
+ readonly resetReason: TemporalResetReason | undefined;
35
+ }
36
+ export interface TemporalView {
37
+ readonly input: Readonly<TemporalViewSnapshot>;
38
+ readonly historyVersion: number;
39
+ readonly mode: 'off' | 'taa';
40
+ readonly jitter: readonly [number, number] | undefined;
41
+ readonly jitterCancellationUv: readonly [number, number] | undefined;
42
+ readonly currentJitterUv: readonly [number, number] | undefined;
43
+ readonly historyValid: boolean;
44
+ readonly temporalFrameIndex: number;
45
+ /** Unjittered matrices are supplied by the renderer projection owner. */
46
+ readonly currentUnjitteredViewProjection: ArrayLike<number> | undefined;
47
+ readonly previousUnjitteredViewProjection: ArrayLike<number> | undefined;
48
+ readonly currentProjection: 'jittered' | 'unjittered';
49
+ readonly previousProjection: 'unjittered';
50
+ readonly historyRequired: boolean;
51
+ readonly resetReason: TemporalResetReason | undefined;
52
+ }
53
+ export declare function createTemporalView(input: TemporalViewInput): TemporalView;
54
+ export declare function resolveTemporalReset(previous: TemporalView | undefined, next: TemporalView): TemporalResetReason | undefined;
55
+ export {};
56
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/temporal/view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,147 @@
1
+ import { type GraphResourceResolver, type GraphTextureView, type RenderGraphBuilder, RenderGraphError } from '@forgeax/engine-render-graph';
2
+ import type { RhiDevice, RhiRenderPassEncoder } from '@forgeax/engine-rhi';
3
+ import { type Result } from '@forgeax/engine-types';
4
+ import type { RenderPipelineFrame, RenderPipelineTarget, RenderPipelineTopology } from '../render-pipeline';
5
+ import type { TransmissionDemand } from './projection';
6
+ export declare const TRANSMISSION_BACKDROP_PHASES: readonly ["opaque-resolve", "transmission-backdrop-copy", "transmission-backdrop-mip", "transmission-forward", "transparent", "temporal"];
7
+ export type TransmissionBackdropPhase = (typeof TRANSMISSION_BACKDROP_PHASES)[number];
8
+ export declare function transmissionDemandForTopology(topology: RenderPipelineTopology): TransmissionDemand;
9
+ export interface TransmissionBackdropTopologyInput {
10
+ readonly demand: TransmissionDemand;
11
+ readonly sourceSampleCount: 1 | 4;
12
+ }
13
+ export interface TransmissionBackdropTopology {
14
+ readonly active: boolean;
15
+ readonly sourceSampleCount: 1 | 4;
16
+ readonly copyCount: number;
17
+ readonly mipCount: number;
18
+ readonly submitCount: 1;
19
+ readonly aliasCount: 0;
20
+ readonly phases: readonly TransmissionBackdropPhase[];
21
+ }
22
+ export declare function resolveTransmissionBackdropTopology(input: TransmissionBackdropTopologyInput): TransmissionBackdropTopology;
23
+ export interface TransmissionCapabilityFacts {
24
+ readonly format: string;
25
+ readonly renderAttachment: boolean;
26
+ readonly copySrc: boolean;
27
+ readonly textureBinding: boolean;
28
+ readonly mipView: boolean;
29
+ readonly filteringSampler: boolean;
30
+ readonly bindGroupLayout: boolean;
31
+ readonly msaaResolve: boolean;
32
+ readonly resourceCreation: boolean;
33
+ /** Accepted as diagnostic input only; it never changes the verdict. */
34
+ readonly backendKind?: string | undefined;
35
+ }
36
+ export type TransmissionCapabilityFact = 'format' | 'renderAttachment' | 'copySrc' | 'textureBinding' | 'mipView' | 'filteringSampler' | 'bindGroupLayout' | 'msaaResolve' | 'resourceCreation';
37
+ /** Probe the complete backdrop descriptor once per device generation. */
38
+ export declare function probeTransmissionCapability(device: RhiDevice): TransmissionCapabilityFacts;
39
+ export type TransmissionCapabilityVerdict = {
40
+ readonly ok: true;
41
+ readonly missing: readonly [];
42
+ } | {
43
+ readonly ok: false;
44
+ readonly missing: readonly TransmissionCapabilityFact[];
45
+ };
46
+ export declare function evaluateTransmissionCapability(facts: TransmissionCapabilityFacts): TransmissionCapabilityVerdict;
47
+ export type TransmissionAdmissionResult = {
48
+ readonly ok: true;
49
+ readonly published: true;
50
+ readonly generation: number;
51
+ readonly demand: TransmissionDemand;
52
+ } | {
53
+ readonly ok: false;
54
+ readonly published: false;
55
+ readonly generation: number;
56
+ readonly demand: TransmissionDemand;
57
+ readonly missing: readonly TransmissionCapabilityFact[];
58
+ };
59
+ export interface TransmissionBackdropExtent {
60
+ readonly width: number;
61
+ readonly height: number;
62
+ }
63
+ /** Detached physical facts committed with a backdrop candidate. */
64
+ export interface TransmissionBackdropResourceFacts {
65
+ readonly extent: TransmissionBackdropExtent;
66
+ readonly format: string;
67
+ /** Total resident mip levels, including level zero. */
68
+ readonly mipCount: number;
69
+ readonly bytes: number;
70
+ readonly deviceGeneration: number;
71
+ }
72
+ export type TransmissionLifecycleState = 'inactive' | 'resident' | 'recovering' | 'device-lost' | 'failed';
73
+ export type TransmissionRecoveryState = 'idle' | 'compatible-lkg' | 'rebuild-required' | 'recovered' | 'failed';
74
+ export interface TransmissionCandidateAdmissionInspection {
75
+ readonly generation: number;
76
+ readonly demand: TransmissionDemand;
77
+ readonly capability: TransmissionCapabilityVerdict;
78
+ readonly lifecycle: TransmissionLifecycleState;
79
+ readonly lastKnownGood: boolean;
80
+ readonly recovery: TransmissionRecoveryState;
81
+ readonly resource?: TransmissionBackdropResourceFacts;
82
+ }
83
+ /** Candidate/LKG fence for the private backdrop topology. */
84
+ export declare class TransmissionCandidateAdmission {
85
+ private generation;
86
+ private demand;
87
+ private capability;
88
+ private lifecycle;
89
+ private lastKnownGood;
90
+ private recovery;
91
+ private resource;
92
+ admit(demand: TransmissionDemand, facts: TransmissionCapabilityFacts, resource?: TransmissionBackdropResourceFacts): TransmissionAdmissionResult;
93
+ inspect(): {
94
+ readonly generation: number;
95
+ readonly demand: TransmissionDemand;
96
+ };
97
+ /**
98
+ * Drop physical resource identity after device loss without dropping the
99
+ * persistent material demand. The next successful admission must publish a
100
+ * replacement resource before it can become the LKG.
101
+ */
102
+ markDeviceLost(): void;
103
+ markRecoveryStarted(): void;
104
+ inspectLifecycle(): TransmissionCandidateAdmissionInspection;
105
+ }
106
+ export interface TransmissionBackdropGraphInput {
107
+ readonly graph: RenderGraphBuilder<RenderPipelineFrame>;
108
+ /** The resolved single-sample source; MSAA source is never copied directly. */
109
+ readonly source: RenderPipelineTarget;
110
+ readonly demand: TransmissionDemand;
111
+ readonly copySize: {
112
+ readonly width: number;
113
+ readonly height: number;
114
+ };
115
+ /**
116
+ * Renderer-owned fullscreen/downsample record path for rough mips. The
117
+ * callback must bind the existing cached sampler/pipeline and draw into the
118
+ * supplied destination view on the graph-owned render pass.
119
+ */
120
+ readonly encodeRoughMip?: TransmissionBackdropMipEncoder | undefined;
121
+ /** Production callers install typed scene consumers after the copy/mip chain. */
122
+ readonly includeConsumerPasses?: boolean;
123
+ }
124
+ export interface TransmissionBackdropMipEncoderContext {
125
+ readonly pass: RhiRenderPassEncoder;
126
+ readonly frame: RenderPipelineFrame;
127
+ readonly resources: GraphResourceResolver;
128
+ readonly source: GraphTextureView;
129
+ readonly destination: GraphTextureView;
130
+ readonly level: number;
131
+ }
132
+ /** Existing fullscreen/downsample owner injected by the renderer assembly. */
133
+ export type TransmissionBackdropMipEncoder = (context: TransmissionBackdropMipEncoderContext) => void;
134
+ export interface TransmissionBackdropGraph {
135
+ readonly topology: TransmissionBackdropTopology;
136
+ readonly backdrop: RenderPipelineTarget | undefined;
137
+ readonly mipViews: readonly GraphTextureView[];
138
+ }
139
+ /**
140
+ * Adds the private backdrop and its ordered consumers to the caller's graph.
141
+ * The returned target stays inside the Standard pipeline owner; no public
142
+ * render-target or per-object copy is created.
143
+ */
144
+ export declare function addTransmissionBackdropPasses(input: TransmissionBackdropGraphInput): Result<TransmissionBackdropGraph, RenderGraphError>;
145
+ /** Adds the final ordering marker after typed transmission and transparent draws. */
146
+ export declare function addTransmissionBackdropTemporalPass(graph: RenderGraphBuilder<RenderPipelineFrame>, source: RenderPipelineTarget): Result<void, RenderGraphError>;
147
+ //# sourceMappingURL=backdrop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backdrop.d.ts","sourceRoot":"","sources":["../../src/transmission/backdrop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import type { TransmissionBackdropExtent, TransmissionBackdropTopology, TransmissionCandidateAdmissionInspection, TransmissionCapabilityVerdict, TransmissionLifecycleState, TransmissionRecoveryState } from './backdrop';
2
+ import type { TransmissionDemand } from './projection';
3
+ export type { TransmissionBackdropExtent, TransmissionCandidateAdmissionInspection, TransmissionLifecycleState, TransmissionRecoveryState, } from './backdrop';
4
+ export interface TransmissionInspection {
5
+ readonly activeCount: number;
6
+ readonly needsRoughMips: boolean;
7
+ readonly extent: TransmissionBackdropExtent;
8
+ readonly format: string;
9
+ /** Total resident mip levels, including level zero. */
10
+ readonly mipCount: number;
11
+ readonly bytes: number;
12
+ readonly copyCount: number;
13
+ readonly transmissionDrawCount: number;
14
+ readonly fallbackCount: number;
15
+ readonly generation: number;
16
+ readonly singleLayer: true;
17
+ readonly lifecycle: TransmissionLifecycleState;
18
+ readonly lastKnownGood: boolean;
19
+ readonly recovery: TransmissionRecoveryState;
20
+ readonly capability: TransmissionCapabilityVerdict;
21
+ }
22
+ export interface TransmissionInspectionInput {
23
+ readonly demand: TransmissionDemand;
24
+ readonly topology: Pick<TransmissionBackdropTopology, 'active' | 'copyCount' | 'mipCount'>;
25
+ readonly extent: TransmissionBackdropExtent;
26
+ readonly generation: number;
27
+ readonly lastKnownGood: boolean;
28
+ readonly recovery: TransmissionRecoveryState;
29
+ readonly lifecycle?: TransmissionLifecycleState;
30
+ /** Whether a committed physical backdrop is resident on the active device. */
31
+ readonly resourcePresent?: boolean;
32
+ readonly format?: string;
33
+ /** Override only when the resource receipt reports the actual total. */
34
+ readonly mipCount?: number;
35
+ /** Override only when the resource receipt reports the actual allocation. */
36
+ readonly bytes?: number;
37
+ readonly transmissionDrawCount?: number;
38
+ readonly fallbackCount?: number;
39
+ readonly capability?: TransmissionCapabilityVerdict;
40
+ }
41
+ export interface TransmissionInspectionFromAdmissionInput {
42
+ readonly admission: TransmissionCandidateAdmissionInspection;
43
+ readonly topology: TransmissionInspectionInput['topology'];
44
+ readonly extent: TransmissionBackdropExtent;
45
+ readonly transmissionDrawCount?: number;
46
+ readonly fallbackCount?: number;
47
+ }
48
+ export declare function estimateTransmissionBackdropBytes(extent: TransmissionBackdropExtent, mipCount: number, format?: string): number;
49
+ /**
50
+ * Project the last completed backdrop facts into a detached, stable POD.
51
+ * Demand and copy/mip topology are read from their existing owners; this
52
+ * function never accepts a texture, view, encoder, queue, or graph handle.
53
+ */
54
+ export declare function inspectTransmission(input: TransmissionInspectionInput): TransmissionInspection;
55
+ export declare function inspectTransmissionFromAdmission(input: TransmissionInspectionFromAdmissionInput): TransmissionInspection;
56
+ export declare function transmissionInspectionToJson(inspection: TransmissionInspection): string;
57
+ //# sourceMappingURL=inspection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspection.d.ts","sourceRoot":"","sources":["../../src/transmission/inspection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /** Pure CPU expectations for transmission math; this module has no GPU ownership. */
2
+ export type Color3 = readonly [number, number, number];
3
+ export type Uv2 = readonly [number, number];
4
+ export declare const DEFAULT_IOR = 1.5;
5
+ export declare const DEFAULT_GUARD_BAND = 0.02;
6
+ export interface TransmissionEnergy {
7
+ readonly reflection: number;
8
+ readonly transmission: number;
9
+ readonly diffuse: number;
10
+ readonly metallicResidual: number;
11
+ }
12
+ export interface BackdropResolution {
13
+ readonly source: 'refracted' | 'environment' | 'unrefracted';
14
+ readonly color: Color3;
15
+ }
16
+ export interface BackdropInputs {
17
+ readonly uv: Uv2;
18
+ readonly refracted?: Color3;
19
+ readonly environment?: Color3;
20
+ readonly unrefracted: Color3;
21
+ readonly guardBand?: number;
22
+ }
23
+ /** Returns dielectric F0 for air to a material with the supplied IOR. */
24
+ export declare function fresnelF0(ior: number): number;
25
+ /**
26
+ * Returns unpolarized dielectric reflectance. `eta` is incident IOR divided
27
+ * by transmitted IOR, so values above one can produce total internal
28
+ * reflection. This is a CPU oracle only; it does not sample a GPU resource.
29
+ */
30
+ export declare function fresnelReflectance(cosTheta: number, eta: number): number;
31
+ export declare function splitTransmissionEnergy(input: {
32
+ readonly transmission: number;
33
+ readonly metallic: number;
34
+ readonly cosTheta: number;
35
+ readonly ior: number;
36
+ }): TransmissionEnergy;
37
+ export declare function beerLambertAttenuation(color: Color3, thickness: number, distance?: number): Color3;
38
+ export declare function roughnessToLod(roughness: number, maxLod: number): number;
39
+ export declare function isWithinGuardBand(uv: Uv2, guardBand?: number): boolean;
40
+ export declare function resolveRefractionBackdrop(input: BackdropInputs): BackdropResolution;
41
+ export declare function isFiniteColor(color: Color3): boolean;
42
+ //# sourceMappingURL=oracle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../src/transmission/oracle.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,MAAM,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACvD,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5C,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC;IAC7D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;IACjB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAYD,yEAAyE;AACzE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAexE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,GAAG,kBAAkB,CAarB;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAiBR;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIxE;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,SAAqB,GAAG,OAAO,CAIlF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,cAAc,GAAG,kBAAkB,CAenF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD"}
@@ -0,0 +1,37 @@
1
+ /** The two CPU facts that are allowed to influence transmission topology. */
2
+ export interface TransmissionDemand {
3
+ readonly activeCount: number;
4
+ readonly needsRoughMips: boolean;
5
+ }
6
+ /** Detached material facts supplied by the persistent render-scene owner. */
7
+ export interface TransmissionDemandCandidate {
8
+ readonly attached: boolean;
9
+ readonly ready: boolean;
10
+ readonly transmission: number;
11
+ readonly roughness: number;
12
+ }
13
+ export type TransmissionDemandOperation = {
14
+ readonly kind: 'upsert';
15
+ readonly key: string;
16
+ readonly candidate: TransmissionDemandCandidate;
17
+ } | {
18
+ readonly kind: 'remove';
19
+ readonly key: string;
20
+ };
21
+ /**
22
+ * Incremental CPU projection for transmission topology.
23
+ *
24
+ * The projection stores no material, visibility, camera, or GPU object. Each
25
+ * operation updates the two counters directly; an empty operation list is a
26
+ * no-scan steady-state frame.
27
+ */
28
+ export declare class PersistentTransmissionDemandProjection {
29
+ private readonly records;
30
+ private activeCount;
31
+ private roughCount;
32
+ apply(operations: readonly TransmissionDemandOperation[]): TransmissionDemand;
33
+ inspect(): TransmissionDemand;
34
+ private addCounts;
35
+ private removeCounts;
36
+ }
37
+ //# sourceMappingURL=projection.d.ts.map