@forgeax/engine-render 0.1.28 → 0.1.30

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 (768) hide show
  1. package/README.md +856 -126
  2. package/dist/assembly/atmosphere-shader-prewarm.d.ts +6 -0
  3. package/dist/assembly/atmosphere-shader-prewarm.d.ts.map +1 -0
  4. package/dist/assembly/device-feature-admission.d.ts +4 -3
  5. package/dist/assembly/device-feature-admission.d.ts.map +1 -1
  6. package/dist/assembly/dynamic-geometry-host.d.ts +27 -0
  7. package/dist/assembly/dynamic-geometry-host.d.ts.map +1 -1
  8. package/dist/assembly/dynamic-geometry-runtime.d.ts +20 -0
  9. package/dist/assembly/dynamic-geometry-runtime.d.ts.map +1 -0
  10. package/dist/assembly/factory.d.ts +3 -1
  11. package/dist/assembly/factory.d.ts.map +1 -1
  12. package/dist/assembly/gpu-driven-owner.d.ts +10 -0
  13. package/dist/assembly/gpu-driven-owner.d.ts.map +1 -0
  14. package/dist/assembly/host-contract.d.ts +14 -0
  15. package/dist/assembly/host-contract.d.ts.map +1 -1
  16. package/dist/assembly/material/assembly.d.ts +31 -1
  17. package/dist/assembly/material/assembly.d.ts.map +1 -1
  18. package/dist/assembly/material/pipeline-helpers.d.ts +24 -0
  19. package/dist/assembly/material/pipeline-helpers.d.ts.map +1 -0
  20. package/dist/assembly/material-shader-policy.d.ts +3 -1
  21. package/dist/assembly/material-shader-policy.d.ts.map +1 -1
  22. package/dist/assembly/recovery/device-loss-fanout.d.ts.map +1 -1
  23. package/dist/assembly/recovery/failure-location.d.ts +12 -0
  24. package/dist/assembly/recovery/failure-location.d.ts.map +1 -0
  25. package/dist/assembly/recovery/recovery-attempt.d.ts +1 -6
  26. package/dist/assembly/recovery/recovery-attempt.d.ts.map +1 -1
  27. package/dist/assembly/recovery/renderer-recover.d.ts +7 -4
  28. package/dist/assembly/recovery/renderer-recover.d.ts.map +1 -1
  29. package/dist/assembly/renderer-facade.d.ts.map +1 -1
  30. package/dist/assembly/renderer-feature-inspection.d.ts +5 -0
  31. package/dist/assembly/renderer-feature-inspection.d.ts.map +1 -0
  32. package/dist/assembly/renderer-frame-transaction.d.ts +19 -0
  33. package/dist/assembly/renderer-frame-transaction.d.ts.map +1 -1
  34. package/dist/assembly/renderer-helpers.d.ts +3 -0
  35. package/dist/assembly/renderer-helpers.d.ts.map +1 -1
  36. package/dist/assembly/renderer-inspection.d.ts +4 -0
  37. package/dist/assembly/renderer-inspection.d.ts.map +1 -1
  38. package/dist/assembly/shader-prewarm-policy.d.ts +7 -1
  39. package/dist/assembly/shader-prewarm-policy.d.ts.map +1 -1
  40. package/dist/assembly/skin-palette-owner.d.ts +8 -0
  41. package/dist/assembly/skin-palette-owner.d.ts.map +1 -0
  42. package/dist/assembly/ssr-shader-prewarm.d.ts +6 -0
  43. package/dist/assembly/ssr-shader-prewarm.d.ts.map +1 -0
  44. package/dist/assembly/webgpu-device-loss.d.ts +15 -0
  45. package/dist/assembly/webgpu-device-loss.d.ts.map +1 -0
  46. package/dist/assembly/webgpu-pbr-ready.d.ts +38 -0
  47. package/dist/assembly/webgpu-pbr-ready.d.ts.map +1 -0
  48. package/dist/assembly/webgpu-ready-mipmap.d.ts +11 -0
  49. package/dist/assembly/webgpu-ready-mipmap.d.ts.map +1 -0
  50. package/dist/assembly/webgpu-ready.d.ts +7 -3
  51. package/dist/assembly/webgpu-ready.d.ts.map +1 -1
  52. package/dist/assembly/webgpu-renderer-bootstrap.d.ts +10 -0
  53. package/dist/assembly/webgpu-renderer-bootstrap.d.ts.map +1 -0
  54. package/dist/assembly/webgpu-renderer-contract.d.ts +62 -0
  55. package/dist/assembly/webgpu-renderer-contract.d.ts.map +1 -0
  56. package/dist/assembly/webgpu-renderer-guards.d.ts +9 -0
  57. package/dist/assembly/webgpu-renderer-guards.d.ts.map +1 -0
  58. package/dist/assembly/webgpu-renderer-observation.d.ts +6 -0
  59. package/dist/assembly/webgpu-renderer-observation.d.ts.map +1 -0
  60. package/dist/assembly/webgpu-renderer-recovery-failure.d.ts +12 -0
  61. package/dist/assembly/webgpu-renderer-recovery-failure.d.ts.map +1 -0
  62. package/dist/assembly/webgpu-renderer.d.ts +7 -141
  63. package/dist/assembly/webgpu-renderer.d.ts.map +1 -1
  64. package/dist/assembly/webgpu-vertex-layouts.d.ts +28 -84
  65. package/dist/assembly/webgpu-vertex-layouts.d.ts.map +1 -1
  66. package/dist/authoring.mjs +2 -2
  67. package/dist/capture/scene-projection.d.ts +41 -0
  68. package/dist/capture/scene-projection.d.ts.map +1 -0
  69. package/dist/{chunk-J52NMQKR.mjs → chunk-7MQ3XBSP.mjs} +1098 -844
  70. package/dist/chunk-7MQ3XBSP.mjs.map +1 -0
  71. package/dist/{chunk-GF523LHF.mjs → chunk-BLXGONR2.mjs} +30 -12
  72. package/dist/chunk-BLXGONR2.mjs.map +1 -0
  73. package/dist/{chunk-VSL23LZE.mjs → chunk-C3DDSXYK.mjs} +1188 -463
  74. package/dist/chunk-C3DDSXYK.mjs.map +1 -0
  75. package/dist/{chunk-IQMKJLNU.mjs → chunk-FUUO4UND.mjs} +443 -30
  76. package/dist/chunk-FUUO4UND.mjs.map +1 -0
  77. package/dist/{chunk-J6KACNOH.mjs → chunk-JRBDO2KB.mjs} +617 -7
  78. package/dist/chunk-JRBDO2KB.mjs.map +1 -0
  79. package/dist/{chunk-GE3SDD72.mjs → chunk-MDQJPY3T.mjs} +20 -40
  80. package/dist/chunk-MDQJPY3T.mjs.map +1 -0
  81. package/dist/{chunk-MYJ5RPJO.mjs → chunk-NO4WZCAH.mjs} +3 -3
  82. package/dist/chunk-NO4WZCAH.mjs.map +1 -0
  83. package/dist/{chunk-RBDBZ5R7.mjs → chunk-PA5DRJNI.mjs} +2 -2
  84. package/dist/chunk-PA5DRJNI.mjs.map +1 -0
  85. package/dist/{chunk-MBU4ZVE7.mjs → chunk-PSEQ6QPH.mjs} +4655 -892
  86. package/dist/chunk-PSEQ6QPH.mjs.map +1 -0
  87. package/dist/{chunk-JAASCMXA.mjs → chunk-S5UE2T5P.mjs} +289 -41
  88. package/dist/chunk-S5UE2T5P.mjs.map +1 -0
  89. package/dist/components/camera.d.ts +62 -2
  90. package/dist/components/camera.d.ts.map +1 -1
  91. package/dist/components/directional-light.d.ts +2 -2
  92. package/dist/components/dynamic-resolution.d.ts +15 -0
  93. package/dist/components/dynamic-resolution.d.ts.map +1 -0
  94. package/dist/components/index.d.ts +2 -0
  95. package/dist/components/index.d.ts.map +1 -1
  96. package/dist/components/instances.d.ts +6 -20
  97. package/dist/components/instances.d.ts.map +1 -1
  98. package/dist/components/light-helpers.d.ts.map +1 -1
  99. package/dist/components/reflection-probe.d.ts +1 -0
  100. package/dist/components/reflection-probe.d.ts.map +1 -1
  101. package/dist/components/scene-instance.d.ts +2 -1
  102. package/dist/components/scene-instance.d.ts.map +1 -1
  103. package/dist/components/screen-space-reflection.d.ts +14 -0
  104. package/dist/components/screen-space-reflection.d.ts.map +1 -0
  105. package/dist/components/skylight.d.ts +4 -1
  106. package/dist/components/skylight.d.ts.map +1 -1
  107. package/dist/construct-renderer.mjs +14809 -7570
  108. package/dist/construct-renderer.mjs.map +1 -1
  109. package/dist/device/device-scope.d.ts +2 -0
  110. package/dist/device/device-scope.d.ts.map +1 -1
  111. package/dist/device/gpu-residency.d.ts +3 -14
  112. package/dist/device/gpu-residency.d.ts.map +1 -1
  113. package/dist/dynamic-geometry.d.ts.map +1 -1
  114. package/dist/environment/background.d.ts +7 -0
  115. package/dist/environment/background.d.ts.map +1 -0
  116. package/dist/environment/ibl.d.ts +11 -0
  117. package/dist/environment/ibl.d.ts.map +1 -0
  118. package/dist/environment/storage.d.ts +14 -0
  119. package/dist/environment/storage.d.ts.map +1 -0
  120. package/dist/errors/gpu-driven.d.ts +6 -3
  121. package/dist/errors/gpu-driven.d.ts.map +1 -1
  122. package/dist/errors/render.d.ts +41 -4
  123. package/dist/errors/render.d.ts.map +1 -1
  124. package/dist/extract/camera.d.ts.map +1 -1
  125. package/dist/extract/contracts.d.ts +7 -0
  126. package/dist/extract/contracts.d.ts.map +1 -1
  127. package/dist/extract/gpu-driven.d.ts +50 -3
  128. package/dist/extract/gpu-driven.d.ts.map +1 -1
  129. package/dist/features/host.d.ts +23 -1
  130. package/dist/features/host.d.ts.map +1 -1
  131. package/dist/features/noise-texture.d.ts +17 -0
  132. package/dist/features/noise-texture.d.ts.map +1 -0
  133. package/dist/features/plan.d.ts +83 -2
  134. package/dist/features/plan.d.ts.map +1 -1
  135. package/dist/features/prepared-gpu-work.d.ts +37 -4
  136. package/dist/features/prepared-gpu-work.d.ts.map +1 -1
  137. package/dist/features/prepared-graphics-store.d.ts.map +1 -1
  138. package/dist/features/prepared-graphics.d.ts +5 -0
  139. package/dist/features/prepared-graphics.d.ts.map +1 -1
  140. package/dist/features/render-graph-compute.d.ts +5 -3
  141. package/dist/features/render-graph-compute.d.ts.map +1 -1
  142. package/dist/features/render-graph-contribution.d.ts +11 -3
  143. package/dist/features/render-graph-contribution.d.ts.map +1 -1
  144. package/dist/features/render-graph-raster.d.ts +19 -3
  145. package/dist/features/render-graph-raster.d.ts.map +1 -1
  146. package/dist/features/types.d.ts +11 -0
  147. package/dist/features/types.d.ts.map +1 -1
  148. package/dist/fullscreen-post-process-pass.d.ts +2 -0
  149. package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
  150. package/dist/gpu-driven/batch-topology.d.ts +34 -1
  151. package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
  152. package/dist/gpu-driven/material-artifacts.d.ts +24 -0
  153. package/dist/gpu-driven/material-artifacts.d.ts.map +1 -0
  154. package/dist/gpu-driven/material-bindings.d.ts +7 -0
  155. package/dist/gpu-driven/material-bindings.d.ts.map +1 -0
  156. package/dist/gpu-driven/pbr-program.d.ts +10 -0
  157. package/dist/gpu-driven/pbr-program.d.ts.map +1 -0
  158. package/dist/gpu-driven/prepared-draw.d.ts +2 -0
  159. package/dist/gpu-driven/prepared-draw.d.ts.map +1 -1
  160. package/dist/gpu-driven/production-raster.d.ts +169 -27
  161. package/dist/gpu-driven/production-raster.d.ts.map +1 -1
  162. package/dist/gpu-driven/shadow-views.d.ts +126 -0
  163. package/dist/gpu-driven/shadow-views.d.ts.map +1 -0
  164. package/dist/gpu-driven/view-gpu.d.ts +18 -2
  165. package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
  166. package/dist/gpu-resource.d.ts +5 -2
  167. package/dist/gpu-resource.d.ts.map +1 -1
  168. package/dist/gpu-scene-schema.d.ts +2 -8
  169. package/dist/gpu-scene-schema.d.ts.map +1 -1
  170. package/dist/gpu-scene.d.ts +14 -0
  171. package/dist/gpu-scene.d.ts.map +1 -1
  172. package/dist/gpu-texture-usage.d.ts +1 -0
  173. package/dist/gpu-texture-usage.d.ts.map +1 -1
  174. package/dist/hdrp-buffers.d.ts +9 -0
  175. package/dist/hdrp-buffers.d.ts.map +1 -1
  176. package/dist/ibl/IblPipelineCache.d.ts +2 -0
  177. package/dist/ibl/IblPipelineCache.d.ts.map +1 -1
  178. package/dist/ibl/frame-resources.d.ts +8 -0
  179. package/dist/ibl/frame-resources.d.ts.map +1 -0
  180. package/dist/ibl/skylight-bind-group.d.ts +3 -1
  181. package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
  182. package/dist/index.d.ts +87 -75
  183. package/dist/index.d.ts.map +1 -1
  184. package/dist/index.mjs +10 -8
  185. package/dist/index.mjs.map +1 -1
  186. package/dist/inspection-types.d.ts +180 -1
  187. package/dist/inspection-types.d.ts.map +1 -1
  188. package/dist/instances-derived-bounds.d.ts +11 -0
  189. package/dist/instances-derived-bounds.d.ts.map +1 -1
  190. package/dist/instances.d.ts +89 -44
  191. package/dist/instances.d.ts.map +1 -1
  192. package/dist/internal.d.ts +3 -0
  193. package/dist/internal.d.ts.map +1 -1
  194. package/dist/internal.mjs +117 -9
  195. package/dist/internal.mjs.map +1 -1
  196. package/dist/lifecycle.d.ts +2 -1
  197. package/dist/lifecycle.d.ts.map +1 -1
  198. package/dist/material-row.d.ts +15 -0
  199. package/dist/material-row.d.ts.map +1 -0
  200. package/dist/materials.d.ts +15 -0
  201. package/dist/materials.d.ts.map +1 -1
  202. package/dist/pbr-pipeline.d.ts +23 -5
  203. package/dist/pbr-pipeline.d.ts.map +1 -1
  204. package/dist/pipeline/render-extent.d.ts +51 -0
  205. package/dist/pipeline/render-extent.d.ts.map +1 -0
  206. package/dist/pipeline/standard-build-context.d.ts +7 -0
  207. package/dist/pipeline/standard-build-context.d.ts.map +1 -0
  208. package/dist/pipeline/standard-forward-lane.d.ts +3 -2
  209. package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
  210. package/dist/pipeline/standard-output/auto-exposure/capability.d.ts +12 -0
  211. package/dist/pipeline/standard-output/auto-exposure/capability.d.ts.map +1 -0
  212. package/dist/pipeline/standard-output/auto-exposure/gpu.d.ts +70 -0
  213. package/dist/pipeline/standard-output/auto-exposure/gpu.d.ts.map +1 -0
  214. package/dist/pipeline/standard-output/auto-exposure/graph.d.ts +75 -0
  215. package/dist/pipeline/standard-output/auto-exposure/graph.d.ts.map +1 -0
  216. package/dist/pipeline/standard-output/auto-exposure/inspection.d.ts +111 -0
  217. package/dist/pipeline/standard-output/auto-exposure/inspection.d.ts.map +1 -0
  218. package/dist/pipeline/standard-output/auto-exposure/oracle.d.ts +16 -0
  219. package/dist/pipeline/standard-output/auto-exposure/oracle.d.ts.map +1 -0
  220. package/dist/pipeline/standard-output/auto-exposure/preset.d.ts +14 -0
  221. package/dist/pipeline/standard-output/auto-exposure/preset.d.ts.map +1 -0
  222. package/dist/pipeline/standard-output/auto-exposure/state.d.ts +46 -0
  223. package/dist/pipeline/standard-output/auto-exposure/state.d.ts.map +1 -0
  224. package/dist/pipeline/standard-output/color-transform.d.ts +27 -0
  225. package/dist/pipeline/standard-output/color-transform.d.ts.map +1 -0
  226. package/dist/pipeline/standard-output/graph.d.ts +15 -0
  227. package/dist/pipeline/standard-output/graph.d.ts.map +1 -0
  228. package/dist/pipeline/standard-output/lut-admission.d.ts +29 -0
  229. package/dist/pipeline/standard-output/lut-admission.d.ts.map +1 -0
  230. package/dist/pipeline/standard-output/lut-gpu.d.ts +48 -0
  231. package/dist/pipeline/standard-output/lut-gpu.d.ts.map +1 -0
  232. package/dist/pipeline/standard-output/lut-state.d.ts +68 -0
  233. package/dist/pipeline/standard-output/lut-state.d.ts.map +1 -0
  234. package/dist/pipeline/standard-output/resources.d.ts +10 -0
  235. package/dist/pipeline/standard-output/resources.d.ts.map +1 -0
  236. package/dist/pipeline/standard-output/types.d.ts +39 -0
  237. package/dist/pipeline/standard-output/types.d.ts.map +1 -0
  238. package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
  239. package/dist/pipeline/standard-post.d.ts +2 -2
  240. package/dist/pipeline/standard-post.d.ts.map +1 -1
  241. package/dist/pipeline/standard-profile.d.ts +2 -1
  242. package/dist/pipeline/standard-profile.d.ts.map +1 -1
  243. package/dist/pipeline-builder.d.ts +5 -2
  244. package/dist/pipeline-builder.d.ts.map +1 -1
  245. package/dist/pipeline-spec-types.d.ts +4 -0
  246. package/dist/pipeline-spec-types.d.ts.map +1 -1
  247. package/dist/pipeline-spec.d.ts +1 -9
  248. package/dist/pipeline-spec.d.ts.map +1 -1
  249. package/dist/plugin.d.ts.map +1 -1
  250. package/dist/points-lines/standard-owner.d.ts +1 -1
  251. package/dist/points-lines/standard-owner.d.ts.map +1 -1
  252. package/dist/post-process-errors.d.ts +9 -2
  253. package/dist/post-process-errors.d.ts.map +1 -1
  254. package/dist/prepare/extended-lighting/resources.d.ts +3 -3
  255. package/dist/prepare/prepared-graphics-resolver.d.ts +6 -1
  256. package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -1
  257. package/dist/record/dynamic-geometry-consumption.d.ts +15 -0
  258. package/dist/record/dynamic-geometry-consumption.d.ts.map +1 -0
  259. package/dist/record/frame-lighting.d.ts +3 -3
  260. package/dist/record/frame-lighting.d.ts.map +1 -1
  261. package/dist/record/frame-snapshot.d.ts +109 -13
  262. package/dist/record/frame-snapshot.d.ts.map +1 -1
  263. package/dist/record/frame-targets.d.ts.map +1 -1
  264. package/dist/record/frame.d.ts +41 -5
  265. package/dist/record/frame.d.ts.map +1 -1
  266. package/dist/record/main-pass-geometry.d.ts +13 -9
  267. package/dist/record/main-pass-geometry.d.ts.map +1 -1
  268. package/dist/record/main-pass-material.d.ts +43 -3
  269. package/dist/record/main-pass-material.d.ts.map +1 -1
  270. package/dist/record/main-pass-sprite-draws.d.ts +2 -10
  271. package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
  272. package/dist/record/main-pass.d.ts +14 -2
  273. package/dist/record/main-pass.d.ts.map +1 -1
  274. package/dist/record/mesh-ssbo.d.ts +15 -6
  275. package/dist/record/mesh-ssbo.d.ts.map +1 -1
  276. package/dist/record/prepared-material-bindings.d.ts +19 -0
  277. package/dist/record/prepared-material-bindings.d.ts.map +1 -0
  278. package/dist/record/recovery-pipeline.d.ts +1 -0
  279. package/dist/record/recovery-pipeline.d.ts.map +1 -1
  280. package/dist/record/render-context.d.ts +101 -22
  281. package/dist/record/render-context.d.ts.map +1 -1
  282. package/dist/record/shadow-pass.d.ts +62 -7
  283. package/dist/record/shadow-pass.d.ts.map +1 -1
  284. package/dist/record/skybox-post-pass.d.ts +1 -1
  285. package/dist/record/skybox-post-pass.d.ts.map +1 -1
  286. package/dist/record/typed-frame-graph.d.ts +39 -8
  287. package/dist/record/typed-frame-graph.d.ts.map +1 -1
  288. package/dist/record/view-ubo.d.ts +1 -0
  289. package/dist/record/view-ubo.d.ts.map +1 -1
  290. package/dist/recovery/render-system-candidate.d.ts +10 -2
  291. package/dist/recovery/render-system-candidate.d.ts.map +1 -1
  292. package/dist/recovery/render-system-roots.d.ts +11 -0
  293. package/dist/recovery/render-system-roots.d.ts.map +1 -0
  294. package/dist/recovery/types.d.ts +76 -0
  295. package/dist/recovery/types.d.ts.map +1 -0
  296. package/dist/reflection/background.d.ts +14 -0
  297. package/dist/reflection/background.d.ts.map +1 -0
  298. package/dist/reflection/filter.d.ts.map +1 -1
  299. package/dist/reflection/projection.d.ts +1 -0
  300. package/dist/reflection/projection.d.ts.map +1 -1
  301. package/dist/reflection/record-owner.d.ts +4 -4
  302. package/dist/reflection/record-owner.d.ts.map +1 -1
  303. package/dist/render-contract.d.ts +211 -53
  304. package/dist/render-contract.d.ts.map +1 -1
  305. package/dist/render-graph-primitives.d.ts +1 -0
  306. package/dist/render-graph-primitives.d.ts.map +1 -1
  307. package/dist/render-pipeline.d.ts +81 -6
  308. package/dist/render-pipeline.d.ts.map +1 -1
  309. package/dist/render-system-extract-tail.d.ts +15 -6
  310. package/dist/render-system-extract-tail.d.ts.map +1 -1
  311. package/dist/render-system-extract.d.ts +128 -41
  312. package/dist/render-system-extract.d.ts.map +1 -1
  313. package/dist/render-system-projections.d.ts +22 -0
  314. package/dist/render-system-projections.d.ts.map +1 -0
  315. package/dist/render-system.d.ts +27 -77
  316. package/dist/render-system.d.ts.map +1 -1
  317. package/dist/scene/render-scene-types.d.ts +14 -7
  318. package/dist/scene/render-scene-types.d.ts.map +1 -1
  319. package/dist/scene/render-scene.d.ts +31 -11
  320. package/dist/scene/render-scene.d.ts.map +1 -1
  321. package/dist/scene/shadow-visibility.d.ts +5 -0
  322. package/dist/scene/shadow-visibility.d.ts.map +1 -0
  323. package/dist/ssao-config.d.ts +8 -6
  324. package/dist/ssao-config.d.ts.map +1 -1
  325. package/dist/ssr/admission.d.ts +70 -1
  326. package/dist/ssr/admission.d.ts.map +1 -1
  327. package/dist/ssr/compose.d.ts +13 -0
  328. package/dist/ssr/compose.d.ts.map +1 -0
  329. package/dist/ssr/errors.d.ts +35 -0
  330. package/dist/ssr/errors.d.ts.map +1 -1
  331. package/dist/ssr/graph.d.ts +60 -0
  332. package/dist/ssr/graph.d.ts.map +1 -0
  333. package/dist/ssr/history.d.ts +97 -0
  334. package/dist/ssr/history.d.ts.map +1 -0
  335. package/dist/ssr/hiz.d.ts +37 -0
  336. package/dist/ssr/hiz.d.ts.map +1 -0
  337. package/dist/ssr/inspection.d.ts +42 -0
  338. package/dist/ssr/inspection.d.ts.map +1 -0
  339. package/dist/ssr/resources.d.ts +58 -0
  340. package/dist/ssr/resources.d.ts.map +1 -0
  341. package/dist/ssr/temporal.d.ts +38 -0
  342. package/dist/ssr/temporal.d.ts.map +1 -0
  343. package/dist/systems/skin-palette-allocator.d.ts +32 -10
  344. package/dist/systems/skin-palette-allocator.d.ts.map +1 -1
  345. package/dist/systems/skin-palette-types.d.ts +15 -0
  346. package/dist/systems/skin-palette-types.d.ts.map +1 -1
  347. package/dist/systems/transparent-dispatch.d.ts +9 -0
  348. package/dist/systems/transparent-dispatch.d.ts.map +1 -0
  349. package/dist/targets/material-source.d.ts +7 -0
  350. package/dist/targets/material-source.d.ts.map +1 -1
  351. package/dist/temporal/frame-coordinator.d.ts +7 -0
  352. package/dist/temporal/frame-coordinator.d.ts.map +1 -1
  353. package/dist/temporal/gpu.d.ts +8 -0
  354. package/dist/temporal/gpu.d.ts.map +1 -1
  355. package/dist/temporal/history.d.ts.map +1 -1
  356. package/dist/temporal/index.mjs +6 -6
  357. package/dist/temporal/inspection.d.ts.map +1 -1
  358. package/dist/temporal/standard-scene-data.d.ts +4 -2
  359. package/dist/temporal/standard-scene-data.d.ts.map +1 -1
  360. package/dist/temporal/target-coverage-attachment.d.ts +15 -0
  361. package/dist/temporal/target-coverage-attachment.d.ts.map +1 -0
  362. package/dist/temporal/temporal-view.d.ts +6 -0
  363. package/dist/temporal/temporal-view.d.ts.map +1 -1
  364. package/dist/temporal/view.d.ts +6 -0
  365. package/dist/temporal/view.d.ts.map +1 -1
  366. package/dist/typed-render-graph-primitives.d.ts +41 -1
  367. package/dist/typed-render-graph-primitives.d.ts.map +1 -1
  368. package/dist/typed-shadow-passes.d.ts +3 -1
  369. package/dist/typed-shadow-passes.d.ts.map +1 -1
  370. package/dist/volume/component.d.ts +1 -0
  371. package/dist/volume/component.d.ts.map +1 -1
  372. package/dist/volume/temporal.d.ts +6 -0
  373. package/dist/volume/temporal.d.ts.map +1 -1
  374. package/package.json +21 -20
  375. package/src/__tests__/auto-exposure-gpu-evidence.ts +291 -0
  376. package/src/__tests__/auto-exposure-inspection.unit.test.ts +80 -0
  377. package/src/__tests__/auto-exposure-transaction.integration.test.ts +99 -0
  378. package/src/__tests__/auto-exposure.browser.test.ts +33 -0
  379. package/src/__tests__/auto-exposure.dawn.test.ts +33 -0
  380. package/src/__tests__/capture-scene-projection.unit.test.ts +24 -0
  381. package/src/__tests__/detached-inspection.integration.test.ts +5 -0
  382. package/src/__tests__/device-feature-admission.unit.test.ts +15 -24
  383. package/src/__tests__/device-loss-fanout.unit.test.ts +43 -0
  384. package/src/__tests__/device-scope-lifecycle.unit.test.ts +18 -0
  385. package/src/__tests__/device-scope-stale-matrix.unit.test.ts +18 -0
  386. package/src/__tests__/docs-gate-green.unit.test.ts +3 -3
  387. package/src/__tests__/dynamic-geometry-batch.unit.test.ts +157 -0
  388. package/src/__tests__/dynamic-geometry.unit.test.ts +36 -0
  389. package/src/__tests__/dynamic-resolution-plugin.integration.test.ts +81 -0
  390. package/src/__tests__/factory-contract.integration.test.ts +231 -9
  391. package/src/__tests__/fallback-row-stride-surface.unit.test.ts +19 -0
  392. package/src/__tests__/feature-depth-input.dawn.test.ts +121 -0
  393. package/src/__tests__/feature-noise.unit.test.ts +38 -0
  394. package/src/__tests__/fixtures/taa-resolve-pinned-baseline.wgsl +301 -0
  395. package/src/__tests__/frame-camera-selection.unit.test.ts +131 -0
  396. package/src/__tests__/frame-observation.contract.test.ts +21 -0
  397. package/src/__tests__/frame-plan-contract.unit.test.ts +24 -0
  398. package/src/__tests__/frame-targets.unit.test.ts +24 -0
  399. package/src/__tests__/fullscreen-feature-plan.unit.test.ts +3 -0
  400. package/src/__tests__/gpu-driven-baseline.characterization.test.ts +79 -0
  401. package/src/__tests__/gpu-driven-batch-topology-pbr.unit.test.ts +307 -7
  402. package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +122 -142
  403. package/src/__tests__/gpu-driven-indirect-raster.browser.test.ts +10 -1
  404. package/src/__tests__/gpu-driven-lod-cache.unit.test.ts +261 -0
  405. package/src/__tests__/gpu-driven-mesh-world-identity.unit.test.ts +346 -0
  406. package/src/__tests__/gpu-driven-pbr.dawn.test.ts +1422 -0
  407. package/src/__tests__/gpu-driven-pbr.integration.test.ts +21 -0
  408. package/src/__tests__/gpu-driven-production-fixture.ts +96 -0
  409. package/src/__tests__/gpu-driven-production.integration.test.ts +1076 -106
  410. package/src/__tests__/gpu-driven-scaling.unit.test.ts +1 -3
  411. package/src/__tests__/gpu-driven-shadow-views.browser.test.ts +63 -0
  412. package/src/__tests__/gpu-driven-shadow-views.dawn.test.ts +294 -0
  413. package/src/__tests__/gpu-driven-shadow-views.integration.test.ts +97 -0
  414. package/src/__tests__/gpu-driven-shadow-views.unit.test.ts +168 -0
  415. package/src/__tests__/gpu-driven-skin-contract.test-d.ts +11 -0
  416. package/src/__tests__/gpu-driven-view-gpu-evidence.ts +72 -20
  417. package/src/__tests__/gpu-driven-view-graph.integration.test.ts +30 -9
  418. package/src/__tests__/gpu-driven-view.unit.test.ts +160 -52
  419. package/src/__tests__/gpu-pass-timing-browser-runner.ts +15 -0
  420. package/src/__tests__/gpu-pass-timing.browser.test.ts +20 -2
  421. package/src/__tests__/gpu-resource-scope.unit.test.ts +71 -0
  422. package/src/__tests__/gpu-resource-store-stride.unit.test.ts +42 -0
  423. package/src/__tests__/gpu-scene-render-graph-gpu.ts +19 -5
  424. package/src/__tests__/gpu-scene.dawn.test.ts +40 -13
  425. package/src/__tests__/gpu-scene.unit.test.ts +613 -33
  426. package/src/__tests__/instances-culling.integration.test.ts +36 -10
  427. package/src/__tests__/instances-derived-bounds.unit.test.ts +54 -0
  428. package/src/__tests__/instances-store.unit.test.ts +242 -39
  429. package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +6 -0
  430. package/src/__tests__/lighting-scene-roundtrip.integration.test.ts +13 -16
  431. package/src/__tests__/lut-lkg-transaction.integration.test.ts +122 -0
  432. package/src/__tests__/material-contract-inventory.unit.test.ts +5 -6
  433. package/src/__tests__/material-dispatch-shader-id.unit.test.ts +51 -0
  434. package/src/__tests__/material-lane-selection.unit.test.ts +60 -0
  435. package/src/__tests__/material-numeric-upload.unit.test.ts +53 -0
  436. package/src/__tests__/material-texture-handles.unit.test.ts +18 -0
  437. package/src/__tests__/material-texture-source.unit.test.ts +87 -0
  438. package/src/__tests__/materials-authoring-validation.unit.test.ts +41 -0
  439. package/src/__tests__/materials-standard-contract.unit.test.ts +57 -3
  440. package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +4 -0
  441. package/src/__tests__/mesh-submission-lifetime.unit.test.ts +8 -0
  442. package/src/__tests__/morph-neutral-admission.unit.test.ts +19 -0
  443. package/src/__tests__/normal-fallback.dawn.test.ts +122 -0
  444. package/src/__tests__/particle-material-input-layout.unit.test.ts +104 -0
  445. package/src/__tests__/physical-clearcoat.integration.test.ts +42 -3
  446. package/src/__tests__/pipeline-texture-specialization.unit.test.ts +138 -0
  447. package/src/__tests__/point-shadow-inspection.unit.test.ts +2 -0
  448. package/src/__tests__/post-process-error-policy-owner.unit.test.ts +6 -5
  449. package/src/__tests__/prepared-gpu-driven-pbr-contract.test-d.ts +31 -0
  450. package/src/__tests__/prepared-gpu-driven-pbr-contract.unit.test.ts +39 -0
  451. package/src/__tests__/prepared-gpu-driven-pbr.integration.test.ts +251 -9
  452. package/src/__tests__/prepared-graphics-capability.unit.test.ts +21 -0
  453. package/src/__tests__/prepared-graphics-pipeline-warmup.unit.test.ts +6 -2
  454. package/src/__tests__/profiler-phase-catalog.test.ts +5 -0
  455. package/src/__tests__/public-surface.test-d.ts +3 -0
  456. package/src/__tests__/recovery-candidate-prepare.contract.test.ts +30 -12
  457. package/src/__tests__/reflection-fallback-async-publication.unit.test.ts +171 -0
  458. package/src/__tests__/reflection-probe-authoring.unit.test.ts +12 -10
  459. package/src/__tests__/reflection-probe-box.dawn.test.ts +71 -0
  460. package/src/__tests__/reflection-probe-filter.unit.test.ts +9 -0
  461. package/src/__tests__/reflection-probe-orientation.dawn.test.ts +294 -0
  462. package/src/__tests__/reflection-probe-record-owner.characterization.unit.test.ts +5 -14
  463. package/src/__tests__/reflection-probe-updates.unit.test.ts +129 -0
  464. package/src/__tests__/render-error-code-owner.test-d.ts +7 -0
  465. package/src/__tests__/render-error-detail-ssot.test-d.ts +27 -1
  466. package/src/__tests__/render-error-exhaustive.test-d.ts +15 -0
  467. package/src/__tests__/render-extent.unit.test.ts +63 -0
  468. package/src/__tests__/render-feature-gpu-work.integration.test.ts +285 -2
  469. package/src/__tests__/render-feature-plan.unit.test.ts +245 -0
  470. package/src/__tests__/render-feature-shadow-order.unit.test.ts +228 -0
  471. package/src/__tests__/render-feature-zero-work.unit.test.ts +35 -1
  472. package/src/__tests__/render-graph-fallback.integration.test.ts +2 -2
  473. package/src/__tests__/render-owner-cohesion.unit.test.ts +55 -0
  474. package/src/__tests__/render-scene-mixed-updates.integration.test.ts +426 -0
  475. package/src/__tests__/render-scene-projection.unit.test.ts +915 -23
  476. package/src/__tests__/render-scene-resource-updates.integration.test.ts +214 -0
  477. package/src/__tests__/render-scene-skin-lifecycle.integration.test.ts +173 -0
  478. package/src/__tests__/render-scene-temporal-retry.unit.test.ts +133 -0
  479. package/src/__tests__/render-target-material-source.test-d.ts +27 -3
  480. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +233 -9
  481. package/src/__tests__/renderer-frame-transaction.integration.test.ts +923 -5
  482. package/src/__tests__/shader-manifest-fixture.ts +45 -0
  483. package/src/__tests__/skin-motion-regression.unit.test.ts +0 -33
  484. package/src/__tests__/skin-palette-persistent.integration.test.ts +28 -0
  485. package/src/__tests__/skin-palette-persistent.unit.test.ts +247 -0
  486. package/src/__tests__/skinned-shadow-caster.test.ts +125 -14
  487. package/src/__tests__/specular-environment-scale.dawn.test.ts +158 -0
  488. package/src/__tests__/ssao-config.unit.test.ts +7 -0
  489. package/src/__tests__/ssao-surface.dawn.test.ts +252 -0
  490. package/src/__tests__/ssr-admission-matrix.integration.test.ts +7 -1
  491. package/src/__tests__/ssr-confidence-compose.unit.test.ts +84 -0
  492. package/src/__tests__/ssr-coordinate-oracle.unit.test.ts +28 -0
  493. package/src/__tests__/ssr-cube-silhouette.dawn.test.ts +270 -0
  494. package/src/__tests__/ssr-format-probe-gating.integration.test.ts +82 -0
  495. package/src/__tests__/ssr-gpu-dispatch.browser.test.ts +99 -0
  496. package/src/__tests__/ssr-gpu-dispatch.dawn.test.ts +116 -0
  497. package/src/__tests__/ssr-gpu-dispatch.ts +951 -0
  498. package/src/__tests__/ssr-graph-topology.unit.test.ts +104 -0
  499. package/src/__tests__/ssr-history-filter.dawn.test.ts +198 -0
  500. package/src/__tests__/ssr-hit-color.dawn.test.ts +273 -0
  501. package/src/__tests__/ssr-hiz-odd-reduction.dawn.test.ts +569 -0
  502. package/src/__tests__/ssr-hiz-rescue.dawn.test.ts +279 -0
  503. package/src/__tests__/ssr-hiz.browser.test.ts +150 -0
  504. package/src/__tests__/ssr-hiz.dawn.test.ts +150 -0
  505. package/src/__tests__/ssr-hiz.unit.test.ts +56 -0
  506. package/src/__tests__/ssr-inspection.unit.test.ts +105 -0
  507. package/src/__tests__/ssr-memory-budget.unit.test.ts +45 -0
  508. package/src/__tests__/ssr-performance-sequence-aggregation.unit.test.ts +15 -0
  509. package/src/__tests__/ssr-public-surface.test-d.ts +37 -0
  510. package/src/__tests__/ssr-receiver-coverage.dawn.test.ts +387 -0
  511. package/src/__tests__/ssr-reflection-mip-reducer.dawn.test.ts +309 -0
  512. package/src/__tests__/ssr-reprojection-probe.ts +90 -0
  513. package/src/__tests__/ssr-roughness-mip.dawn.test.ts +163 -0
  514. package/src/__tests__/ssr-shader-prewarm.unit.test.ts +59 -0
  515. package/src/__tests__/ssr-spatial.integration.test.ts +141 -0
  516. package/src/__tests__/ssr-stable-lattice.dawn.test.ts +475 -0
  517. package/src/__tests__/ssr-temporal-history.unit.test.ts +202 -0
  518. package/src/__tests__/ssr-texel-crossing.dawn.test.ts +448 -0
  519. package/src/__tests__/ssr-zero-work.integration.test.ts +87 -0
  520. package/src/__tests__/standard-cluster-variant-resolution.unit.test.ts +84 -12
  521. package/src/__tests__/standard-clustered-pipeline.unit.test.ts +29 -0
  522. package/src/__tests__/standard-output-chain-contract.unit.test.ts +99 -0
  523. package/src/__tests__/standard-output-chain.integration.test.ts +73 -0
  524. package/src/__tests__/standard-output-gpu-evidence.ts +205 -0
  525. package/src/__tests__/standard-output.browser.test.ts +15 -0
  526. package/src/__tests__/standard-output.dawn.test.ts +15 -0
  527. package/src/__tests__/standard-pbr-artifact-assembly.unit.test.ts +275 -0
  528. package/src/__tests__/standard-pipeline.integration.test.ts +320 -3
  529. package/src/__tests__/standard-profile-oracle.unit.test.ts +49 -0
  530. package/src/__tests__/standard-surface-lighting.unit.test.ts +41 -0
  531. package/src/__tests__/standard-texture-specialization.dawn.test.ts +141 -0
  532. package/src/__tests__/surface-adjacent-regressions.integration.test.ts +6 -3
  533. package/src/__tests__/taa-coverage-edge.dawn.test.ts +199 -0
  534. package/src/__tests__/taa-history-clipping.dawn.test.ts +328 -0
  535. package/src/__tests__/taa-neighborhood-equivalence.dawn.test.ts +782 -0
  536. package/src/__tests__/taa-stability-feedback.browser.test.ts +23 -0
  537. package/src/__tests__/taa-stability-feedback.dawn.test.ts +68 -0
  538. package/src/__tests__/taa-stability-feedback.ts +342 -0
  539. package/src/__tests__/temporal-history-lifecycle.unit.test.ts +49 -7
  540. package/src/__tests__/temporal-reset-matrix.unit.test.ts +9 -0
  541. package/src/__tests__/temporal-transaction.integration.test.ts +28 -0
  542. package/src/__tests__/temporal-view.unit.test.ts +17 -0
  543. package/src/__tests__/texture-usage-surface.unit.test.ts +4 -2
  544. package/src/__tests__/transmission-prewarm.unit.test.ts +57 -0
  545. package/src/__tests__/typed-pipeline-topology.unit.test.ts +109 -4
  546. package/src/__tests__/typed-scene-pass-material-cache.integration.test.ts +126 -0
  547. package/src/__tests__/vertex-layouts-ssot.unit.test.ts +47 -0
  548. package/src/__tests__/visibility-extract.perf.test.ts +20 -8
  549. package/src/__tests__/visibility-instances.integration.test.ts +19 -7
  550. package/src/__tests__/visibility-producer-matrix.integration.test.ts +20 -9
  551. package/src/__tests__/volumetric-fog-stage-readback.dawn.test.ts +62 -13
  552. package/src/__tests__/volumetric-fog-topology.unit.test.ts +7 -7
  553. package/src/assembly/atmosphere-shader-prewarm.ts +39 -0
  554. package/src/assembly/device-feature-admission.ts +9 -4
  555. package/src/assembly/dynamic-geometry-host.ts +284 -163
  556. package/src/assembly/dynamic-geometry-runtime.ts +71 -0
  557. package/src/assembly/factory.ts +4 -0
  558. package/src/assembly/gpu-driven-owner.ts +29 -0
  559. package/src/assembly/host-contract.ts +19 -0
  560. package/src/assembly/material/assembly.ts +383 -1
  561. package/src/assembly/material/pipeline-helpers.ts +100 -0
  562. package/src/assembly/material-shader-policy.ts +110 -46
  563. package/src/assembly/recovery/device-loss-fanout.ts +5 -0
  564. package/src/assembly/recovery/failure-location.ts +62 -0
  565. package/src/assembly/recovery/recovery-attempt.ts +2 -29
  566. package/src/assembly/recovery/renderer-recover.ts +16 -17
  567. package/src/assembly/renderer-facade.ts +34 -1
  568. package/src/assembly/renderer-feature-inspection.ts +13 -0
  569. package/src/assembly/renderer-frame-transaction.ts +63 -0
  570. package/src/assembly/renderer-helpers.ts +26 -0
  571. package/src/assembly/renderer-inspection.ts +6 -0
  572. package/src/assembly/shader-prewarm-policy.ts +46 -1
  573. package/src/assembly/skin-palette-owner.ts +21 -0
  574. package/src/assembly/ssr-shader-prewarm.ts +41 -0
  575. package/src/assembly/webgpu-device-loss.ts +75 -0
  576. package/src/assembly/webgpu-pbr-ready.ts +232 -0
  577. package/src/assembly/webgpu-ready-mipmap.ts +26 -0
  578. package/src/assembly/webgpu-ready.ts +161 -131
  579. package/src/assembly/webgpu-renderer-bootstrap.ts +85 -0
  580. package/src/assembly/webgpu-renderer-contract.ts +69 -0
  581. package/src/assembly/webgpu-renderer-guards.ts +32 -0
  582. package/src/assembly/webgpu-renderer-observation.ts +43 -0
  583. package/src/assembly/webgpu-renderer-recovery-failure.ts +62 -0
  584. package/src/assembly/webgpu-renderer.ts +744 -730
  585. package/src/assembly/webgpu-vertex-layouts.ts +233 -87
  586. package/src/capture/scene-projection.ts +37 -0
  587. package/src/components/__tests__/camera-exposure.contract.unit.test.ts +153 -0
  588. package/src/components/__tests__/dynamic-resolution-schema.unit.test.ts +65 -0
  589. package/src/components/__tests__/light-radius.integration.test.ts +59 -0
  590. package/src/components/camera.ts +287 -7
  591. package/src/components/directional-light.ts +3 -3
  592. package/src/components/dynamic-resolution.ts +67 -0
  593. package/src/components/index.ts +2 -0
  594. package/src/components/instances.ts +45 -18
  595. package/src/components/light-helpers.ts +6 -1
  596. package/src/components/reflection-probe.ts +1 -0
  597. package/src/components/scene-instance.ts +2 -1
  598. package/src/components/screen-space-reflection.ts +21 -0
  599. package/src/components/skylight.ts +4 -1
  600. package/src/components/sprite-animation.ts +2 -2
  601. package/src/components/sprite-instances.ts +1 -1
  602. package/src/device/device-scope.ts +13 -7
  603. package/src/device/gpu-residency.ts +45 -42
  604. package/src/dynamic-geometry.ts +13 -8
  605. package/src/environment/background.ts +281 -0
  606. package/src/environment/ibl.ts +211 -0
  607. package/src/environment/storage.ts +63 -0
  608. package/src/errors/gpu-driven.ts +49 -8
  609. package/src/errors/render.ts +91 -3
  610. package/src/extract/camera.ts +37 -1
  611. package/src/extract/contracts.ts +10 -0
  612. package/src/extract/gpu-driven.ts +240 -10
  613. package/src/features/host.ts +237 -19
  614. package/src/features/noise-texture.ts +91 -0
  615. package/src/features/plan.ts +553 -24
  616. package/src/features/prepared-gpu-work.ts +631 -49
  617. package/src/features/prepared-graphics-store.ts +31 -0
  618. package/src/features/prepared-graphics.ts +5 -0
  619. package/src/features/render-graph-compute.ts +41 -8
  620. package/src/features/render-graph-contribution.ts +141 -3
  621. package/src/features/render-graph-raster.ts +143 -30
  622. package/src/features/types.ts +11 -0
  623. package/src/fullscreen-post-process-pass.ts +3 -0
  624. package/src/gpu-driven/batch-topology.ts +452 -108
  625. package/src/gpu-driven/material-artifacts.ts +179 -0
  626. package/src/gpu-driven/material-bindings.ts +41 -0
  627. package/src/gpu-driven/pbr-program.ts +31 -0
  628. package/src/gpu-driven/prepared-draw.ts +42 -6
  629. package/src/gpu-driven/production-raster.ts +2806 -716
  630. package/src/gpu-driven/shadow-views.ts +539 -0
  631. package/src/gpu-driven/view-gpu.ts +188 -41
  632. package/src/gpu-resource.ts +21 -2
  633. package/src/gpu-scene-schema.ts +61 -11
  634. package/src/gpu-scene.ts +197 -99
  635. package/src/gpu-texture-usage.ts +1 -0
  636. package/src/hdrp-buffers.ts +141 -36
  637. package/src/ibl/IblPipelineCache.ts +5 -0
  638. package/src/ibl/frame-resources.ts +38 -0
  639. package/src/ibl/skylight-bind-group.ts +32 -21
  640. package/src/index.ts +194 -75
  641. package/src/inspection-types.ts +207 -1
  642. package/src/instances-derived-bounds.ts +258 -34
  643. package/src/instances.ts +459 -150
  644. package/src/internal.ts +22 -0
  645. package/src/lifecycle.ts +2 -0
  646. package/src/material-row.ts +194 -0
  647. package/src/materials.ts +44 -8
  648. package/src/pbr-pipeline.ts +172 -19
  649. package/src/pipeline/render-extent.ts +111 -0
  650. package/src/pipeline/standard-build-context.ts +7 -0
  651. package/src/pipeline/standard-forward-lane.ts +74 -29
  652. package/src/pipeline/standard-output/__tests__/lut-admission.unit.test.ts +103 -0
  653. package/src/pipeline/standard-output/auto-exposure/__tests__/capability.unit.test.ts +40 -0
  654. package/src/pipeline/standard-output/auto-exposure/__tests__/gpu.contract.unit.test.ts +125 -0
  655. package/src/pipeline/standard-output/auto-exposure/__tests__/graph.contract.unit.test.ts +94 -0
  656. package/src/pipeline/standard-output/auto-exposure/__tests__/oracle.test.ts +108 -0
  657. package/src/pipeline/standard-output/auto-exposure/__tests__/preset.test.ts +26 -0
  658. package/src/pipeline/standard-output/auto-exposure/capability.ts +38 -0
  659. package/src/pipeline/standard-output/auto-exposure/gpu.ts +567 -0
  660. package/src/pipeline/standard-output/auto-exposure/graph.ts +221 -0
  661. package/src/pipeline/standard-output/auto-exposure/inspection.ts +231 -0
  662. package/src/pipeline/standard-output/auto-exposure/oracle.ts +291 -0
  663. package/src/pipeline/standard-output/auto-exposure/preset.ts +28 -0
  664. package/src/pipeline/standard-output/auto-exposure/state.ts +156 -0
  665. package/src/pipeline/standard-output/color-transform.ts +124 -0
  666. package/src/pipeline/standard-output/graph.ts +139 -0
  667. package/src/pipeline/standard-output/lut-admission.ts +121 -0
  668. package/src/pipeline/standard-output/lut-gpu.ts +399 -0
  669. package/src/pipeline/standard-output/lut-state.ts +176 -0
  670. package/src/pipeline/standard-output/resources.ts +121 -0
  671. package/src/pipeline/standard-output/types.ts +58 -0
  672. package/src/pipeline/standard-pipeline.ts +232 -70
  673. package/src/pipeline/standard-post.ts +190 -27
  674. package/src/pipeline/standard-profile.ts +2 -1
  675. package/src/pipeline-builder.ts +28 -9
  676. package/src/pipeline-spec-types.ts +4 -0
  677. package/src/pipeline-spec.ts +37 -29
  678. package/src/plugin.ts +4 -0
  679. package/src/points-lines/standard-owner.ts +6 -14
  680. package/src/post-process-errors.ts +26 -18
  681. package/src/prepare/__tests__/extended-lighting-capability.unit.test.ts +2 -2
  682. package/src/prepare/extended-lighting/resources.ts +3 -3
  683. package/src/prepare/prepared-graphics-resolver.ts +9 -2
  684. package/src/record/__tests__/main-pass-geometry.unit.test.ts +68 -0
  685. package/src/record/__tests__/material-bg-cache.unit.test.ts +45 -0
  686. package/src/record/__tests__/material-slot-plan.unit.test.ts +57 -0
  687. package/src/record/__tests__/mesh-ssbo.unit.test.ts +40 -1
  688. package/src/record/__tests__/recovery-pipeline.unit.test.ts +20 -1
  689. package/src/record/__tests__/sprite-material-abi.unit.test.ts +41 -6
  690. package/src/record/__tests__/temporal-payload.unit.test.ts +2 -0
  691. package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +45 -0
  692. package/src/record/__tests__/view-ubo-layout.unit.test.ts +5 -0
  693. package/src/record/dynamic-geometry-consumption.ts +59 -0
  694. package/src/record/frame-lighting.ts +15 -12
  695. package/src/record/frame-snapshot.ts +146 -34
  696. package/src/record/frame-targets.ts +9 -0
  697. package/src/record/frame.ts +838 -170
  698. package/src/record/main-pass-geometry.ts +209 -103
  699. package/src/record/main-pass-material.ts +157 -40
  700. package/src/record/main-pass-sprite-draws.ts +16 -107
  701. package/src/record/main-pass.ts +141 -12
  702. package/src/record/material-uniforms.ts +1 -1
  703. package/src/record/mesh-ssbo.ts +59 -15
  704. package/src/record/prepared-material-bindings.ts +238 -0
  705. package/src/record/recovery-pipeline.ts +69 -90
  706. package/src/record/render-context.ts +123 -24
  707. package/src/record/shadow-pass.ts +1389 -230
  708. package/src/record/skybox-post-pass.ts +14 -3
  709. package/src/record/typed-frame-graph.ts +1064 -47
  710. package/src/record/view-ubo.ts +12 -1
  711. package/src/recovery/render-system-candidate.ts +135 -68
  712. package/src/recovery/render-system-roots.ts +113 -0
  713. package/src/recovery/types.ts +77 -0
  714. package/src/reflection/background.ts +151 -0
  715. package/src/reflection/filter.ts +3 -0
  716. package/src/reflection/projection.ts +16 -6
  717. package/src/reflection/record-owner.ts +308 -140
  718. package/src/render-contract.ts +237 -49
  719. package/src/render-graph-primitives.ts +34 -5
  720. package/src/render-pipeline.ts +90 -2
  721. package/src/render-system-extract-tail.ts +431 -162
  722. package/src/render-system-extract.ts +478 -119
  723. package/src/render-system-projections.ts +241 -0
  724. package/src/render-system.ts +715 -828
  725. package/src/scene/render-scene-types.ts +13 -4
  726. package/src/scene/render-scene.ts +577 -355
  727. package/src/scene/shadow-visibility.ts +21 -0
  728. package/src/ssao-config.ts +25 -8
  729. package/src/ssr/admission.ts +380 -14
  730. package/src/ssr/compose.ts +144 -0
  731. package/src/ssr/errors.ts +48 -0
  732. package/src/ssr/graph.ts +797 -0
  733. package/src/ssr/history.ts +436 -0
  734. package/src/ssr/hiz.ts +124 -0
  735. package/src/ssr/inspection.ts +124 -0
  736. package/src/ssr/resources.ts +202 -0
  737. package/src/ssr/temporal.ts +164 -0
  738. package/src/systems/skin-palette-allocator.ts +495 -148
  739. package/src/systems/skin-palette-types.ts +17 -0
  740. package/src/systems/transparent-dispatch.ts +90 -0
  741. package/src/targets/material-source.ts +34 -0
  742. package/src/temporal/coverage.ts +1 -1
  743. package/src/temporal/frame-coordinator.ts +23 -2
  744. package/src/temporal/gpu.ts +79 -12
  745. package/src/temporal/history.ts +3 -1
  746. package/src/temporal/inspection.ts +2 -1
  747. package/src/temporal/standard-scene-data.ts +10 -2
  748. package/src/temporal/target-coverage-attachment.ts +72 -0
  749. package/src/temporal/temporal-view.ts +11 -2
  750. package/src/temporal/view.ts +12 -2
  751. package/src/transmission/__tests__/standard-transmission.dawn.test.ts +219 -139
  752. package/src/typed-render-graph-primitives.ts +304 -74
  753. package/src/typed-shadow-passes.ts +122 -12
  754. package/src/volume/component.ts +1 -0
  755. package/src/volume/passes.ts +3 -3
  756. package/src/volume/temporal.ts +10 -0
  757. package/dist/chunk-GE3SDD72.mjs.map +0 -1
  758. package/dist/chunk-GF523LHF.mjs.map +0 -1
  759. package/dist/chunk-IQMKJLNU.mjs.map +0 -1
  760. package/dist/chunk-J52NMQKR.mjs.map +0 -1
  761. package/dist/chunk-J6KACNOH.mjs.map +0 -1
  762. package/dist/chunk-JAASCMXA.mjs.map +0 -1
  763. package/dist/chunk-MBU4ZVE7.mjs.map +0 -1
  764. package/dist/chunk-MYJ5RPJO.mjs.map +0 -1
  765. package/dist/chunk-RBDBZ5R7.mjs.map +0 -1
  766. package/dist/chunk-VSL23LZE.mjs.map +0 -1
  767. package/src/__tests__/instances-world-ownership.integration.test.ts +0 -62
  768. package/src/scene/__tests__/changed-block-summary.candidate.test.ts +0 -36
package/dist/index.d.ts CHANGED
@@ -1,53 +1,61 @@
1
- export { materialContribution, renderPipelineContribution, samplerContribution, } from './assets/asset-decoders';
2
- export type { CubeCameraFaceView, CubeCameraFaceViewInput, } from './capture/cube-views';
3
- export { buildCubeCameraFaceViews } from './capture/cube-views';
4
- export { Atmosphere } from './components/atmosphere';
5
- export type { Antialias, BloomEnabled, CameraData, CameraProjection, Tonemap, } from './components/camera';
6
- export { ANTIALIAS_FXAA, ANTIALIAS_MSAA, ANTIALIAS_NONE, ANTIALIAS_TAA, BLOOM_DISABLED, BLOOM_ENABLED, CAMERA_PROJECTION_ORTHOGRAPHIC, CAMERA_PROJECTION_PERSPECTIVE, Camera, cameraProjectionFromF32, orthographic, perspective, TONEMAP_ACES_FILMIC, TONEMAP_AGX, TONEMAP_CINEON, TONEMAP_LINEAR, TONEMAP_NEUTRAL, TONEMAP_NONE, TONEMAP_REINHARD, TONEMAP_REINHARD_EXTENDED, } from './components/camera';
7
- export { CUBE_CAMERA_FACE_ORDER, CUBE_CAMERA_UPDATE_CONTINUOUS, CUBE_CAMERA_UPDATE_ON_DEMAND, CUBE_CAMERA_UPDATE_ONCE, CubeCamera, type CubeCameraData, type CubeCameraFace, type CubeCameraUpdateIntent, cubeCameraUpdateIntentFromF32, cubeCameraUpdateIntentToF32, } from './components/cube-camera';
8
- export * from './components/directional-light';
9
- export { Fog } from './components/fog';
10
- export { Instances, type InstancesData } from './components/instances';
11
- export { Layer } from './components/layer';
12
- export * from './components/light-helpers';
13
- export { LightProbe } from './components/light-probe';
14
- export { Lines } from './components/lines';
15
- export * from './components/mesh-filter';
16
- export * from './components/mesh-renderer';
17
- export { MotionBlur } from './components/motion-blur';
18
- export { PointLight } from './components/point-light';
19
- export { PointLightShadow } from './components/point-light-shadow';
20
- export { type PointShape, PointShapeValue, Points, pointShapeFromU32, } from './components/points';
21
- export { PostProcessParams } from './components/post-process-params';
22
- export { RectAreaLight } from './components/rect-area-light';
23
- export { REFLECTION_PROBE_UPDATE_CONTINUOUS, REFLECTION_PROBE_UPDATE_ON_CHANGE, REFLECTION_PROBE_UPDATE_ONCE, ReflectionProbe, type ReflectionProbeData, type ReflectionProbeUpdateIntent, reflectionProbeUpdateIntentFromF32, reflectionProbeUpdateIntentToF32, } from './components/reflection-probe';
24
- export { SceneInstance } from './components/scene-instance';
25
- export { SKYBOX_MODE_CUBEMAP, SkyboxBackground, type SkyboxMode, } from './components/skybox-background';
26
- export { Skylight } from './components/skylight';
27
- export { SortKey } from './components/sort-key';
28
- export type { SpotLightAuthoring, SpotLightProjector } from './components/spot-light';
29
- export { SpotLight } from './components/spot-light';
30
- export { Visibility, type VisibilityState, VisibilityStateValue, visibilityStateFromU32, } from './components/visibility';
31
- export type { DynamicGeometryCandidate, DynamicGeometryCandidateState, DynamicGeometryErrorCode, DynamicGeometryErrorDetail, DynamicGeometryInspection, DynamicGeometryLifecycle, DynamicGeometryOrdering, DynamicGeometryPrepareInput, DynamicGeometryReceipt, } from './dynamic-geometry';
32
- export { createDynamicGeometryLifecycle, DynamicGeometryError, } from './dynamic-geometry';
33
- export type { EnvironmentInspection, EnvironmentInspectionFailure, EnvironmentInspectionGeneration, EnvironmentInspectionStatus, } from './environment/inspection';
34
- export type { ReflectionProbeBudgetExceededDetail, RenderError, RenderErrorCode, RenderIntentInvalidDetail, RenderTargetCapabilityMissingDetail, RenderTargetDescriptorInvalidDetail, RenderTargetOperationFailedDetail, RenderTargetStateInvalidDetail, SceneDataUnavailableDetail, SceneDataUnavailableReason, } from './errors/render';
35
- export { AtmosphereInvalidParameterError, EnvironmentGenerationFailedError, EnvironmentSourceConflictError, FogCardinalityError, OwnerStageFailedError, SceneDataUnavailableError, TaaCapsInsufficientError, } from './errors/render';
36
- export type { EnvironmentFrame, EnvironmentSource, FogFrame, FramePlan, } from './extract/environment';
37
- export { resolveVisibility, type VisibilityResolution, type VisibilitySnapshot, } from './extract/visibility';
38
- export type { RenderFeatureLogicalTarget, RenderFeatureMaterialShaderBindingContract, RenderFeaturePassDeclaration, RenderFeaturePlan, RenderFeaturePlanContext, RenderFeatureResourceDeclaration, } from './features/plan';
39
- export type { RenderFeature, RenderFeatureCapabilityKey, RenderFeatureDiagnostics, RenderFeatureErrorDescriptor, RenderFeatureExtractContext, RenderFeatureHiddenEntityReport, RenderFeatureShaderModuleMode, RenderFeatureStatus, RenderFeatureWorldVisibilitySnapshot, } from './features/types';
40
- export { beginProbeIblUpdate, createIblKernelCache, createProbeIblOutput, type IblKernelCache, type ProbeIblOutput, type ProbeIblUpdate, publishProbeIblOutput, REFLECTION_PROBE_IBL_STAGES, type ReflectionProbeIblStage, resetIblKernelCaches, } from './ibl/kernel-cache';
41
- export type { BloomInspection, LightInspection, LodOcclusionInspection, MotionBlurInspection, MotionBlurInspectionStatus, ReflectionFallbackFailureStage, ReflectionFallbackInspection, ReflectionFallbackReadbackReceipt, ReflectionFallbackReceipt, ReflectionFallbackRecoveryAction, ReflectionProbeInspection, ReflectionProbeSelectionInspection, TransmissionInspection, } from './inspection-types';
42
- export type { InstanceCollectionInspection } from './instances';
43
- export { type MaterialColorInput3, type MaterialColorInput4, type MaterialColorTuple3, type MaterialColorTuple4, Materials, MaterialTransmissionContractError, srgb, } from './materials';
44
- export { type MeshMaterialBindingObservation, type MeshMaterialBindingPreparationFailure, type MeshMaterialBindingReadiness, type MeshMaterialBindingResidency, type MeshMaterialBindingSamplerObservation, type MeshMaterialBindingSummary, type MeshMaterialBindingTextureObservation, projectMeshMaterialBindingObservation, summarizeMeshMaterialBindings, } from './mesh-material-bindings';
45
- export type { StandardClusterTransportInspection, StandardLightingInspection, StandardNoLocalLightingInspection, } from './pipeline/standard-lighting/inspection';
46
- export { DEFAULT_STANDARD_PROFILE, type StandardVolumetricFogProfile, type StandardVolumetricFogQuality, } from './pipeline/standard-profile';
47
- export { renderComponentsPlugin } from './plugin';
48
- export { inspectPointShadow, type PointShadowInspection, } from './point-shadow-inspection';
49
- export { admitPointsLines, type LinesStyleInput, type PointsLinesAdmission, type PointsLinesAdmissionError, type PointsLinesAdmissionInput, type PointsLinesAdmissionLimits, type PointsStyleInput, } from './points-lines/admission';
50
- export type { PointsLinesInspection } from './points-lines/inspection';
1
+ export { materialContribution, renderPipelineContribution, samplerContribution, } from './assets/asset-decoders.js';
2
+ export type { CubeCameraFaceView, CubeCameraFaceViewInput, } from './capture/cube-views.js';
3
+ export { buildCubeCameraFaceViews } from './capture/cube-views.js';
4
+ export { Atmosphere } from './components/atmosphere.js';
5
+ export type { Antialias, BloomEnabled, CameraData, CameraErrorCode, CameraErrorDetail, CameraExposure, CameraProjection, Tonemap, } from './components/camera.js';
6
+ export { ANTIALIAS_FXAA, ANTIALIAS_MSAA, ANTIALIAS_NONE, ANTIALIAS_TAA, BLOOM_DISABLED, BLOOM_ENABLED, CAMERA_EXPOSURE_MODE_AUTO, CAMERA_EXPOSURE_MODE_MANUAL, CAMERA_PROJECTION_ORTHOGRAPHIC, CAMERA_PROJECTION_PERSPECTIVE, CAMERA_TEMPERATURE_MAX, CAMERA_TEMPERATURE_MIN, CAMERA_TINT_MAX, CAMERA_TINT_MIN, Camera, CameraError, cameraExposureFromColumns, cameraProjectionFromF32, orthographic, perspective, TONEMAP_ACES_FILMIC, TONEMAP_AGX, TONEMAP_CINEON, TONEMAP_LINEAR, TONEMAP_NEUTRAL, TONEMAP_NONE, TONEMAP_REINHARD, TONEMAP_REINHARD_EXTENDED, validateCameraColorGrading, validateCameraExposure, } from './components/camera.js';
7
+ export { CUBE_CAMERA_FACE_ORDER, CUBE_CAMERA_UPDATE_CONTINUOUS, CUBE_CAMERA_UPDATE_ON_DEMAND, CUBE_CAMERA_UPDATE_ONCE, CubeCamera, type CubeCameraData, type CubeCameraFace, type CubeCameraUpdateIntent, cubeCameraUpdateIntentFromF32, cubeCameraUpdateIntentToF32, } from './components/cube-camera.js';
8
+ export * from './components/directional-light.js';
9
+ export { DynamicResolution, type DynamicResolutionData, validateDynamicResolutionCamera, validateDynamicResolutionParameters, } from './components/dynamic-resolution.js';
10
+ export { Fog } from './components/fog.js';
11
+ export { Instances, type InstancesData } from './components/instances.js';
12
+ export { Layer } from './components/layer.js';
13
+ export * from './components/light-helpers.js';
14
+ export { LightProbe } from './components/light-probe.js';
15
+ export { Lines } from './components/lines.js';
16
+ export * from './components/mesh-filter.js';
17
+ export * from './components/mesh-renderer.js';
18
+ export { MotionBlur } from './components/motion-blur.js';
19
+ export { PointLight } from './components/point-light.js';
20
+ export { PointLightShadow } from './components/point-light-shadow.js';
21
+ export { type PointShape, PointShapeValue, Points, pointShapeFromU32, } from './components/points.js';
22
+ export { PostProcessParams } from './components/post-process-params.js';
23
+ export { RectAreaLight } from './components/rect-area-light.js';
24
+ export { REFLECTION_PROBE_UPDATE_CONTINUOUS, REFLECTION_PROBE_UPDATE_ON_CHANGE, REFLECTION_PROBE_UPDATE_ONCE, ReflectionProbe, type ReflectionProbeData, type ReflectionProbeUpdateIntent, reflectionProbeUpdateIntentFromF32, reflectionProbeUpdateIntentToF32, } from './components/reflection-probe.js';
25
+ export { SceneInstance } from './components/scene-instance.js';
26
+ export { ScreenSpaceReflection, type ScreenSpaceReflectionData, } from './components/screen-space-reflection';
27
+ export { SKYBOX_MODE_CUBEMAP, SkyboxBackground, type SkyboxMode, } from './components/skybox-background.js';
28
+ export { Skylight } from './components/skylight.js';
29
+ export { SortKey } from './components/sort-key.js';
30
+ export type { SpotLightAuthoring, SpotLightProjector } from './components/spot-light.js';
31
+ export { SpotLight } from './components/spot-light.js';
32
+ export { Visibility, type VisibilityState, VisibilityStateValue, visibilityStateFromU32, } from './components/visibility.js';
33
+ export type { DynamicGeometryCandidate, DynamicGeometryCandidateState, DynamicGeometryErrorCode, DynamicGeometryErrorDetail, DynamicGeometryInspection, DynamicGeometryLifecycle, DynamicGeometryOrdering, DynamicGeometryPrepareInput, DynamicGeometryReceipt, } from './dynamic-geometry.js';
34
+ export { createDynamicGeometryLifecycle, DynamicGeometryError, } from './dynamic-geometry.js';
35
+ export type { EnvironmentInspection, EnvironmentInspectionFailure, EnvironmentInspectionGeneration, EnvironmentInspectionStatus, } from './environment/inspection.js';
36
+ export type { GpuDrivenPreparationErrorCode, GpuDrivenPreparationErrorDetail, GpuDrivenPreparationReason, GpuDrivenRecoveryAction, } from './errors/gpu-driven';
37
+ export { GpuDrivenPreparationError } from './errors/gpu-driven';
38
+ export type { DynamicResolutionError, ReflectionProbeBudgetExceededDetail, RenderError, RenderErrorCode, RenderIntentInvalidDetail, RenderTargetCapabilityMissingDetail, RenderTargetDescriptorInvalidDetail, RenderTargetOperationFailedDetail, RenderTargetStateInvalidDetail, SceneDataUnavailableDetail, SceneDataUnavailableReason, } from './errors/render.js';
39
+ export { AtmosphereInvalidParameterError, DynamicResolutionInvalidParameterError, DynamicResolutionRequiresTaaError, DynamicResolutionTimingUnavailableError, EnvironmentGenerationFailedError, EnvironmentSourceConflictError, FogCardinalityError, OwnerStageFailedError, SceneDataUnavailableError, TaaCapsInsufficientError, } from './errors/render.js';
40
+ export type { EnvironmentFrame, EnvironmentSource, FogFrame, FramePlan, } from './extract/environment.js';
41
+ export { resolveVisibility, type VisibilityResolution, type VisibilitySnapshot, } from './extract/visibility.js';
42
+ export type { RenderFeatureLogicalTarget, RenderFeatureMaterialShaderBindingContract, RenderFeaturePassDeclaration, RenderFeaturePlan, RenderFeaturePlanContext, RenderFeatureResourceDeclaration, } from './features/plan.js';
43
+ export type { RenderFeature, RenderFeatureCapabilityKey, RenderFeatureDiagnostics, RenderFeatureErrorDescriptor, RenderFeatureExtractContext, RenderFeatureHiddenEntityReport, RenderFeatureShaderModuleMode, RenderFeatureStatus, RenderFeatureWorldVisibilitySnapshot, } from './features/types.js';
44
+ export { beginProbeIblUpdate, createIblKernelCache, createProbeIblOutput, type IblKernelCache, type ProbeIblOutput, type ProbeIblUpdate, publishProbeIblOutput, REFLECTION_PROBE_IBL_STAGES, type ReflectionProbeIblStage, resetIblKernelCaches, } from './ibl/kernel-cache.js';
45
+ export type { BloomInspection, GpuDrivenLane, GpuDrivenLaneReason, GpuDrivenLaneSummary, GpuDrivenPreparationFailureInspection, GpuDrivenProductionInspection, GpuDrivenStructureMetrics, LightInspection, LodOcclusionInspection, MaterialTextureSourceInspection, MotionBlurInspection, MotionBlurInspectionStatus, ReflectionFallbackFailureStage, ReflectionFallbackInspection, ReflectionFallbackReadbackReceipt, ReflectionFallbackReceipt, ReflectionFallbackRecoveryAction, ReflectionProbeInspection, ReflectionProbeSelectionInspection, RenderFeatureGraphInspection, RenderFeatureHostInspection, TransmissionInspection, } from './inspection-types.js';
46
+ export { type InstanceBackendKind, type InstanceCollectionCreateInput, type InstanceCollectionData, InstanceCollectionError, type InstanceCollectionErrorCode, type InstanceCollectionFailureCode, type InstanceCollectionFailureFacts, type InstanceCollectionId, type InstanceCollectionInfo, type InstanceCollectionInspection, type InstanceCollectionInvalidDetail, type InstanceCollectionResult, type InstanceCollectionSnapshot, InstanceCollectionStore, type InstanceCollectionUpdateInput, type InstanceDirtyRange, type InstanceSubmissionLane, } from './instances';
47
+ export { MaterialAuthoringContractError, type MaterialColorInput3, type MaterialColorInput4, type MaterialColorTuple3, type MaterialColorTuple4, Materials, MaterialTransmissionContractError, srgb, } from './materials.js';
48
+ export { type MeshMaterialBindingObservation, type MeshMaterialBindingPreparationFailure, type MeshMaterialBindingReadiness, type MeshMaterialBindingResidency, type MeshMaterialBindingSamplerObservation, type MeshMaterialBindingSummary, type MeshMaterialBindingTextureObservation, projectMeshMaterialBindingObservation, summarizeMeshMaterialBindings, } from './mesh-material-bindings.js';
49
+ export type { RenderExtent } from './pipeline/render-extent.js';
50
+ export type { StandardClusterTransportInspection, StandardLightingInspection, StandardNoLocalLightingInspection, } from './pipeline/standard-lighting/inspection.js';
51
+ export type { AutoExposureCapabilityUnavailableDetail, AutoExposureError, AutoExposureErrorCode, AutoExposureErrorDetail, AutoExposureErrorDetailByCode, AutoExposureErrorRecord, AutoExposureInspection, AutoExposureInspectionInput, AutoExposureInvalidParameterDetail, AutoExposureReceipt, AutoExposureResetReason, AutoExposureStageFailedDetail, AutoExposureStaleGenerationDetail, } from './pipeline/standard-output/auto-exposure/inspection.js';
52
+ export { AutoExposureCapabilityUnavailableError, AutoExposureInvalidParameterError, AutoExposureStageFailedError, AutoExposureStaleGenerationError, createAutoExposureError, createAutoExposureInspection, } from './pipeline/standard-output/auto-exposure/inspection.js';
53
+ export type { StandardLutFailure, StandardLutInspection, StandardLutState, } from './pipeline/standard-output/lut-state.js';
54
+ export { DEFAULT_STANDARD_PROFILE, type StandardVolumetricFogProfile, type StandardVolumetricFogQuality, } from './pipeline/standard-profile.js';
55
+ export { renderComponentsPlugin } from './plugin.js';
56
+ export { inspectPointShadow, type PointShadowInspection, } from './point-shadow-inspection.js';
57
+ export { admitPointsLines, type LinesStyleInput, type PointsLinesAdmission, type PointsLinesAdmissionError, type PointsLinesAdmissionInput, type PointsLinesAdmissionLimits, type PointsStyleInput, } from './points-lines/admission.js';
58
+ export type { PointsLinesInspection } from './points-lines/inspection.js';
51
59
  /**
52
60
  * Public bounded GPU pass facts. Use the single `gpuPassTiming` opt-in,
53
61
  * `draw()` receipt, and `observe(receipt, { include: ['timings'] })` route.
@@ -60,29 +68,33 @@ export type { PointsLinesInspection } from './points-lines/inspection';
60
68
  * structured hint rather than a second timing API.
61
69
  */
62
70
  export type { GpuPassTimingCapability, GpuPassTimingEntry, GpuPassTimingError, GpuPassTimingErrorCode, GpuPassTimingFrame, GpuPassTimingMeasuredEntry, GpuPassTimingMeasurementSource, GpuPassTimingObservation, GpuPassTimingOptions, GpuPassTimingPassIdentity, GpuPassTimingReason, GpuPassTimingReasonCode, GpuPassTimingRef, GpuPassTimingUnmeasuredEntry, } from './record/gpu-pass-timing/index.js';
63
- export { advanceProbeFilter, boxProjectReflectionDirection, commitProbeFilterStep, createProbeFilterState, type ProbeFilterState, probeFilterIsSteady, } from './reflection/filter';
64
- export { buildReflectionProbeTable, type ReflectionProbeTable, type ReflectionProbeTableRow, reflectionProbeTableBytes, } from './reflection/gpu-table';
65
- export { inspectReflectionFallback, type ReflectionFallbackFailureInput, } from './reflection/inspection';
66
- export { admitReflectionProbe, DEFAULT_REFLECTION_PROBE_LIMITS, estimateReflectionProbeBytes, type ReflectionProbeAdmission, type ReflectionProbeAdmissionLimits, type ReflectionProbeFact, type ReflectionProbeInput, ReflectionProbeProjection, type ReflectionProbeProjectionSnapshot, type ReflectionProbeSelection, type ReflectionProbeSelectionResult, type SkylightSelection, selectReflectionProbe, validateReflectionProbeInput, } from './reflection/projection';
67
- export type { CubeCameraSnapshot, FrameCamera, FrameEnvironment, FrameObservationRequest, FrameReceipt, FrameReceiptObservation, Renderer, RendererEvent, RendererOptions, RendererState, RenderFrameInput, RenderInspection, RenderProfile, RenderResult, RenderWorldLease, } from './render-contract';
68
- export { RENDER_PHASE_CATALOG } from './render-contract';
69
- export type { TemporalInspectionInput, TemporalInspectionStatus, } from './renderer-inspect';
70
- export type { GpuFrameTiming, GpuFrameTimingProtocol, GpuFrameTimingRecord, GpuFrameTimingSample, GpuFrameTimingSummary, } from './scene/visibility/gpu-frame-timing';
71
- export { createGpuFrameTiming, recordGpuFrameTiming, summarizeGpuFrameTiming, } from './scene/visibility/gpu-frame-timing';
72
- export type { LodOcclusionDegradation, LodOcclusionFallback, LodOcclusionInspectionAction, LodOcclusionInspectionBudget, LodOcclusionInspectionError, LodOcclusionInspectionInput, LodOcclusionInspectionRow, LodOcclusionInspectionSample, LodOcclusionInspectionSubmit, LodOcclusionWorldAttribution, LodOcclusionWorldInspection, LodOcclusionWorldInspectionInput, } from './scene/visibility/inspection';
73
- export { consumeLodOcclusionInspection, inspectLodOcclusion, LOD_OCCLUSION_INSPECTION_MAX_BYTES, LOD_OCCLUSION_INSPECTION_SCHEMA, serializeLodOcclusionInspection, } from './scene/visibility/inspection';
74
- export { SHADOW_ATLAS_DEFAULT_FACE_SIZE, SHADOW_ATLAS_DEFAULT_LAYERS, ShadowAtlas, } from './shadow-atlas';
75
- export type { SsrAdmissionBudget, SsrAdmissionFailure, SsrAdmissionIdentity, SsrAdmissionInput, SsrAdmissionResult, SsrAdmissionWork, SsrDependenciesInspection, SsrFormatReceipt, SsrReflectionFallbackReceipt, SsrTemporalReceipt, } from './ssr/admission';
76
- export { admitSsrM0, projectSsrDependencies, resolveSsrAdmissionGeneration, SSR_FORMAT_PROFILE, SSR_FORMAT_STAGES, zeroSsrAdmissionWork, } from './ssr/admission';
77
- export { composeSsrReflection, type SsrCompositionInput, type SsrCompositionInputError, type SsrCompositionResult, type SsrReflectionColor, } from './ssr/composition';
78
- export { getActiveCamera, setActiveCamera } from './systems/active-camera';
79
- export type { RenderTarget, RenderTargetAdmissionLimits, RenderTargetDepthFormat, RenderTargetDescriptor, RenderTargetFormat, RenderTargetMipLevels, RenderTargetReadbackData, RenderTargetReadbackRequest, RenderTargetReadbackTicket, RenderTargetSampleCount, RenderTargetShape, RenderTargetTextureAspect, RenderTargetTextureSource, RenderTargetTextureSourceOptions, } from './targets/contracts';
80
- export type { TemporalInspection, TemporalResourceInspection } from './temporal/inspection';
81
- export { SCENE_DATA_TEMPORAL_V1_DESCRIPTOR, SCENE_DATA_TEMPORAL_V1_SCHEMA, type SceneDataLane, type SceneDataSchemaId, type SceneDataTarget, type SceneDataTemporalV1Descriptor, } from './temporal/scene-data';
82
- export { createSceneDataCatalog, type SceneDataAvailability, type SceneDataCatalog, type SceneDataCatalogOptions, type SceneDataInspection, } from './temporal/scene-data-catalog';
83
- export type { TemporalView } from './temporal/view';
84
- export { hasVolumetricFogCapability, type IntegratedVolumeResource, resolveIntegratedVolumeConsumer, resolveSelectedVolumetricLight, resolveVolumetricFogLightPair, type VolumeConsumer, type VolumetricFogLightKind, type VolumetricFogLightPairResolution, type VolumetricFogLightResolution, } from './volume/capability';
85
- export { type ValidatedVolumetricFog, type VolumeBounds, type VolumeDensityBinding, VolumetricFog, type VolumetricFogAuthoring, type VolumetricFogLightSelection, validateVolumetricFog, } from './volume/component';
86
- export { extractVolumetricFog, type VolumetricFogExtract } from './volume/extract';
87
- export { inspectVolumetricFog, type VolumetricFogInspection, type VolumetricFogInspectionInput, type VolumetricFogInspectionStatus, type VolumetricFogResourceStage, } from './volume/inspection';
71
+ export { advanceProbeFilter, boxProjectReflectionDirection, commitProbeFilterStep, createProbeFilterState, type ProbeFilterState, probeFilterIsSteady, } from './reflection/filter.js';
72
+ export { buildReflectionProbeTable, type ReflectionProbeTable, type ReflectionProbeTableRow, reflectionProbeTableBytes, } from './reflection/gpu-table.js';
73
+ export { inspectReflectionFallback, type ReflectionFallbackFailureInput, } from './reflection/inspection.js';
74
+ export { admitReflectionProbe, DEFAULT_REFLECTION_PROBE_LIMITS, estimateReflectionProbeBytes, type ReflectionProbeAdmission, type ReflectionProbeAdmissionLimits, type ReflectionProbeFact, type ReflectionProbeInput, ReflectionProbeProjection, type ReflectionProbeProjectionSnapshot, type ReflectionProbeSelection, type ReflectionProbeSelectionResult, type SkylightSelection, selectReflectionProbe, validateReflectionProbeInput, } from './reflection/projection.js';
75
+ export type { CameraOutputSnapshot, CubeCameraSnapshot, FrameCamera, FrameEnvironment, FrameObservationRequest, FrameReceipt, FrameReceiptObservation, Renderer, RendererEvent, RendererOptions, RendererState, RenderFrameInput, RenderInspection, RenderProfile, RenderResult, RenderWorldLease, } from './render-contract.js';
76
+ export { RENDER_PHASE_CATALOG } from './render-contract.js';
77
+ export type { TemporalInspectionInput, TemporalInspectionStatus, } from './renderer-inspect.js';
78
+ export type { RenderSceneBounds } from './scene/render-scene-types.js';
79
+ export type { GpuFrameTiming, GpuFrameTimingProtocol, GpuFrameTimingRecord, GpuFrameTimingSample, GpuFrameTimingSummary, } from './scene/visibility/gpu-frame-timing.js';
80
+ export { createGpuFrameTiming, recordGpuFrameTiming, summarizeGpuFrameTiming, } from './scene/visibility/gpu-frame-timing.js';
81
+ export type { LodOcclusionDegradation, LodOcclusionFallback, LodOcclusionInspectionAction, LodOcclusionInspectionBudget, LodOcclusionInspectionError, LodOcclusionInspectionInput, LodOcclusionInspectionRow, LodOcclusionInspectionSample, LodOcclusionInspectionSubmit, LodOcclusionWorldAttribution, LodOcclusionWorldInspection, LodOcclusionWorldInspectionInput, } from './scene/visibility/inspection.js';
82
+ export { consumeLodOcclusionInspection, inspectLodOcclusion, LOD_OCCLUSION_INSPECTION_MAX_BYTES, LOD_OCCLUSION_INSPECTION_SCHEMA, serializeLodOcclusionInspection, } from './scene/visibility/inspection.js';
83
+ export { SHADOW_ATLAS_DEFAULT_FACE_SIZE, SHADOW_ATLAS_DEFAULT_LAYERS, ShadowAtlas, } from './shadow-atlas.js';
84
+ export type { SsrAdmissionBudget, SsrAdmissionFailure, SsrAdmissionIdentity, SsrAdmissionInput, SsrAdmissionResult, SsrAdmissionWork, SsrDependenciesInspection, SsrFormatReceipt, SsrReflectionFallbackReceipt, SsrSpatialAdmission, SsrSpatialCamera, SsrSpatialCapabilities, SsrSpatialEnvironment, SsrSpatialLane, SsrSpatialStatus, SsrSpatialWork, SsrTemporalReceipt, } from './ssr/admission.js';
85
+ export { admitSsrM0, admitSsrSpatial, projectSsrDependencies, resolveSsrAdmissionGeneration, SSR_FORMAT_PROFILE, SSR_FORMAT_STAGES, validateScreenSpaceReflection, zeroSsrAdmissionWork, } from './ssr/admission.js';
86
+ export { composeSsrReflection, type SsrCompositionInput, type SsrCompositionInputError, type SsrCompositionResult, type SsrReflectionColor, } from './ssr/composition.js';
87
+ export type { SsrConfigField, SsrConfigInvalidError, SsrConfigRange, SsrSpatialUnavailableReason, SsrUnavailableError, } from './ssr/errors.js';
88
+ export type { SsrSpatialHistoryInspection, SsrSpatialInspection, SsrSpatialInspectionFailure, SsrSpatialInspectionProjection, } from './ssr/inspection.js';
89
+ export { projectSsrSpatialInspection, serializeSsrSpatialInspection, } from './ssr/inspection.js';
90
+ export { getActiveCamera, setActiveCamera } from './systems/active-camera.js';
91
+ export type { RenderTarget, RenderTargetAdmissionLimits, RenderTargetDepthFormat, RenderTargetDescriptor, RenderTargetFormat, RenderTargetMipLevels, RenderTargetReadbackData, RenderTargetReadbackRequest, RenderTargetReadbackTicket, RenderTargetSampleCount, RenderTargetShape, RenderTargetTextureAspect, RenderTargetTextureSource, RenderTargetTextureSourceOptions, } from './targets/contracts.js';
92
+ export type { TemporalInspection, TemporalResourceInspection } from './temporal/inspection.js';
93
+ export { SCENE_DATA_TEMPORAL_V1_DESCRIPTOR, SCENE_DATA_TEMPORAL_V1_SCHEMA, type SceneDataLane, type SceneDataSchemaId, type SceneDataTarget, type SceneDataTemporalV1Descriptor, } from './temporal/scene-data.js';
94
+ export { createSceneDataCatalog, type SceneDataAvailability, type SceneDataCatalog, type SceneDataCatalogOptions, type SceneDataInspection, } from './temporal/scene-data-catalog.js';
95
+ export type { TemporalView } from './temporal/view.js';
96
+ export { hasVolumetricFogCapability, type IntegratedVolumeResource, resolveIntegratedVolumeConsumer, resolveSelectedVolumetricLight, resolveVolumetricFogLightPair, type VolumeConsumer, type VolumetricFogLightKind, type VolumetricFogLightPairResolution, type VolumetricFogLightResolution, } from './volume/capability.js';
97
+ export { type ValidatedVolumetricFog, type VolumeBounds, type VolumeDensityBinding, VolumetricFog, type VolumetricFogAuthoring, type VolumetricFogLightSelection, validateVolumetricFog, } from './volume/component.js';
98
+ export { extractVolumetricFog, type VolumetricFogExtract } from './volume/extract.js';
99
+ export { inspectVolumetricFog, type VolumetricFogInspection, type VolumetricFogInspectionInput, type VolumetricFogInspectionStatus, type VolumetricFogResourceStage, } from './volume/inspection.js';
88
100
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1,11 +1,11 @@
1
- export { DEFAULT_REFLECTION_PROBE_LIMITS, DynamicGeometryError, LOD_OCCLUSION_INSPECTION_MAX_BYTES, LOD_OCCLUSION_INSPECTION_SCHEMA, ReflectionProbeProjection, SSR_FORMAT_PROFILE, SSR_FORMAT_STAGES, admitPointsLines, admitReflectionProbe, admitSsrM0, advanceProbeFilter, boxProjectReflectionDirection, buildCubeCameraFaceViews, buildReflectionProbeTable, commitProbeFilterStep, consumeLodOcclusionInspection, createDynamicGeometryLifecycle, createProbeFilterState, estimateReflectionProbeBytes, inspectLodOcclusion, inspectPointShadow, inspectReflectionFallback, inspectVolumetricFog, probeFilterIsSteady, projectSsrDependencies, reflectionProbeTableBytes, resolveSsrAdmissionGeneration, selectReflectionProbe, serializeLodOcclusionInspection, validateReflectionProbeInput, zeroSsrAdmissionWork } from './chunk-J52NMQKR.mjs';
2
- import { Atmosphere, Camera, DirectionalLight, Instances, Layer, LightProbe, MeshFilter, MeshRenderer, PointLight, PointLightShadow, Points, Lines, PostProcessParams, RectAreaLight, SceneInstance, SkyboxBackground, Skylight, SortKey, SpotLight, Visibility } from './chunk-JAASCMXA.mjs';
3
- export { ANTIALIAS_FXAA, ANTIALIAS_MSAA, ANTIALIAS_NONE, ANTIALIAS_TAA, Atmosphere, BLOOM_DISABLED, BLOOM_ENABLED, CAMERA_PROJECTION_ORTHOGRAPHIC, CAMERA_PROJECTION_PERSPECTIVE, CUBE_CAMERA_FACE_ORDER, CUBE_CAMERA_UPDATE_CONTINUOUS, CUBE_CAMERA_UPDATE_ONCE, CUBE_CAMERA_UPDATE_ON_DEMAND, Camera, CubeCamera, DirectionalLight, DirectionalShadowFilterValue, Fog, Instances, Layer, LightProbe, Lines, MeshFilter, MeshRenderer, MotionBlur, PointLight, PointLightShadow, PointShapeValue, Points, PostProcessParams, REFLECTION_PROBE_UPDATE_CONTINUOUS, REFLECTION_PROBE_UPDATE_ONCE, REFLECTION_PROBE_UPDATE_ON_CHANGE, RectAreaLight, ReflectionProbe, SKYBOX_MODE_CUBEMAP, SceneInstance, SkyboxBackground, Skylight, SortKey, SpotLight, TONEMAP_ACES_FILMIC, TONEMAP_AGX, TONEMAP_CINEON, TONEMAP_LINEAR, TONEMAP_NEUTRAL, TONEMAP_NONE, TONEMAP_REINHARD, TONEMAP_REINHARD_EXTENDED, Visibility, VisibilityStateValue, VolumetricFog, cameraProjectionFromF32, computeInvRangeSquared, cubeCameraUpdateIntentFromF32, cubeCameraUpdateIntentToF32, degToCos, directionalShadowQualityFromF32, extractVolumetricFog, hasVolumetricFogCapability, orthographic, perspective, pointShapeFromU32, projectMeshMaterialBindingObservation, reflectionProbeUpdateIntentFromF32, reflectionProbeUpdateIntentToF32, resolveIntegratedVolumeConsumer, resolveSelectedVolumetricLight, resolveVisibility, resolveVolumetricFogLightPair, summarizeMeshMaterialBindings, validateDirection, validateDirectionalLightData, validateLightProbeData, validatePointLightData, validatePointLightShadowData, validateRectAreaLightData, validateSpotLightData, validateVolumetricFog, visibilityStateFromU32 } from './chunk-JAASCMXA.mjs';
4
- import { SpriteAnimation, SpriteInstances, SpriteRegionOverride, TileLayer, Tilemap } from './chunk-RBDBZ5R7.mjs';
5
- export { getActiveCamera, setActiveCamera } from './chunk-RBDBZ5R7.mjs';
6
- export { DEFAULT_STANDARD_PROFILE, REFLECTION_PROBE_IBL_STAGES, SCENE_DATA_TEMPORAL_V1_DESCRIPTOR, SCENE_DATA_TEMPORAL_V1_SCHEMA, beginProbeIblUpdate, createIblKernelCache, createProbeIblOutput, createSceneDataCatalog, publishProbeIblOutput, resetIblKernelCaches } from './chunk-MYJ5RPJO.mjs';
7
- export { MaterialTransmissionContractError, Materials, srgb } from './chunk-GF523LHF.mjs';
8
- export { AtmosphereInvalidParameterError, EnvironmentGenerationFailedError, EnvironmentSourceConflictError, FogCardinalityError, OwnerStageFailedError, RENDER_PHASE_CATALOG, SHADOW_ATLAS_DEFAULT_FACE_SIZE, SHADOW_ATLAS_DEFAULT_LAYERS, SceneDataUnavailableError, ShadowAtlas, TaaCapsInsufficientError } from './chunk-J6KACNOH.mjs';
1
+ export { DEFAULT_REFLECTION_PROBE_LIMITS, DynamicGeometryError, LOD_OCCLUSION_INSPECTION_MAX_BYTES, LOD_OCCLUSION_INSPECTION_SCHEMA, ReflectionProbeProjection, SSR_FORMAT_PROFILE, SSR_FORMAT_STAGES, admitPointsLines, admitReflectionProbe, admitSsrM0, admitSsrSpatial, advanceProbeFilter, boxProjectReflectionDirection, buildReflectionProbeTable, commitProbeFilterStep, consumeLodOcclusionInspection, createDynamicGeometryLifecycle, createProbeFilterState, estimateReflectionProbeBytes, inspectLodOcclusion, inspectPointShadow, inspectReflectionFallback, inspectVolumetricFog, probeFilterIsSteady, projectSsrDependencies, projectSsrSpatialInspection, reflectionProbeTableBytes, resolveSsrAdmissionGeneration, selectReflectionProbe, serializeLodOcclusionInspection, serializeSsrSpatialInspection, validateReflectionProbeInput, validateScreenSpaceReflection, zeroSsrAdmissionWork } from './chunk-7MQ3XBSP.mjs';
2
+ import { Atmosphere, Camera, DirectionalLight, DynamicResolution, Instances, Layer, LightProbe, MeshFilter, MeshRenderer, MotionBlur, PointLight, PointLightShadow, Points, Lines, PostProcessParams, RectAreaLight, SceneInstance, SkyboxBackground, Skylight, SortKey, SpotLight, Visibility } from './chunk-S5UE2T5P.mjs';
3
+ export { ANTIALIAS_FXAA, ANTIALIAS_MSAA, ANTIALIAS_NONE, ANTIALIAS_TAA, Atmosphere, BLOOM_DISABLED, BLOOM_ENABLED, CAMERA_EXPOSURE_MODE_AUTO, CAMERA_EXPOSURE_MODE_MANUAL, CAMERA_PROJECTION_ORTHOGRAPHIC, CAMERA_PROJECTION_PERSPECTIVE, CAMERA_TEMPERATURE_MAX, CAMERA_TEMPERATURE_MIN, CAMERA_TINT_MAX, CAMERA_TINT_MIN, CUBE_CAMERA_FACE_ORDER, CUBE_CAMERA_UPDATE_CONTINUOUS, CUBE_CAMERA_UPDATE_ONCE, CUBE_CAMERA_UPDATE_ON_DEMAND, Camera, CameraError, CubeCamera, DirectionalLight, DirectionalShadowFilterValue, DynamicResolution, Fog, Instances, Layer, LightProbe, Lines, MeshFilter, MeshRenderer, MotionBlur, PointLight, PointLightShadow, PointShapeValue, Points, PostProcessParams, REFLECTION_PROBE_UPDATE_CONTINUOUS, REFLECTION_PROBE_UPDATE_ONCE, REFLECTION_PROBE_UPDATE_ON_CHANGE, RectAreaLight, ReflectionProbe, SKYBOX_MODE_CUBEMAP, SceneInstance, ScreenSpaceReflection, SkyboxBackground, Skylight, SortKey, SpotLight, TONEMAP_ACES_FILMIC, TONEMAP_AGX, TONEMAP_CINEON, TONEMAP_LINEAR, TONEMAP_NEUTRAL, TONEMAP_NONE, TONEMAP_REINHARD, TONEMAP_REINHARD_EXTENDED, Visibility, VisibilityStateValue, VolumetricFog, buildCubeCameraFaceViews, cameraExposureFromColumns, cameraProjectionFromF32, computeInvRangeSquared, cubeCameraUpdateIntentFromF32, cubeCameraUpdateIntentToF32, degToCos, directionalShadowQualityFromF32, extractVolumetricFog, hasVolumetricFogCapability, orthographic, perspective, pointShapeFromU32, projectMeshMaterialBindingObservation, reflectionProbeUpdateIntentFromF32, reflectionProbeUpdateIntentToF32, resolveIntegratedVolumeConsumer, resolveSelectedVolumetricLight, resolveVisibility, resolveVolumetricFogLightPair, summarizeMeshMaterialBindings, validateCameraColorGrading, validateCameraExposure, validateDirection, validateDirectionalLightData, validateDynamicResolutionCamera, validateDynamicResolutionParameters, validateLightProbeData, validatePointLightData, validatePointLightShadowData, validateRectAreaLightData, validateSpotLightData, validateVolumetricFog, visibilityStateFromU32 } from './chunk-S5UE2T5P.mjs';
4
+ import { SpriteAnimation, SpriteInstances, SpriteRegionOverride, TileLayer, Tilemap } from './chunk-PA5DRJNI.mjs';
5
+ export { getActiveCamera, setActiveCamera } from './chunk-PA5DRJNI.mjs';
6
+ export { DEFAULT_STANDARD_PROFILE, REFLECTION_PROBE_IBL_STAGES, SCENE_DATA_TEMPORAL_V1_DESCRIPTOR, SCENE_DATA_TEMPORAL_V1_SCHEMA, beginProbeIblUpdate, createIblKernelCache, createProbeIblOutput, createSceneDataCatalog, publishProbeIblOutput, resetIblKernelCaches } from './chunk-NO4WZCAH.mjs';
7
+ export { MaterialAuthoringContractError, MaterialTransmissionContractError, Materials, srgb } from './chunk-BLXGONR2.mjs';
8
+ export { AtmosphereInvalidParameterError, AutoExposureCapabilityUnavailableError, AutoExposureInvalidParameterError, AutoExposureStageFailedError, AutoExposureStaleGenerationError, DynamicResolutionInvalidParameterError, DynamicResolutionRequiresTaaError, DynamicResolutionTimingUnavailableError, EnvironmentGenerationFailedError, EnvironmentSourceConflictError, FogCardinalityError, GpuDrivenPreparationError, InstanceCollectionError, InstanceCollectionStore, OwnerStageFailedError, RENDER_PHASE_CATALOG, SHADOW_ATLAS_DEFAULT_FACE_SIZE, SHADOW_ATLAS_DEFAULT_LAYERS, SceneDataUnavailableError, ShadowAtlas, TaaCapsInsufficientError, createAutoExposureError, createAutoExposureInspection } from './chunk-JRBDO2KB.mjs';
9
9
  import { validateCookedMaterialRecord } from '@forgeax/engine-pack';
10
10
  import { ok, err, MATERIAL_TEXTURE_SLOTS } from '@forgeax/engine-types';
11
11
 
@@ -148,11 +148,13 @@ var RENDER_COMPONENTS = [
148
148
  Atmosphere,
149
149
  Camera,
150
150
  DirectionalLight,
151
+ DynamicResolution,
151
152
  Instances,
152
153
  Layer,
153
154
  LightProbe,
154
155
  MeshFilter,
155
156
  MeshRenderer,
157
+ MotionBlur,
156
158
  PointLight,
157
159
  PointLightShadow,
158
160
  Points,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/assets/asset-decoders.ts","../src/plugin.ts","../src/scene/visibility/gpu-frame-timing.ts","../src/ssr/composition.ts"],"names":["record","invalid","err","ok"],"mappings":"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","file":"index.mjs","sourcesContent":["import { validateCookedMaterialRecord } from '@forgeax/engine-pack';\nimport {\n type AssetDecoderContribution,\n type AssetKind,\n type AssetLoadError,\n err,\n MATERIAL_TEXTURE_SLOTS,\n type MaterialAsset,\n type MaterialChildAsset,\n type MaterialRootAsset,\n ok,\n type RenderPipelineAsset,\n type SamplerAsset,\n} from '@forgeax/engine-types';\n\nfunction invalid(guid: string, expected: string, reason: string) {\n return err({\n code: 'asset-package-invalid' as const,\n expected,\n hint: 'recook the render asset and publish its complete cooked payload',\n detail: { guid, reason },\n });\n}\n\nfunction record(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction validMaterial(value: unknown): value is MaterialAsset {\n if (!record(value) || value.kind !== 'material') return false;\n if (value.cooked !== undefined && !validateCookedMaterialRecord(value.cooked).ok) {\n return false;\n }\n if (value.passes !== undefined && !Array.isArray(value.passes)) return false;\n if (value.parameters !== undefined && !Array.isArray(value.parameters)) return false;\n if (\n value.parent !== undefined &&\n ['colorSpace', 'passes', 'parameters'].some((field) => Object.hasOwn(value, field))\n ) {\n return false;\n }\n return value.values === undefined || record(value.values);\n}\n\nfunction resolveMaterialWireRef(\n value: unknown,\n refs: readonly string[],\n field: string,\n guid: string,\n): ReturnType<typeof ok<string | number>> | ReturnType<typeof err<AssetLoadError>> {\n if (typeof value !== 'number') return ok(value as string | number);\n if (!Number.isSafeInteger(value) || value < 0 || refs[value] === undefined) {\n return err<AssetLoadError>({\n code: 'asset-package-invalid',\n expected: `${field} to reference a GUID through the material Pack refs[] table`,\n hint: 'recook the material so every texture or sampler ref has a matching refs[] entry',\n detail: { guid, reason: `${field} refs[${value}] is out of bounds` },\n });\n }\n return ok(refs[value] as string);\n}\n\nfunction resolveMaterialWireRefs(\n value: MaterialAsset,\n refs: readonly string[],\n guid: string,\n): ReturnType<typeof ok<MaterialAsset>> | ReturnType<typeof err<AssetLoadError>> {\n if (refs.length === 0) return ok(value);\n\n let changed = false;\n const wire = value as unknown as { readonly parent?: unknown };\n let parent = wire.parent;\n if (typeof parent === 'number') {\n const resolved = resolveMaterialWireRef(parent, refs, 'parent', guid);\n if (!resolved.ok) return resolved;\n parent = resolved.value;\n changed = true;\n }\n\n if (value.values === undefined) {\n if (!changed) return ok(value);\n if (parent !== undefined) {\n const child = value as MaterialChildAsset;\n return ok({ ...child, parent: parent as unknown as MaterialChildAsset['parent'] });\n }\n return ok(value);\n }\n\n const textureFields = new Set(\n value.parameters === undefined\n ? MATERIAL_TEXTURE_SLOTS\n : value.parameters\n .filter((parameter) => parameter.type === 'texture' || parameter.type === 'texture_cube')\n .map((parameter) => parameter.name),\n );\n const values = { ...value.values };\n for (const [field, raw] of Object.entries(values)) {\n if (typeof raw === 'number' && textureFields.has(field)) {\n const resolved = resolveMaterialWireRef(raw, refs, field, guid);\n if (!resolved.ok) return resolved;\n values[field] = resolved.value as NonNullable<MaterialAsset['values']>[string];\n changed = true;\n continue;\n }\n if (!record(raw)) continue;\n const rawRecord = raw as unknown as Record<string, unknown>;\n let rewritten: Record<string, unknown> | undefined;\n for (const key of ['texture', 'sampler'] as const) {\n if (!(key in rawRecord)) continue;\n const resolved = resolveMaterialWireRef(rawRecord[key], refs, `${field}.${key}`, guid);\n if (!resolved.ok) return resolved;\n if (resolved.value !== rawRecord[key]) {\n rewritten ??= { ...rawRecord };\n rewritten[key] = resolved.value;\n changed = true;\n }\n }\n if (rewritten !== undefined) {\n values[field] = rewritten as unknown as NonNullable<MaterialAsset['values']>[string];\n }\n }\n if (!changed) return ok(value);\n if (parent !== undefined) {\n const child = value as MaterialChildAsset;\n return ok({\n ...child,\n parent: parent as unknown as MaterialChildAsset['parent'],\n values,\n });\n }\n return ok({ ...value, values } as MaterialRootAsset);\n}\n\nexport const materialContribution: AssetDecoderContribution<MaterialAsset, 'material'> = {\n kind: { kind: 'material' } as AssetKind<MaterialAsset, 'material'>,\n consumer: 'Render MaterialScene',\n decoder: {\n async decode({ envelope }) {\n if (!validMaterial(envelope.payload)) {\n return invalid(\n envelope.guid,\n 'a material payload with cooked passes, parameters, and values',\n 'material owner validation failed',\n );\n }\n return resolveMaterialWireRefs(envelope.payload, envelope.refs, envelope.guid);\n },\n },\n};\n\nexport const samplerContribution: AssetDecoderContribution<SamplerAsset, 'sampler'> = {\n kind: { kind: 'sampler' } as AssetKind<SamplerAsset, 'sampler'>,\n consumer: 'Render DeviceScope',\n decoder: {\n async decode({ envelope }) {\n return envelope.payload.kind === 'sampler'\n ? ok(envelope.payload)\n : invalid(envelope.guid, 'a sampler payload', 'sampler owner validation failed');\n },\n },\n};\n\nexport const renderPipelineContribution: AssetDecoderContribution<\n RenderPipelineAsset,\n 'render-pipeline'\n> = {\n kind: { kind: 'render-pipeline' } as AssetKind<RenderPipelineAsset, 'render-pipeline'>,\n consumer: 'Render Pipeline',\n decoder: {\n async decode({ envelope }) {\n const payload = envelope.payload;\n return payload.kind === 'render-pipeline' && payload.pipelineId.trim().length > 0\n ? ok(payload)\n : invalid(\n envelope.guid,\n 'a render-pipeline payload with a pipelineId',\n 'render-pipeline owner validation failed',\n );\n },\n },\n};\n","import type { Component, World } from '@forgeax/engine-ecs';\nimport type { Plugin } from '@forgeax/engine-plugin';\nimport { Atmosphere } from './components/atmosphere';\nimport { Camera } from './components/camera';\nimport { DirectionalLight } from './components/directional-light';\nimport { Instances } from './components/instances';\nimport { Layer } from './components/layer';\nimport { LightProbe } from './components/light-probe';\nimport { Lines } from './components/lines';\nimport { MeshFilter } from './components/mesh-filter';\nimport { MeshRenderer } from './components/mesh-renderer';\nimport { PointLight } from './components/point-light';\nimport { PointLightShadow } from './components/point-light-shadow';\nimport { Points } from './components/points';\nimport { PostProcessParams } from './components/post-process-params';\nimport { RectAreaLight } from './components/rect-area-light';\nimport { SceneInstance } from './components/scene-instance';\nimport { SkyboxBackground } from './components/skybox-background';\nimport { Skylight } from './components/skylight';\nimport { SortKey } from './components/sort-key';\nimport { SpotLight } from './components/spot-light';\nimport { SpriteAnimation } from './components/sprite-animation';\nimport { SpriteInstances } from './components/sprite-instances';\nimport { SpriteRegionOverride } from './components/sprite-region-override';\nimport { TileLayer } from './components/tile-layer';\nimport { Tilemap } from './components/tilemap';\nimport { Visibility } from './components/visibility';\n\nconst RENDER_COMPONENTS: readonly Component[] = [\n Atmosphere,\n Camera,\n DirectionalLight,\n Instances,\n Layer,\n LightProbe,\n MeshFilter,\n MeshRenderer,\n PointLight,\n PointLightShadow,\n Points,\n Lines,\n PostProcessParams,\n RectAreaLight,\n SceneInstance,\n SkyboxBackground,\n Skylight,\n SortKey,\n SpotLight,\n SpriteAnimation,\n SpriteInstances,\n SpriteRegionOverride,\n TileLayer,\n Tilemap,\n Visibility,\n];\n\nfunction registerRenderComponents(world: World): () => void {\n const leases = RENDER_COMPONENTS.map((component) =>\n world.components.register(component).unwrap(),\n );\n return () => {\n for (let index = leases.length - 1; index >= 0; index -= 1) leases[index]?.dispose();\n };\n}\n\n/** Install the built-in render ECS vocabulary in one World. */\nexport function renderComponentsPlugin(): Plugin {\n return {\n name: 'render-components',\n inject: ['world'],\n apply(ctx) {\n ctx.effect(() => registerRenderComponents(ctx.world), 'render/components');\n },\n };\n}\n","/** Renderer-owned timestamp facts spanning one graph and one queue submit. */\n\nexport interface GpuFrameTimingProtocol {\n readonly firstMarker: 'frame.first-pass';\n readonly terminalMarker: 'occlusion.resolve-copy';\n readonly sameGraph: true;\n readonly sameSubmit: true;\n}\n\nexport interface GpuFrameTiming {\n readonly frameId: number;\n readonly deviceGeneration: number;\n readonly protocol: GpuFrameTimingProtocol;\n aborted: boolean;\n submitId: number | undefined;\n}\n\nexport interface GpuFrameTimingRecord {\n readonly firstPassTimestampNs: number;\n readonly occlusionResolveTimestampNs: number;\n readonly submitted: boolean;\n readonly graphGeneration: number;\n readonly submitId: number;\n}\n\nexport interface GpuFrameTimingSample {\n readonly frameId: number;\n readonly deviceGeneration: number;\n readonly durationUs: number;\n readonly protocol: GpuFrameTimingProtocol;\n readonly graphGeneration: number;\n readonly submitId: number;\n}\n\nexport interface GpuFrameTimingSummary {\n readonly medianUs: number;\n readonly p95Us: number;\n readonly samples: number;\n}\n\nconst PROTOCOL: GpuFrameTimingProtocol = Object.freeze({\n firstMarker: 'frame.first-pass',\n terminalMarker: 'occlusion.resolve-copy',\n sameGraph: true,\n sameSubmit: true,\n});\n\nexport function createGpuFrameTiming(input: {\n readonly frameId: number;\n readonly deviceGeneration: number;\n}): GpuFrameTiming {\n return { ...input, protocol: PROTOCOL, aborted: false, submitId: undefined };\n}\n\nexport function recordGpuFrameTiming(\n timing: GpuFrameTiming,\n record: GpuFrameTimingRecord,\n): GpuFrameTimingSample {\n if (!record.submitted) {\n timing.aborted = true;\n throw new Error('GPU frame timing requires a submitted frame');\n }\n if (timing.aborted) throw new Error('GPU frame timing cannot cross a failed submit');\n if (timing.submitId !== undefined && timing.submitId !== record.submitId) {\n throw new Error('GPU frame timing markers must share one submit');\n }\n if (\n !Number.isFinite(record.firstPassTimestampNs) ||\n !Number.isFinite(record.occlusionResolveTimestampNs)\n ) {\n throw new Error('GPU frame timing requires finite timestamps');\n }\n if (record.occlusionResolveTimestampNs < record.firstPassTimestampNs) {\n throw new Error('GPU frame timing terminal marker precedes first marker');\n }\n timing.submitId = record.submitId;\n return Object.freeze({\n frameId: timing.frameId,\n deviceGeneration: timing.deviceGeneration,\n durationUs: (record.occlusionResolveTimestampNs - record.firstPassTimestampNs) / 1_000,\n protocol: PROTOCOL,\n graphGeneration: record.graphGeneration,\n submitId: record.submitId,\n });\n}\n\nfunction nearestRank(values: readonly number[], percentile: number): number {\n const sorted = [...values].sort((left, right) => left - right);\n return sorted[Math.max(0, Math.ceil(percentile * sorted.length) - 1)] ?? 0;\n}\n\nexport function summarizeGpuFrameTiming(\n samples: readonly GpuFrameTimingSample[],\n): GpuFrameTimingSummary {\n const values = samples.map((sample) => sample.durationUs);\n return Object.freeze({\n medianUs: nearestRank(values, 0.5),\n p95Us: nearestRank(values, 0.95),\n samples: values.length,\n });\n}\n","import { err, ok, type Result } from '@forgeax/engine-types';\n\n/** Linear HDR RGB used by the M0 composition contract. */\nexport type SsrReflectionColor = readonly [number, number, number];\n\nexport interface SsrCompositionInput {\n /** Screen-hit confidence. The parent SSR consumer supplies 0..1. */\n readonly c: number;\n /** The Standard BRDF specular lobe before SSR replacement. */\n readonly baseSpecular: SsrReflectionColor;\n /** The same-source BRDF-projected screen contribution. */\n readonly screenSpecular: SsrReflectionColor;\n /** The committed producer-owned environment contribution. */\n readonly fallbackSpecular: SsrReflectionColor;\n}\n\nexport interface SsrCompositionInputError {\n readonly code: 'ssr-composition-input-invalid';\n readonly expected: string;\n readonly hint: string;\n readonly detail: Readonly<{\n readonly field: 'c' | 'baseSpecular' | 'screenSpecular' | 'fallbackSpecular';\n }>;\n}\n\nexport type SsrCompositionResult = Result<SsrReflectionColor, SsrCompositionInputError>;\n\nfunction finiteColor(value: SsrReflectionColor): boolean {\n return value.length === 3 && value.every(Number.isFinite);\n}\n\nfunction invalid(\n field: SsrCompositionInputError['detail']['field'],\n expected: string,\n): SsrCompositionResult {\n return err({\n code: 'ssr-composition-input-invalid',\n expected,\n hint: 'preserve linear HDR and the bounded SSR confidence before composing',\n detail: Object.freeze({ field }),\n });\n}\n\n/**\n * Apply the M0 reflection replacement contract without owning an SSR pass.\n *\n * `c=0` returns the base Standard specular lobe. `c=1` replaces only that\n * lobe with the same-source screen contribution, subtracting the committed\n * environment contribution once. Hi-Z traversal, history and graph wiring\n * remain owned by the parent SSR feature.\n */\nexport function composeSsrReflection(input: SsrCompositionInput): SsrCompositionResult {\n if (!Number.isFinite(input.c) || input.c < 0 || input.c > 1) {\n return invalid('c', 'a finite confidence in the inclusive range 0..1');\n }\n for (const [field, value] of [\n ['baseSpecular', input.baseSpecular],\n ['screenSpecular', input.screenSpecular],\n ['fallbackSpecular', input.fallbackSpecular],\n ] as const) {\n if (!finiteColor(value)) {\n return invalid(field, 'three finite linear HDR RGB channels');\n }\n }\n const c = input.c;\n return ok(\n Object.freeze([\n input.baseSpecular[0] + c * (input.screenSpecular[0] - input.fallbackSpecular[0]),\n input.baseSpecular[1] + c * (input.screenSpecular[1] - input.fallbackSpecular[1]),\n input.baseSpecular[2] + c * (input.screenSpecular[2] - input.fallbackSpecular[2]),\n ]) as SsrReflectionColor,\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/assets/asset-decoders.ts","../src/plugin.ts","../src/scene/visibility/gpu-frame-timing.ts","../src/ssr/composition.ts"],"names":["record","invalid","err","ok"],"mappings":"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","file":"index.mjs","sourcesContent":["import { validateCookedMaterialRecord } from '@forgeax/engine-pack';\nimport {\n type AssetDecoderContribution,\n type AssetKind,\n type AssetLoadError,\n err,\n MATERIAL_TEXTURE_SLOTS,\n type MaterialAsset,\n type MaterialChildAsset,\n type MaterialRootAsset,\n ok,\n type RenderPipelineAsset,\n type SamplerAsset,\n} from '@forgeax/engine-types';\n\nfunction invalid(guid: string, expected: string, reason: string) {\n return err({\n code: 'asset-package-invalid' as const,\n expected,\n hint: 'recook the render asset and publish its complete cooked payload',\n detail: { guid, reason },\n });\n}\n\nfunction record(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction validMaterial(value: unknown): value is MaterialAsset {\n if (!record(value) || value.kind !== 'material') return false;\n if (value.cooked !== undefined && !validateCookedMaterialRecord(value.cooked).ok) {\n return false;\n }\n if (value.passes !== undefined && !Array.isArray(value.passes)) return false;\n if (value.parameters !== undefined && !Array.isArray(value.parameters)) return false;\n if (\n value.parent !== undefined &&\n ['colorSpace', 'passes', 'parameters'].some((field) => Object.hasOwn(value, field))\n ) {\n return false;\n }\n return value.values === undefined || record(value.values);\n}\n\nfunction resolveMaterialWireRef(\n value: unknown,\n refs: readonly string[],\n field: string,\n guid: string,\n): ReturnType<typeof ok<string | number>> | ReturnType<typeof err<AssetLoadError>> {\n if (typeof value !== 'number') return ok(value as string | number);\n if (!Number.isSafeInteger(value) || value < 0 || refs[value] === undefined) {\n return err<AssetLoadError>({\n code: 'asset-package-invalid',\n expected: `${field} to reference a GUID through the material Pack refs[] table`,\n hint: 'recook the material so every texture or sampler ref has a matching refs[] entry',\n detail: { guid, reason: `${field} refs[${value}] is out of bounds` },\n });\n }\n return ok(refs[value] as string);\n}\n\nfunction resolveMaterialWireRefs(\n value: MaterialAsset,\n refs: readonly string[],\n guid: string,\n): ReturnType<typeof ok<MaterialAsset>> | ReturnType<typeof err<AssetLoadError>> {\n if (refs.length === 0) return ok(value);\n\n let changed = false;\n const wire = value as unknown as { readonly parent?: unknown };\n let parent = wire.parent;\n if (typeof parent === 'number') {\n const resolved = resolveMaterialWireRef(parent, refs, 'parent', guid);\n if (!resolved.ok) return resolved;\n parent = resolved.value;\n changed = true;\n }\n\n if (value.values === undefined) {\n if (!changed) return ok(value);\n if (parent !== undefined) {\n const child = value as MaterialChildAsset;\n return ok({ ...child, parent: parent as unknown as MaterialChildAsset['parent'] });\n }\n return ok(value);\n }\n\n const textureFields = new Set(\n value.parameters === undefined\n ? MATERIAL_TEXTURE_SLOTS\n : value.parameters\n .filter((parameter) => parameter.type === 'texture' || parameter.type === 'texture_cube')\n .map((parameter) => parameter.name),\n );\n const values = { ...value.values };\n for (const [field, raw] of Object.entries(values)) {\n if (typeof raw === 'number' && textureFields.has(field)) {\n const resolved = resolveMaterialWireRef(raw, refs, field, guid);\n if (!resolved.ok) return resolved;\n values[field] = resolved.value as NonNullable<MaterialAsset['values']>[string];\n changed = true;\n continue;\n }\n if (!record(raw)) continue;\n const rawRecord = raw as unknown as Record<string, unknown>;\n let rewritten: Record<string, unknown> | undefined;\n for (const key of ['texture', 'sampler'] as const) {\n if (!(key in rawRecord)) continue;\n const resolved = resolveMaterialWireRef(rawRecord[key], refs, `${field}.${key}`, guid);\n if (!resolved.ok) return resolved;\n if (resolved.value !== rawRecord[key]) {\n rewritten ??= { ...rawRecord };\n rewritten[key] = resolved.value;\n changed = true;\n }\n }\n if (rewritten !== undefined) {\n values[field] = rewritten as unknown as NonNullable<MaterialAsset['values']>[string];\n }\n }\n if (!changed) return ok(value);\n if (parent !== undefined) {\n const child = value as MaterialChildAsset;\n return ok({\n ...child,\n parent: parent as unknown as MaterialChildAsset['parent'],\n values,\n });\n }\n return ok({ ...value, values } as MaterialRootAsset);\n}\n\nexport const materialContribution: AssetDecoderContribution<MaterialAsset, 'material'> = {\n kind: { kind: 'material' } as AssetKind<MaterialAsset, 'material'>,\n consumer: 'Render MaterialScene',\n decoder: {\n async decode({ envelope }) {\n if (!validMaterial(envelope.payload)) {\n return invalid(\n envelope.guid,\n 'a material payload with cooked passes, parameters, and values',\n 'material owner validation failed',\n );\n }\n return resolveMaterialWireRefs(envelope.payload, envelope.refs, envelope.guid);\n },\n },\n};\n\nexport const samplerContribution: AssetDecoderContribution<SamplerAsset, 'sampler'> = {\n kind: { kind: 'sampler' } as AssetKind<SamplerAsset, 'sampler'>,\n consumer: 'Render DeviceScope',\n decoder: {\n async decode({ envelope }) {\n return envelope.payload.kind === 'sampler'\n ? ok(envelope.payload)\n : invalid(envelope.guid, 'a sampler payload', 'sampler owner validation failed');\n },\n },\n};\n\nexport const renderPipelineContribution: AssetDecoderContribution<\n RenderPipelineAsset,\n 'render-pipeline'\n> = {\n kind: { kind: 'render-pipeline' } as AssetKind<RenderPipelineAsset, 'render-pipeline'>,\n consumer: 'Render Pipeline',\n decoder: {\n async decode({ envelope }) {\n const payload = envelope.payload;\n return payload.kind === 'render-pipeline' && payload.pipelineId.trim().length > 0\n ? ok(payload)\n : invalid(\n envelope.guid,\n 'a render-pipeline payload with a pipelineId',\n 'render-pipeline owner validation failed',\n );\n },\n },\n};\n","import type { Component, World } from '@forgeax/engine-ecs';\nimport type { Plugin } from '@forgeax/engine-plugin';\nimport { Atmosphere } from './components/atmosphere';\nimport { Camera } from './components/camera';\nimport { DirectionalLight } from './components/directional-light';\nimport { DynamicResolution } from './components/dynamic-resolution';\nimport { Instances } from './components/instances';\nimport { Layer } from './components/layer';\nimport { LightProbe } from './components/light-probe';\nimport { Lines } from './components/lines';\nimport { MeshFilter } from './components/mesh-filter';\nimport { MeshRenderer } from './components/mesh-renderer';\nimport { MotionBlur } from './components/motion-blur';\nimport { PointLight } from './components/point-light';\nimport { PointLightShadow } from './components/point-light-shadow';\nimport { Points } from './components/points';\nimport { PostProcessParams } from './components/post-process-params';\nimport { RectAreaLight } from './components/rect-area-light';\nimport { SceneInstance } from './components/scene-instance';\nimport { SkyboxBackground } from './components/skybox-background';\nimport { Skylight } from './components/skylight';\nimport { SortKey } from './components/sort-key';\nimport { SpotLight } from './components/spot-light';\nimport { SpriteAnimation } from './components/sprite-animation';\nimport { SpriteInstances } from './components/sprite-instances';\nimport { SpriteRegionOverride } from './components/sprite-region-override';\nimport { TileLayer } from './components/tile-layer';\nimport { Tilemap } from './components/tilemap';\nimport { Visibility } from './components/visibility';\n\nconst RENDER_COMPONENTS: readonly Component[] = [\n Atmosphere,\n Camera,\n DirectionalLight,\n DynamicResolution,\n Instances,\n Layer,\n LightProbe,\n MeshFilter,\n MeshRenderer,\n MotionBlur,\n PointLight,\n PointLightShadow,\n Points,\n Lines,\n PostProcessParams,\n RectAreaLight,\n SceneInstance,\n SkyboxBackground,\n Skylight,\n SortKey,\n SpotLight,\n SpriteAnimation,\n SpriteInstances,\n SpriteRegionOverride,\n TileLayer,\n Tilemap,\n Visibility,\n];\n\nfunction registerRenderComponents(world: World): () => void {\n const leases = RENDER_COMPONENTS.map((component) =>\n world.components.register(component).unwrap(),\n );\n return () => {\n for (let index = leases.length - 1; index >= 0; index -= 1) leases[index]?.dispose();\n };\n}\n\n/** Install the built-in render ECS vocabulary in one World. */\nexport function renderComponentsPlugin(): Plugin {\n return {\n name: 'render-components',\n inject: ['world'],\n apply(ctx) {\n ctx.effect(() => registerRenderComponents(ctx.world), 'render/components');\n },\n };\n}\n","/** Renderer-owned timestamp facts spanning one graph and one queue submit. */\n\nexport interface GpuFrameTimingProtocol {\n readonly firstMarker: 'frame.first-pass';\n readonly terminalMarker: 'occlusion.resolve-copy';\n readonly sameGraph: true;\n readonly sameSubmit: true;\n}\n\nexport interface GpuFrameTiming {\n readonly frameId: number;\n readonly deviceGeneration: number;\n readonly protocol: GpuFrameTimingProtocol;\n aborted: boolean;\n submitId: number | undefined;\n}\n\nexport interface GpuFrameTimingRecord {\n readonly firstPassTimestampNs: number;\n readonly occlusionResolveTimestampNs: number;\n readonly submitted: boolean;\n readonly graphGeneration: number;\n readonly submitId: number;\n}\n\nexport interface GpuFrameTimingSample {\n readonly frameId: number;\n readonly deviceGeneration: number;\n readonly durationUs: number;\n readonly protocol: GpuFrameTimingProtocol;\n readonly graphGeneration: number;\n readonly submitId: number;\n}\n\nexport interface GpuFrameTimingSummary {\n readonly medianUs: number;\n readonly p95Us: number;\n readonly samples: number;\n}\n\nconst PROTOCOL: GpuFrameTimingProtocol = Object.freeze({\n firstMarker: 'frame.first-pass',\n terminalMarker: 'occlusion.resolve-copy',\n sameGraph: true,\n sameSubmit: true,\n});\n\nexport function createGpuFrameTiming(input: {\n readonly frameId: number;\n readonly deviceGeneration: number;\n}): GpuFrameTiming {\n return { ...input, protocol: PROTOCOL, aborted: false, submitId: undefined };\n}\n\nexport function recordGpuFrameTiming(\n timing: GpuFrameTiming,\n record: GpuFrameTimingRecord,\n): GpuFrameTimingSample {\n if (!record.submitted) {\n timing.aborted = true;\n throw new Error('GPU frame timing requires a submitted frame');\n }\n if (timing.aborted) throw new Error('GPU frame timing cannot cross a failed submit');\n if (timing.submitId !== undefined && timing.submitId !== record.submitId) {\n throw new Error('GPU frame timing markers must share one submit');\n }\n if (\n !Number.isFinite(record.firstPassTimestampNs) ||\n !Number.isFinite(record.occlusionResolveTimestampNs)\n ) {\n throw new Error('GPU frame timing requires finite timestamps');\n }\n if (record.occlusionResolveTimestampNs < record.firstPassTimestampNs) {\n throw new Error('GPU frame timing terminal marker precedes first marker');\n }\n timing.submitId = record.submitId;\n return Object.freeze({\n frameId: timing.frameId,\n deviceGeneration: timing.deviceGeneration,\n durationUs: (record.occlusionResolveTimestampNs - record.firstPassTimestampNs) / 1_000,\n protocol: PROTOCOL,\n graphGeneration: record.graphGeneration,\n submitId: record.submitId,\n });\n}\n\nfunction nearestRank(values: readonly number[], percentile: number): number {\n const sorted = [...values].sort((left, right) => left - right);\n return sorted[Math.max(0, Math.ceil(percentile * sorted.length) - 1)] ?? 0;\n}\n\nexport function summarizeGpuFrameTiming(\n samples: readonly GpuFrameTimingSample[],\n): GpuFrameTimingSummary {\n const values = samples.map((sample) => sample.durationUs);\n return Object.freeze({\n medianUs: nearestRank(values, 0.5),\n p95Us: nearestRank(values, 0.95),\n samples: values.length,\n });\n}\n","import { err, ok, type Result } from '@forgeax/engine-types';\n\n/** Linear HDR RGB used by the M0 composition contract. */\nexport type SsrReflectionColor = readonly [number, number, number];\n\nexport interface SsrCompositionInput {\n /** Screen-hit confidence. The parent SSR consumer supplies 0..1. */\n readonly c: number;\n /** The Standard BRDF specular lobe before SSR replacement. */\n readonly baseSpecular: SsrReflectionColor;\n /** The same-source BRDF-projected screen contribution. */\n readonly screenSpecular: SsrReflectionColor;\n /** The committed producer-owned environment contribution. */\n readonly fallbackSpecular: SsrReflectionColor;\n}\n\nexport interface SsrCompositionInputError {\n readonly code: 'ssr-composition-input-invalid';\n readonly expected: string;\n readonly hint: string;\n readonly detail: Readonly<{\n readonly field: 'c' | 'baseSpecular' | 'screenSpecular' | 'fallbackSpecular';\n }>;\n}\n\nexport type SsrCompositionResult = Result<SsrReflectionColor, SsrCompositionInputError>;\n\nfunction finiteColor(value: SsrReflectionColor): boolean {\n return value.length === 3 && value.every(Number.isFinite);\n}\n\nfunction invalid(\n field: SsrCompositionInputError['detail']['field'],\n expected: string,\n): SsrCompositionResult {\n return err({\n code: 'ssr-composition-input-invalid',\n expected,\n hint: 'preserve linear HDR and the bounded SSR confidence before composing',\n detail: Object.freeze({ field }),\n });\n}\n\n/**\n * Apply the M0 reflection replacement contract without owning an SSR pass.\n *\n * `c=0` returns the base Standard specular lobe. `c=1` replaces only that\n * lobe with the same-source screen contribution, subtracting the committed\n * environment contribution once. Hi-Z traversal, history and graph wiring\n * remain owned by the parent SSR feature.\n */\nexport function composeSsrReflection(input: SsrCompositionInput): SsrCompositionResult {\n if (!Number.isFinite(input.c) || input.c < 0 || input.c > 1) {\n return invalid('c', 'a finite confidence in the inclusive range 0..1');\n }\n for (const [field, value] of [\n ['baseSpecular', input.baseSpecular],\n ['screenSpecular', input.screenSpecular],\n ['fallbackSpecular', input.fallbackSpecular],\n ] as const) {\n if (!finiteColor(value)) {\n return invalid(field, 'three finite linear HDR RGB channels');\n }\n }\n const c = input.c;\n return ok(\n Object.freeze([\n input.baseSpecular[0] + c * (input.screenSpecular[0] - input.fallbackSpecular[0]),\n input.baseSpecular[1] + c * (input.screenSpecular[1] - input.fallbackSpecular[1]),\n input.baseSpecular[2] + c * (input.screenSpecular[2] - input.fallbackSpecular[2]),\n ]) as SsrReflectionColor,\n );\n}\n"]}