@forgeax/engine-render 0.1.33 → 0.1.35

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 (624) hide show
  1. package/README.md +1062 -127
  2. package/dist/assembly/backend-contract.d.ts +2 -0
  3. package/dist/assembly/backend-contract.d.ts.map +1 -1
  4. package/dist/assembly/barrel-distortion-inspection.d.ts +3 -0
  5. package/dist/assembly/barrel-distortion-inspection.d.ts.map +1 -0
  6. package/dist/assembly/canvas-draw-guard.d.ts +3 -0
  7. package/dist/assembly/canvas-draw-guard.d.ts.map +1 -0
  8. package/dist/assembly/cloud-shadow-entry.d.ts +4 -0
  9. package/dist/assembly/cloud-shadow-entry.d.ts.map +1 -0
  10. package/dist/assembly/device-feature-admission.d.ts +2 -2
  11. package/dist/assembly/dynamic-geometry-host.d.ts +4 -1
  12. package/dist/assembly/dynamic-geometry-host.d.ts.map +1 -1
  13. package/dist/assembly/dynamic-geometry-runtime.d.ts +1 -1
  14. package/dist/assembly/dynamic-geometry-runtime.d.ts.map +1 -1
  15. package/dist/assembly/factory.d.ts +1 -1
  16. package/dist/assembly/factory.d.ts.map +1 -1
  17. package/dist/assembly/host-contract.d.ts +6 -5
  18. package/dist/assembly/host-contract.d.ts.map +1 -1
  19. package/dist/assembly/material/assembly.d.ts.map +1 -1
  20. package/dist/assembly/material/pipeline-helpers.d.ts +5 -0
  21. package/dist/assembly/material/pipeline-helpers.d.ts.map +1 -1
  22. package/dist/assembly/material-shader-policy.d.ts +16 -2
  23. package/dist/assembly/material-shader-policy.d.ts.map +1 -1
  24. package/dist/assembly/material-shader-prewarm.d.ts.map +1 -1
  25. package/dist/assembly/recovery/device-loss-fanout.d.ts.map +1 -1
  26. package/dist/assembly/recovery/renderer-recover.d.ts +2 -0
  27. package/dist/assembly/recovery/renderer-recover.d.ts.map +1 -1
  28. package/dist/assembly/render-feature-post-processes.d.ts +6 -0
  29. package/dist/assembly/render-feature-post-processes.d.ts.map +1 -0
  30. package/dist/assembly/render-target-host.d.ts +5 -0
  31. package/dist/assembly/render-target-host.d.ts.map +1 -1
  32. package/dist/assembly/renderer-facade.d.ts.map +1 -1
  33. package/dist/assembly/renderer-feature-inspection.d.ts +1 -1
  34. package/dist/assembly/renderer-feature-inspection.d.ts.map +1 -1
  35. package/dist/assembly/renderer-frame-transaction.d.ts +12 -0
  36. package/dist/assembly/renderer-frame-transaction.d.ts.map +1 -1
  37. package/dist/assembly/renderer-inspection.d.ts +11 -0
  38. package/dist/assembly/renderer-inspection.d.ts.map +1 -1
  39. package/dist/assembly/webgpu-pbr-ready.d.ts +1 -0
  40. package/dist/assembly/webgpu-pbr-ready.d.ts.map +1 -1
  41. package/dist/assembly/webgpu-ready-per-pass.d.ts +39 -0
  42. package/dist/assembly/webgpu-ready-per-pass.d.ts.map +1 -0
  43. package/dist/assembly/webgpu-ready.d.ts +1 -1
  44. package/dist/assembly/webgpu-ready.d.ts.map +1 -1
  45. package/dist/assembly/webgpu-renderer-bootstrap.d.ts.map +1 -1
  46. package/dist/assembly/webgpu-renderer-observation-owner.d.ts +35 -0
  47. package/dist/assembly/webgpu-renderer-observation-owner.d.ts.map +1 -0
  48. package/dist/assembly/webgpu-renderer.d.ts +2 -1
  49. package/dist/assembly/webgpu-renderer.d.ts.map +1 -1
  50. package/dist/authoring.mjs +2 -4
  51. package/dist/authoring.mjs.map +1 -1
  52. package/dist/barrel-distortion.d.ts +47 -0
  53. package/dist/barrel-distortion.d.ts.map +1 -0
  54. package/dist/chunk-3XUBWRY2.mjs +1842 -0
  55. package/dist/chunk-3XUBWRY2.mjs.map +1 -0
  56. package/dist/{chunk-OO3DRYK7.mjs → chunk-G6HDNGY7.mjs} +2400 -1767
  57. package/dist/chunk-G6HDNGY7.mjs.map +1 -0
  58. package/dist/{chunk-ZDQWGQW7.mjs → chunk-LM5IE7GF.mjs} +4 -4
  59. package/dist/{chunk-ZDQWGQW7.mjs.map → chunk-LM5IE7GF.mjs.map} +1 -1
  60. package/dist/{chunk-VOZWDM3L.mjs → chunk-LNIUIKQ7.mjs} +1514 -498
  61. package/dist/chunk-LNIUIKQ7.mjs.map +1 -0
  62. package/dist/chunk-MXTWKZO4.mjs +3268 -0
  63. package/dist/chunk-MXTWKZO4.mjs.map +1 -0
  64. package/dist/chunk-MZ4C7EHF.mjs +6942 -0
  65. package/dist/chunk-MZ4C7EHF.mjs.map +1 -0
  66. package/dist/chunk-RIPAEGI6.mjs +48 -0
  67. package/dist/chunk-RIPAEGI6.mjs.map +1 -0
  68. package/dist/{chunk-LEAXOMYJ.mjs → chunk-SGPUJW3F.mjs} +117 -5
  69. package/dist/chunk-SGPUJW3F.mjs.map +1 -0
  70. package/dist/{chunk-PA5DRJNI.mjs → chunk-X2KA6WHM.mjs} +29 -4
  71. package/dist/chunk-X2KA6WHM.mjs.map +1 -0
  72. package/dist/{chunk-BLXGONR2.mjs → chunk-XSFB7XXQ.mjs} +51 -4
  73. package/dist/chunk-XSFB7XXQ.mjs.map +1 -0
  74. package/dist/cloud/density.d.ts +55 -0
  75. package/dist/cloud/density.d.ts.map +1 -0
  76. package/dist/cloud/extract.d.ts +25 -0
  77. package/dist/cloud/extract.d.ts.map +1 -0
  78. package/dist/cloud/feature.d.ts +57 -0
  79. package/dist/cloud/feature.d.ts.map +1 -0
  80. package/dist/cloud/frame-context.d.ts +8 -0
  81. package/dist/cloud/frame-context.d.ts.map +1 -0
  82. package/dist/cloud/inspection.d.ts +59 -0
  83. package/dist/cloud/inspection.d.ts.map +1 -0
  84. package/dist/cloud/optics.d.ts +56 -0
  85. package/dist/cloud/optics.d.ts.map +1 -0
  86. package/dist/cloud/parameters.d.ts +73 -0
  87. package/dist/cloud/parameters.d.ts.map +1 -0
  88. package/dist/cloud/resources.d.ts +60 -0
  89. package/dist/cloud/resources.d.ts.map +1 -0
  90. package/dist/cloud/shadow.d.ts +42 -0
  91. package/dist/cloud/shadow.d.ts.map +1 -0
  92. package/dist/cloud/temporal.d.ts +74 -0
  93. package/dist/cloud/temporal.d.ts.map +1 -0
  94. package/dist/components/barrel-distortion.d.ts +13 -0
  95. package/dist/components/barrel-distortion.d.ts.map +1 -0
  96. package/dist/components/cloud-layer.d.ts +29 -0
  97. package/dist/components/cloud-layer.d.ts.map +1 -0
  98. package/dist/components/index.d.ts +2 -0
  99. package/dist/components/index.d.ts.map +1 -1
  100. package/dist/components/instances.d.ts +20 -6
  101. package/dist/components/instances.d.ts.map +1 -1
  102. package/dist/construct-renderer.d.ts +1 -1
  103. package/dist/construct-renderer.d.ts.map +1 -1
  104. package/dist/construct-renderer.mjs +8406 -5785
  105. package/dist/construct-renderer.mjs.map +1 -1
  106. package/dist/device/gpu-residency.d.ts +19 -19
  107. package/dist/device/gpu-residency.d.ts.map +1 -1
  108. package/dist/dynamic-geometry.d.ts +5 -1
  109. package/dist/dynamic-geometry.d.ts.map +1 -1
  110. package/dist/errors/cloud.d.ts +59 -0
  111. package/dist/errors/cloud.d.ts.map +1 -0
  112. package/dist/errors/render.d.ts +20 -5
  113. package/dist/errors/render.d.ts.map +1 -1
  114. package/dist/examples/single-layer-medium-surface.d.ts +47 -0
  115. package/dist/examples/single-layer-medium-surface.d.ts.map +1 -0
  116. package/dist/extract/camera.d.ts.map +1 -1
  117. package/dist/extract/contracts.d.ts +5 -1
  118. package/dist/extract/contracts.d.ts.map +1 -1
  119. package/dist/extract/material-context.d.ts +7 -0
  120. package/dist/extract/material-context.d.ts.map +1 -0
  121. package/dist/features/barrel-distortion.d.ts +29 -0
  122. package/dist/features/barrel-distortion.d.ts.map +1 -0
  123. package/dist/features/error-reporting.d.ts +6 -2
  124. package/dist/features/error-reporting.d.ts.map +1 -1
  125. package/dist/features/host.d.ts +15 -0
  126. package/dist/features/host.d.ts.map +1 -1
  127. package/dist/features/plan.d.ts +10 -0
  128. package/dist/features/plan.d.ts.map +1 -1
  129. package/dist/features/render-graph-contribution.d.ts +5 -0
  130. package/dist/features/render-graph-contribution.d.ts.map +1 -1
  131. package/dist/features/render-graph-raster.d.ts +1 -0
  132. package/dist/features/render-graph-raster.d.ts.map +1 -1
  133. package/dist/features/targets.d.ts +2 -0
  134. package/dist/features/targets.d.ts.map +1 -1
  135. package/dist/features/types.d.ts +48 -0
  136. package/dist/features/types.d.ts.map +1 -1
  137. package/dist/fullscreen-post-process-pass.d.ts +15 -7
  138. package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
  139. package/dist/glyph-text-layout-system.d.ts +1 -1
  140. package/dist/glyph-text-layout-system.d.ts.map +1 -1
  141. package/dist/gpu-dirty-ranges.d.ts +11 -0
  142. package/dist/gpu-dirty-ranges.d.ts.map +1 -0
  143. package/dist/gpu-driven/batch-topology.d.ts +17 -0
  144. package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
  145. package/dist/gpu-driven/material-artifacts.d.ts +6 -0
  146. package/dist/gpu-driven/material-artifacts.d.ts.map +1 -1
  147. package/dist/gpu-driven/prepared-draw.d.ts.map +1 -1
  148. package/dist/gpu-driven/production-raster-material.d.ts +178 -0
  149. package/dist/gpu-driven/production-raster-material.d.ts.map +1 -0
  150. package/dist/gpu-driven/production-raster.d.ts +47 -3
  151. package/dist/gpu-driven/production-raster.d.ts.map +1 -1
  152. package/dist/gpu-driven/resource-allocation.d.ts +31 -0
  153. package/dist/gpu-driven/resource-allocation.d.ts.map +1 -0
  154. package/dist/gpu-driven/shadow-ownership.d.ts +14 -0
  155. package/dist/gpu-driven/shadow-ownership.d.ts.map +1 -0
  156. package/dist/gpu-driven/view-gpu.d.ts +26 -2
  157. package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
  158. package/dist/gpu-scene.d.ts +5 -0
  159. package/dist/gpu-scene.d.ts.map +1 -1
  160. package/dist/hdrp-buffers.d.ts +2 -2
  161. package/dist/hdrp-buffers.d.ts.map +1 -1
  162. package/dist/ibl/frame-resources.d.ts.map +1 -1
  163. package/dist/ibl/skylight-bind-group.d.ts +14 -5
  164. package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
  165. package/dist/index.d.ts +30 -7
  166. package/dist/index.d.ts.map +1 -1
  167. package/dist/index.mjs +780 -9
  168. package/dist/index.mjs.map +1 -1
  169. package/dist/inspection-types.d.ts +135 -1
  170. package/dist/inspection-types.d.ts.map +1 -1
  171. package/dist/instance-buffer-cache.d.ts +4 -4
  172. package/dist/instance-buffer-cache.d.ts.map +1 -1
  173. package/dist/instances.d.ts +47 -100
  174. package/dist/instances.d.ts.map +1 -1
  175. package/dist/internal.mjs +7 -8
  176. package/dist/internal.mjs.map +1 -1
  177. package/dist/pbr-pipeline.d.ts +22 -4
  178. package/dist/pbr-pipeline.d.ts.map +1 -1
  179. package/dist/pipeline/single-layer-medium-passes.d.ts +73 -0
  180. package/dist/pipeline/single-layer-medium-passes.d.ts.map +1 -0
  181. package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
  182. package/dist/pipeline/standard-output/graph.d.ts.map +1 -1
  183. package/dist/pipeline/standard-output/lut-gpu.d.ts +2 -2
  184. package/dist/pipeline/standard-output/lut-gpu.d.ts.map +1 -1
  185. package/dist/pipeline/standard-output/resources.d.ts +2 -2
  186. package/dist/pipeline/standard-output/resources.d.ts.map +1 -1
  187. package/dist/pipeline/standard-output/types.d.ts +4 -2
  188. package/dist/pipeline/standard-output/types.d.ts.map +1 -1
  189. package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
  190. package/dist/pipeline/standard-post.d.ts.map +1 -1
  191. package/dist/pipeline-builder.d.ts +1 -1
  192. package/dist/pipeline-builder.d.ts.map +1 -1
  193. package/dist/plugin.d.ts.map +1 -1
  194. package/dist/prepare/prepared-graphics-resolver.d.ts +2 -0
  195. package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -1
  196. package/dist/publication/contract.d.ts +77 -0
  197. package/dist/publication/contract.d.ts.map +1 -0
  198. package/dist/publication/dependencies.d.ts +7 -0
  199. package/dist/publication/dependencies.d.ts.map +1 -0
  200. package/dist/publication/prepare-geometry.d.ts +9 -0
  201. package/dist/publication/prepare-geometry.d.ts.map +1 -0
  202. package/dist/publication/programs.d.ts +5 -0
  203. package/dist/publication/programs.d.ts.map +1 -0
  204. package/dist/publication/publisher.d.ts +33 -0
  205. package/dist/publication/publisher.d.ts.map +1 -0
  206. package/dist/publication/receiver.d.ts +29 -0
  207. package/dist/publication/receiver.d.ts.map +1 -0
  208. package/dist/publication/resource-scope.d.ts +18 -0
  209. package/dist/publication/resource-scope.d.ts.map +1 -0
  210. package/dist/publication/targets.d.ts +33 -0
  211. package/dist/publication/targets.d.ts.map +1 -0
  212. package/dist/publication/video.d.ts +5 -0
  213. package/dist/publication/video.d.ts.map +1 -0
  214. package/dist/record/barrel-distortion-frame.d.ts +15 -0
  215. package/dist/record/barrel-distortion-frame.d.ts.map +1 -0
  216. package/dist/record/dynamic-geometry-consumption.d.ts +10 -2
  217. package/dist/record/dynamic-geometry-consumption.d.ts.map +1 -1
  218. package/dist/record/fold-buckets.d.ts +95 -0
  219. package/dist/record/fold-buckets.d.ts.map +1 -0
  220. package/dist/record/fold-instance-buffer.d.ts +6 -0
  221. package/dist/record/fold-instance-buffer.d.ts.map +1 -0
  222. package/dist/record/frame-lighting.d.ts +1 -0
  223. package/dist/record/frame-lighting.d.ts.map +1 -1
  224. package/dist/record/frame-snapshot.d.ts +43 -9
  225. package/dist/record/frame-snapshot.d.ts.map +1 -1
  226. package/dist/record/frame.d.ts +15 -65
  227. package/dist/record/frame.d.ts.map +1 -1
  228. package/dist/record/gpu-draw-receipts.d.ts +11 -0
  229. package/dist/record/gpu-draw-receipts.d.ts.map +1 -0
  230. package/dist/record/gpu-timing.d.ts +8 -0
  231. package/dist/record/gpu-timing.d.ts.map +1 -1
  232. package/dist/record/helpers.d.ts +2 -2
  233. package/dist/record/helpers.d.ts.map +1 -1
  234. package/dist/record/main-pass-geometry.d.ts +22 -6
  235. package/dist/record/main-pass-geometry.d.ts.map +1 -1
  236. package/dist/record/main-pass-material.d.ts +14 -10
  237. package/dist/record/main-pass-material.d.ts.map +1 -1
  238. package/dist/record/main-pass-sprite-draws.d.ts +3 -16
  239. package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
  240. package/dist/record/main-pass.d.ts +13 -2
  241. package/dist/record/main-pass.d.ts.map +1 -1
  242. package/dist/record/motion-blur-receipt.d.ts +11 -0
  243. package/dist/record/motion-blur-receipt.d.ts.map +1 -0
  244. package/dist/record/prepared-material-bindings.d.ts +3 -3
  245. package/dist/record/prepared-material-bindings.d.ts.map +1 -1
  246. package/dist/record/probe-blend-buffer.d.ts +16 -0
  247. package/dist/record/probe-blend-buffer.d.ts.map +1 -0
  248. package/dist/record/recovery-pipeline.d.ts.map +1 -1
  249. package/dist/record/render-context.d.ts +24 -5
  250. package/dist/record/render-context.d.ts.map +1 -1
  251. package/dist/record/shadow-pass.d.ts +2 -0
  252. package/dist/record/shadow-pass.d.ts.map +1 -1
  253. package/dist/record/skybox-post-pass.d.ts +1 -1
  254. package/dist/record/skybox-post-pass.d.ts.map +1 -1
  255. package/dist/record/sprite-instance-buffer.d.ts +31 -0
  256. package/dist/record/sprite-instance-buffer.d.ts.map +1 -0
  257. package/dist/record/target-capture-graph.d.ts +19 -0
  258. package/dist/record/target-capture-graph.d.ts.map +1 -0
  259. package/dist/record/typed-frame-graph.d.ts +24 -15
  260. package/dist/record/typed-frame-graph.d.ts.map +1 -1
  261. package/dist/record/view-ubo.d.ts +11 -3
  262. package/dist/record/view-ubo.d.ts.map +1 -1
  263. package/dist/record/volume-params.d.ts +9 -0
  264. package/dist/record/volume-params.d.ts.map +1 -0
  265. package/dist/recovery/render-system-candidate.d.ts +14 -4
  266. package/dist/recovery/render-system-candidate.d.ts.map +1 -1
  267. package/dist/reflection/record-owner.d.ts.map +1 -1
  268. package/dist/render-contract.d.ts +46 -5
  269. package/dist/render-contract.d.ts.map +1 -1
  270. package/dist/render-graph-primitives.d.ts.map +1 -1
  271. package/dist/render-pipeline.d.ts +103 -2
  272. package/dist/render-pipeline.d.ts.map +1 -1
  273. package/dist/render-system-extract-tail.d.ts +3 -2
  274. package/dist/render-system-extract-tail.d.ts.map +1 -1
  275. package/dist/render-system-extract.d.ts +18 -9
  276. package/dist/render-system-extract.d.ts.map +1 -1
  277. package/dist/render-system-presentation.d.ts +23 -0
  278. package/dist/render-system-presentation.d.ts.map +1 -0
  279. package/dist/render-system-producer-roots.d.ts +10 -0
  280. package/dist/render-system-producer-roots.d.ts.map +1 -0
  281. package/dist/render-system-projections.d.ts +3 -2
  282. package/dist/render-system-projections.d.ts.map +1 -1
  283. package/dist/render-system-residency.d.ts +12 -0
  284. package/dist/render-system-residency.d.ts.map +1 -0
  285. package/dist/render-system.d.ts +22 -21
  286. package/dist/render-system.d.ts.map +1 -1
  287. package/dist/scene/probe-blend.d.ts +27 -0
  288. package/dist/scene/probe-blend.d.ts.map +1 -1
  289. package/dist/scene/render-scene.d.ts +18 -7
  290. package/dist/scene/render-scene.d.ts.map +1 -1
  291. package/dist/scene/render-source.d.ts +42 -0
  292. package/dist/scene/render-source.d.ts.map +1 -0
  293. package/dist/scene/source-systems.d.ts +6 -0
  294. package/dist/scene/source-systems.d.ts.map +1 -0
  295. package/dist/ssao-buffers.d.ts +9 -0
  296. package/dist/ssao-buffers.d.ts.map +1 -1
  297. package/dist/surface/dynamic-input.d.ts +133 -0
  298. package/dist/surface/dynamic-input.d.ts.map +1 -0
  299. package/dist/surface/gpu-driven.d.ts +41 -0
  300. package/dist/surface/gpu-driven.d.ts.map +1 -0
  301. package/dist/surface/submission-observation.d.ts +136 -0
  302. package/dist/surface/submission-observation.d.ts.map +1 -0
  303. package/dist/systems/skin-palette-allocator.d.ts.map +1 -1
  304. package/dist/systems/skin-palette-types.d.ts +10 -0
  305. package/dist/systems/skin-palette-types.d.ts.map +1 -1
  306. package/dist/systems/transparent-dispatch.d.ts +2 -2
  307. package/dist/systems/transparent-dispatch.d.ts.map +1 -1
  308. package/dist/systems/transparent-sort-config.d.ts +2 -1
  309. package/dist/systems/transparent-sort-config.d.ts.map +1 -1
  310. package/dist/temporal/gpu.d.ts +13 -1
  311. package/dist/temporal/gpu.d.ts.map +1 -1
  312. package/dist/temporal/index.mjs +6 -7
  313. package/dist/temporal/inspection.d.ts.map +1 -1
  314. package/dist/temporal/standard-scene-data.d.ts.map +1 -1
  315. package/dist/temporal/target-coverage-attachment.d.ts.map +1 -1
  316. package/dist/transmission/single-layer-medium.d.ts +89 -0
  317. package/dist/transmission/single-layer-medium.d.ts.map +1 -0
  318. package/dist/typed-render-graph-primitives.d.ts +14 -2
  319. package/dist/typed-render-graph-primitives.d.ts.map +1 -1
  320. package/dist/volume/component.d.ts +9 -4
  321. package/dist/volume/component.d.ts.map +1 -1
  322. package/dist/volume/extract.d.ts +1 -1
  323. package/dist/volume/extract.d.ts.map +1 -1
  324. package/dist/volume/inspection.d.ts +2 -0
  325. package/dist/volume/inspection.d.ts.map +1 -1
  326. package/dist/volume/passes.d.ts +4 -1
  327. package/dist/volume/passes.d.ts.map +1 -1
  328. package/dist/volume/resources.d.ts.map +1 -1
  329. package/package.json +22 -21
  330. package/src/__tests__/atmosphere-daylight.dawn.test.ts +72 -0
  331. package/src/__tests__/auto-exposure-transaction.integration.test.ts +4 -9
  332. package/src/__tests__/barrel-distortion-lkg.integration.test.ts +353 -0
  333. package/src/__tests__/barrel-distortion.dawn.test.ts +41 -0
  334. package/src/__tests__/barrel-distortion.unit.test.ts +364 -0
  335. package/src/__tests__/construct-renderer-identity.unit.test.ts +49 -0
  336. package/src/__tests__/detached-recovery-graph.unit.test.ts +277 -0
  337. package/src/__tests__/device-feature-admission.unit.test.ts +3 -2
  338. package/src/__tests__/device-loss-fanout.unit.test.ts +36 -1
  339. package/src/__tests__/docs-gate-green.unit.test.ts +112 -1
  340. package/src/__tests__/factory-contract.integration.test.ts +295 -45
  341. package/src/__tests__/feature-depth-input.dawn.test.ts +129 -2
  342. package/src/__tests__/fullscreen-feature-plan.unit.test.ts +14 -3
  343. package/src/__tests__/gpu-dirty-ranges.unit.test.ts +22 -0
  344. package/src/__tests__/gpu-driven-baseline.characterization.test.ts +16 -3
  345. package/src/__tests__/gpu-driven-batch-topology-pbr.unit.test.ts +12 -0
  346. package/src/__tests__/gpu-driven-material-artifacts.unit.test.ts +143 -0
  347. package/src/__tests__/gpu-driven-pbr.dawn.test.ts +5 -6
  348. package/src/__tests__/gpu-driven-production.integration.test.ts +482 -3
  349. package/src/__tests__/gpu-driven-shadow-views.dawn.test.ts +6 -5
  350. package/src/__tests__/gpu-driven-view-gpu-evidence.ts +94 -6
  351. package/src/__tests__/gpu-driven-view-graph.integration.test.ts +18 -2
  352. package/src/__tests__/gpu-driven-view.browser.test.ts +5 -8
  353. package/src/__tests__/gpu-driven-view.dawn.test.ts +6 -2
  354. package/src/__tests__/gpu-driven-view.unit.test.ts +1 -1
  355. package/src/__tests__/gpu-pass-timing-lifecycle.integration.test.ts +1 -0
  356. package/src/__tests__/gpu-pass-timing.browser.test.ts +6 -4
  357. package/src/__tests__/gpu-pass-timing.rhi-null.unit.test.ts +1 -0
  358. package/src/__tests__/gpu-scene.unit.test.ts +119 -9
  359. package/src/__tests__/instance-allocation-failure.unit.test.ts +57 -0
  360. package/src/__tests__/instances-culling.integration.test.ts +10 -36
  361. package/src/__tests__/instances-store.unit.test.ts +97 -305
  362. package/src/__tests__/instances-world-ownership.integration.test.ts +62 -0
  363. package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +4 -1
  364. package/src/__tests__/main-pass-material-medium-selection.unit.test.ts +145 -0
  365. package/src/__tests__/material-shader-prewarm.unit.test.ts +59 -0
  366. package/src/__tests__/material-snapshot-mutation.integration.test.ts +39 -1
  367. package/src/__tests__/materials-standard-contract.unit.test.ts +0 -1
  368. package/src/__tests__/morph-culling-reentry.dawn.test.ts +5 -5
  369. package/src/__tests__/morph-visual-evidence.integration.test.ts +8 -7
  370. package/src/__tests__/motion-blur-compute.dawn.test.ts +13 -7
  371. package/src/__tests__/motion-blur.pixel.integration.test.ts +2 -2
  372. package/src/__tests__/nineslice-handle-surface.unit.test.ts +4 -4
  373. package/src/__tests__/pbr-view-layout.unit.test.ts +9 -0
  374. package/src/__tests__/physical-clearcoat.integration.test.ts +66 -8
  375. package/src/__tests__/physical-material-budget.unit.test.ts +40 -0
  376. package/src/__tests__/prepared-graphics-capability.unit.test.ts +66 -2
  377. package/src/__tests__/probe-bindings.unit.test.ts +582 -1
  378. package/src/__tests__/probe-scene-dirty.integration.test.ts +28 -1
  379. package/src/__tests__/receipt-observation-retirement.unit.test.ts +65 -0
  380. package/src/__tests__/recovery-candidate-prepare.contract.test.ts +69 -0
  381. package/src/__tests__/render-error-code-owner.test-d.ts +8 -0
  382. package/src/__tests__/render-feature-diagnostics.unit.test.ts +15 -2
  383. package/src/__tests__/render-feature-error-reporting.unit.test.ts +21 -1
  384. package/src/__tests__/render-feature-prepared-diagnostics.unit.test.ts +10 -1
  385. package/src/__tests__/render-feature-retry.unit.test.ts +12 -1
  386. package/src/__tests__/render-scene-mixed-updates.integration.test.ts +145 -19
  387. package/src/__tests__/render-scene-projection.unit.test.ts +36 -11
  388. package/src/__tests__/render-scene-temporal-retry.unit.test.ts +20 -20
  389. package/src/__tests__/render-target-probe-soak.perf.test.ts +2 -2
  390. package/src/__tests__/render-temporal-environment-consumer.browser.test.ts +3 -3
  391. package/src/__tests__/render-temporal-environment-consumer.dawn.test.ts +5 -2
  392. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +42 -8
  393. package/src/__tests__/renderer-frame-generation-fence.integration.test.ts +16 -0
  394. package/src/__tests__/renderer-frame-transaction.integration.test.ts +26 -10
  395. package/src/__tests__/resource-allocation.unit.test.ts +123 -0
  396. package/src/__tests__/single-layer-medium-passes.unit.test.ts +275 -0
  397. package/src/__tests__/skin-motion-regression.unit.test.ts +70 -1
  398. package/src/__tests__/skin-palette-recycling.dawn.test.ts +97 -0
  399. package/src/__tests__/skinned-shadow-caster.test.ts +15 -0
  400. package/src/__tests__/ssr-carrier-public-contract.unit.test.ts +21 -0
  401. package/src/__tests__/ssr-gpu-dispatch.browser.test.ts +4 -4
  402. package/src/__tests__/ssr-gpu-dispatch.dawn.test.ts +2 -2
  403. package/src/__tests__/ssr-gpu-dispatch.ts +1 -1
  404. package/src/__tests__/ssr-receiver-coverage.dawn.test.ts +6 -2
  405. package/src/__tests__/standard-output-chain-contract.unit.test.ts +28 -0
  406. package/src/__tests__/standard-pbr-artifact-assembly.unit.test.ts +46 -1
  407. package/src/__tests__/standard-pipeline.integration.test.ts +182 -1
  408. package/src/__tests__/surface-dynamic-buffer-lifecycle.unit.test.ts +506 -0
  409. package/src/__tests__/surface-submission-observation.unit.test.ts +812 -0
  410. package/src/__tests__/temporal-history-lifecycle.unit.test.ts +32 -0
  411. package/src/__tests__/temporal-performance.integration.test.ts +3 -3
  412. package/src/__tests__/visibility-instances.integration.test.ts +7 -19
  413. package/src/__tests__/visibility-producer-matrix.integration.test.ts +9 -20
  414. package/src/__tests__/volume-optics-oracle.unit.test.ts +4 -2
  415. package/src/__tests__/volumetric-fog-budget-recovery.integration.test.ts +30 -20
  416. package/src/__tests__/volumetric-fog-errors.unit.test.ts +4 -3
  417. package/src/__tests__/volumetric-fog-multiple.unit.test.ts +55 -0
  418. package/src/__tests__/volumetric-fog-spot-frame-optics.integration.test.ts +1 -1
  419. package/src/__tests__/volumetric-fog-stage-readback.dawn.test.ts +113 -9
  420. package/src/__tests__/volumetric-fog-topology.unit.test.ts +5 -3
  421. package/src/assembly/backend-contract.ts +30 -0
  422. package/src/assembly/barrel-distortion-inspection.ts +22 -0
  423. package/src/assembly/canvas-draw-guard.ts +11 -0
  424. package/src/assembly/cloud-shadow-entry.ts +22 -0
  425. package/src/assembly/device-feature-admission.ts +2 -2
  426. package/src/assembly/dynamic-geometry-host.ts +65 -37
  427. package/src/assembly/dynamic-geometry-runtime.ts +7 -1
  428. package/src/assembly/factory.ts +2 -30
  429. package/src/assembly/host-contract.ts +8 -5
  430. package/src/assembly/material/assembly.ts +25 -13
  431. package/src/assembly/material/pipeline-helpers.ts +53 -12
  432. package/src/assembly/material-shader-policy.ts +55 -0
  433. package/src/assembly/material-shader-prewarm.ts +21 -10
  434. package/src/assembly/recovery/device-loss-fanout.ts +13 -0
  435. package/src/assembly/recovery/renderer-recover.ts +50 -18
  436. package/src/assembly/render-feature-post-processes.ts +54 -0
  437. package/src/assembly/render-target-host.ts +57 -47
  438. package/src/assembly/renderer-facade.ts +7 -2
  439. package/src/assembly/renderer-feature-inspection.ts +8 -2
  440. package/src/assembly/renderer-frame-transaction.ts +23 -0
  441. package/src/assembly/renderer-inspection.ts +28 -0
  442. package/src/assembly/skin-palette-owner.ts +1 -1
  443. package/src/assembly/temporal-post-process-prewarm.ts +3 -3
  444. package/src/assembly/webgpu-pbr-ready.ts +9 -1
  445. package/src/assembly/webgpu-ready-per-pass.ts +104 -0
  446. package/src/assembly/webgpu-ready.ts +116 -62
  447. package/src/assembly/webgpu-renderer-bootstrap.ts +0 -12
  448. package/src/assembly/webgpu-renderer-observation-owner.ts +222 -0
  449. package/src/assembly/webgpu-renderer.ts +303 -313
  450. package/src/assembly/webgpu-vertex-layouts.ts +1 -1
  451. package/src/barrel-distortion.ts +247 -0
  452. package/src/cloud/__tests__/cloud-density-parity.dawn.test.ts +173 -0
  453. package/src/cloud/__tests__/cloud-layer-framebuffer-y.dawn.test.ts +265 -0
  454. package/src/cloud/__tests__/cloud-layer.browser.test.ts +432 -0
  455. package/src/cloud/__tests__/cloud-layer.unit.test.ts +634 -0
  456. package/src/cloud/density.ts +600 -0
  457. package/src/cloud/extract.ts +110 -0
  458. package/src/cloud/feature.ts +1810 -0
  459. package/src/cloud/frame-context.ts +42 -0
  460. package/src/cloud/inspection.ts +130 -0
  461. package/src/cloud/optics.ts +285 -0
  462. package/src/cloud/parameters.ts +255 -0
  463. package/src/cloud/resources.ts +122 -0
  464. package/src/cloud/shadow.ts +167 -0
  465. package/src/cloud/temporal.ts +226 -0
  466. package/src/components/barrel-distortion.ts +46 -0
  467. package/src/components/cloud-layer.ts +47 -0
  468. package/src/components/index.ts +2 -0
  469. package/src/components/instances.ts +18 -45
  470. package/src/components/sprite-instances.ts +1 -1
  471. package/src/construct-renderer.ts +1 -1
  472. package/src/device/gpu-residency.ts +26 -25
  473. package/src/dynamic-geometry.ts +12 -1
  474. package/src/errors/cloud.ts +103 -0
  475. package/src/errors/render.ts +47 -8
  476. package/src/examples/single-layer-medium-surface.ts +59 -0
  477. package/src/extract/camera.ts +15 -1
  478. package/src/extract/contracts.ts +5 -0
  479. package/src/extract/material-context.ts +21 -0
  480. package/src/features/barrel-distortion.ts +172 -0
  481. package/src/features/error-reporting.ts +26 -6
  482. package/src/features/host.ts +128 -19
  483. package/src/features/plan.ts +10 -0
  484. package/src/features/render-graph-contribution.ts +9 -0
  485. package/src/features/render-graph-raster.ts +45 -3
  486. package/src/features/targets.ts +66 -0
  487. package/src/features/types.ts +51 -0
  488. package/src/fullscreen-post-process-pass.ts +41 -9
  489. package/src/glyph-text-layout-system.ts +2 -2
  490. package/src/gpu-dirty-ranges.ts +48 -0
  491. package/src/gpu-driven/batch-topology.ts +53 -0
  492. package/src/gpu-driven/material-artifacts.ts +33 -25
  493. package/src/gpu-driven/prepared-draw.ts +12 -4
  494. package/src/gpu-driven/production-raster-material.ts +1894 -0
  495. package/src/gpu-driven/production-raster.ts +825 -784
  496. package/src/gpu-driven/resource-allocation.ts +142 -0
  497. package/src/gpu-driven/shadow-ownership.ts +71 -0
  498. package/src/gpu-driven/view-gpu.ts +164 -10
  499. package/src/gpu-scene.ts +75 -84
  500. package/src/hdrp-buffers.ts +4 -3
  501. package/src/ibl/frame-resources.ts +0 -1
  502. package/src/ibl/skylight-bind-group.ts +62 -32
  503. package/src/index.ts +205 -9
  504. package/src/inspection-types.ts +162 -0
  505. package/src/instance-buffer-cache.ts +4 -4
  506. package/src/instances.ts +152 -569
  507. package/src/pbr-pipeline.ts +230 -30
  508. package/src/pipeline/single-layer-medium-passes.ts +267 -0
  509. package/src/pipeline/standard-forward-lane.ts +313 -57
  510. package/src/pipeline/standard-output/graph.ts +8 -2
  511. package/src/pipeline/standard-output/lut-gpu.ts +3 -3
  512. package/src/pipeline/standard-output/resources.ts +2 -2
  513. package/src/pipeline/standard-output/types.ts +12 -1
  514. package/src/pipeline/standard-pipeline.ts +291 -18
  515. package/src/pipeline/standard-post.ts +90 -24
  516. package/src/pipeline-builder.ts +1 -1
  517. package/src/plugin.ts +4 -0
  518. package/src/points-lines/__tests__/points-lines.bench.ts +17 -8
  519. package/src/prepare/prepared-graphics-resolver.ts +2 -0
  520. package/src/publication/__tests__/derived-geometry.integration.test.ts +177 -0
  521. package/src/publication/__tests__/features.integration.test.ts +122 -0
  522. package/src/publication/__tests__/programs.unit.test.ts +25 -0
  523. package/src/publication/__tests__/publication.integration.test.ts +370 -0
  524. package/src/publication/__tests__/targets.integration.test.ts +120 -0
  525. package/src/publication/__tests__/video.browser.test.ts +50 -0
  526. package/src/publication/contract.ts +104 -0
  527. package/src/publication/dependencies.ts +54 -0
  528. package/src/publication/prepare-geometry.ts +94 -0
  529. package/src/publication/programs.ts +45 -0
  530. package/src/publication/publisher.ts +618 -0
  531. package/src/publication/receiver.ts +297 -0
  532. package/src/publication/resource-scope.ts +31 -0
  533. package/src/publication/targets.ts +182 -0
  534. package/src/publication/video.ts +33 -0
  535. package/src/record/__tests__/main-pass-geometry.unit.test.ts +30 -0
  536. package/src/record/__tests__/material-bg-cache.unit.test.ts +15 -1
  537. package/src/record/__tests__/sprite-material-abi.unit.test.ts +9 -11
  538. package/src/record/__tests__/temporal-payload.unit.test.ts +1 -1
  539. package/src/record/__tests__/transparent-group2-selection.unit.test.ts +11 -0
  540. package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +1 -0
  541. package/src/record/__tests__/video-texture-view.unit.test.ts +9 -9
  542. package/src/record/__tests__/view-ubo-layout.unit.test.ts +4 -3
  543. package/src/record/barrel-distortion-frame.ts +110 -0
  544. package/src/record/dynamic-geometry-consumption.ts +39 -9
  545. package/src/record/fold-buckets.ts +855 -0
  546. package/src/record/fold-instance-buffer.ts +51 -0
  547. package/src/record/frame-lighting.ts +36 -2
  548. package/src/record/frame-snapshot.ts +45 -9
  549. package/src/record/frame.ts +258 -1105
  550. package/src/record/gpu-draw-receipts.ts +38 -0
  551. package/src/record/gpu-timing.ts +48 -5
  552. package/src/record/helpers.ts +2 -2
  553. package/src/record/main-pass-geometry.ts +272 -84
  554. package/src/record/main-pass-material.ts +102 -36
  555. package/src/record/main-pass-sprite-draws.ts +13 -217
  556. package/src/record/main-pass.ts +164 -27
  557. package/src/record/motion-blur-receipt.ts +91 -0
  558. package/src/record/prepared-material-bindings.ts +11 -6
  559. package/src/record/probe-blend-buffer.ts +180 -0
  560. package/src/record/recovery-pipeline.ts +35 -3
  561. package/src/record/render-context.ts +41 -5
  562. package/src/record/shadow-pass.ts +30 -4
  563. package/src/record/skybox-post-pass.ts +28 -4
  564. package/src/record/sprite-instance-buffer.ts +155 -0
  565. package/src/record/target-capture-graph.ts +258 -0
  566. package/src/record/typed-frame-graph.ts +776 -340
  567. package/src/record/view-ubo.ts +27 -4
  568. package/src/record/volume-params.ts +225 -0
  569. package/src/recovery/render-system-candidate.ts +243 -50
  570. package/src/reflection/record-owner.ts +7 -3
  571. package/src/render-contract.ts +54 -5
  572. package/src/render-graph-primitives.ts +7 -1
  573. package/src/render-pipeline.ts +130 -0
  574. package/src/render-system-extract-tail.ts +90 -78
  575. package/src/render-system-extract.ts +76 -76
  576. package/src/render-system-presentation.ts +56 -0
  577. package/src/render-system-producer-roots.ts +96 -0
  578. package/src/render-system-projections.ts +3 -2
  579. package/src/render-system-residency.ts +159 -0
  580. package/src/render-system.ts +421 -408
  581. package/src/scene/probe-blend.ts +96 -4
  582. package/src/scene/render-scene.ts +416 -337
  583. package/src/scene/render-source.ts +90 -0
  584. package/src/scene/source-systems.ts +33 -0
  585. package/src/ssao-buffers.ts +95 -2
  586. package/src/surface/__tests__/dynamic-input.unit.test.ts +374 -0
  587. package/src/surface/__tests__/gpu-driven.unit.test.ts +87 -0
  588. package/src/surface/dynamic-input.ts +658 -0
  589. package/src/surface/gpu-driven.ts +147 -0
  590. package/src/surface/submission-observation.ts +517 -0
  591. package/src/systems/skin-palette-allocator.ts +5 -1
  592. package/src/systems/skin-palette-types.ts +11 -0
  593. package/src/systems/transparent-dispatch.ts +2 -2
  594. package/src/systems/transparent-sort-config.ts +3 -1
  595. package/src/temporal/gpu.ts +101 -17
  596. package/src/temporal/inspection.ts +7 -1
  597. package/src/temporal/standard-scene-data.ts +5 -0
  598. package/src/temporal/target-coverage-attachment.ts +4 -0
  599. package/src/transmission/__tests__/single-layer-medium.unit.test.ts +149 -0
  600. package/src/transmission/__tests__/standard-transmission.dawn.test.ts +12 -11
  601. package/src/transmission/single-layer-medium.ts +322 -0
  602. package/src/typed-render-graph-primitives.ts +70 -2
  603. package/src/volume/component.ts +10 -9
  604. package/src/volume/extract.ts +11 -5
  605. package/src/volume/inspection.ts +3 -0
  606. package/src/volume/passes.ts +87 -4
  607. package/src/volume/resources.ts +2 -1
  608. package/dist/chunk-3RTCJTH4.mjs +0 -1610
  609. package/dist/chunk-3RTCJTH4.mjs.map +0 -1
  610. package/dist/chunk-BLXGONR2.mjs.map +0 -1
  611. package/dist/chunk-ILQ5MEZF.mjs +0 -32
  612. package/dist/chunk-ILQ5MEZF.mjs.map +0 -1
  613. package/dist/chunk-LEAXOMYJ.mjs.map +0 -1
  614. package/dist/chunk-NB2S7ZRX.mjs +0 -1783
  615. package/dist/chunk-NB2S7ZRX.mjs.map +0 -1
  616. package/dist/chunk-NNQL7CB3.mjs +0 -1713
  617. package/dist/chunk-NNQL7CB3.mjs.map +0 -1
  618. package/dist/chunk-OO3DRYK7.mjs.map +0 -1
  619. package/dist/chunk-PA5DRJNI.mjs.map +0 -1
  620. package/dist/chunk-PLAXOOX5.mjs +0 -1907
  621. package/dist/chunk-PLAXOOX5.mjs.map +0 -1
  622. package/dist/chunk-RXZ3RGOU.mjs +0 -53
  623. package/dist/chunk-RXZ3RGOU.mjs.map +0 -1
  624. package/dist/chunk-VOZWDM3L.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import type { ColorValueDomain } from '@forgeax/engine-render-graph';
2
- export declare const STANDARD_OUTPUT_LOGICAL_STAGES: readonly ["temporal", "meter", "dof", "bloom", "exposure-white-balance", "tone", "lut", "fxaa", "output-encoding"];
2
+ export declare const STANDARD_OUTPUT_LOGICAL_STAGES: readonly ["temporal", "meter", "dof", "bloom", "exposure-white-balance", "tone", "lut", "barrel-distortion", "fxaa", "output-encoding"];
3
3
  export type StandardOutputLogicalStage = (typeof STANDARD_OUTPUT_LOGICAL_STAGES)[number];
4
4
  export type StandardOutputLane = 'direct' | 'clustered';
5
5
  export type StandardOutputEncoding = 'explicit-oetf' | 'srgb-attachment';
@@ -18,6 +18,8 @@ export interface StandardOutputRequest {
18
18
  readonly exposure: boolean;
19
19
  readonly whiteBalance: boolean;
20
20
  readonly lut: boolean;
21
+ /** Output-space barrel warp; runs after LUT in linear-LDR. */
22
+ readonly barrelDistortion?: boolean;
21
23
  readonly fxaa: boolean;
22
24
  readonly outputEncoding: StandardOutputEncoding;
23
25
  }
@@ -28,7 +30,7 @@ export interface StandardOutputPhysicalStage {
28
30
  }
29
31
  export interface StandardOutputPlan {
30
32
  readonly lane: StandardOutputLane;
31
- readonly features: Readonly<Pick<StandardOutputRequest, 'temporal' | 'meter' | 'bloom' | 'dof' | 'exposure' | 'whiteBalance' | 'lut' | 'fxaa'>>;
33
+ readonly features: Readonly<Pick<StandardOutputRequest, 'temporal' | 'meter' | 'bloom' | 'dof' | 'exposure' | 'whiteBalance' | 'lut' | 'barrelDistortion' | 'fxaa'>>;
32
34
  readonly outputEncoding: StandardOutputEncoding;
33
35
  readonly logicalStages: readonly StandardOutputLogicalStage[];
34
36
  readonly physicalStages: readonly StandardOutputPhysicalStage[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-output/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,eAAO,MAAM,8BAA8B,oHAUjC,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AACzF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,WAAW,CAAC;AACxD,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;CACjD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CACzB,IAAI,CACF,qBAAqB,EACrB,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,GAAG,cAAc,GAAG,KAAK,GAAG,MAAM,CACtF,CACF,CAAC;IACF,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAChD,QAAQ,CAAC,aAAa,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC9D,QAAQ,CAAC,cAAc,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAChE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-output/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,eAAO,MAAM,8BAA8B,yIAWjC,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AACzF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,WAAW,CAAC;AACxD,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;CACjD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CACzB,IAAI,CACF,qBAAqB,EACnB,UAAU,GACV,OAAO,GACP,OAAO,GACP,KAAK,GACL,UAAU,GACV,cAAc,GACd,KAAK,GACL,kBAAkB,GAClB,MAAM,CACT,CACF,CAAC;IACF,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAChD,QAAQ,CAAC,aAAa,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC9D,QAAQ,CAAC,cAAc,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAChE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"standard-pipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/standard-pipeline.ts"],"names":[],"mappings":"AAOA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAA6B,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAIxD,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,oBAAoB,CAAC;AA2C5B,OAAO,EAGL,oBAAoB,EACpB,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAE5B,iEAAiE;AACjE,eAAO,MAAM,gCAAgC,ykEA6D5C,CAAC;AACF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,GAAG,MAAM,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,2BAA2B,CAAC,CAkB3E;AAgcD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,QAAQ,CAAC,QAAQ,EAAE,OAAO,oBAAoB,CAAC;CAChD;AAED,wBAAgB,uCAAuC,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAE1F;AAED,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAsG1C,eAAO,MAAM,gBAAgB,EAAE,gBAG7B,CAAC;AAEH,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"standard-pipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/standard-pipeline.ts"],"names":[],"mappings":"AAOA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,EAA6B,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAUxD,OAAO,KAAK,EACV,cAAc,EAKf,MAAM,oBAAoB,CAAC;AAgD5B,OAAO,EAGL,oBAAoB,EACpB,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAE5B,iEAAiE;AACjE,eAAO,MAAM,gCAAgC,ykEA6D5C,CAAC;AACF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,GAAG,MAAM,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,2BAA2B,CAAC,CAkB3E;AAosBD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,QAAQ,CAAC,QAAQ,EAAE,OAAO,oBAAoB,CAAC;CAChD;AAED,wBAAgB,uCAAuC,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAE1F;AAED,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAsG1C,eAAO,MAAM,gBAAgB,EAAE,gBAG7B,CAAC;AAEH,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"standard-post.d.ts","sourceRoot":"","sources":["../../src/pipeline/standard-post.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAO7D,OAAO,KAAK,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,oBAAoB,CAAC;AAkB5B,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;CACxC;AAED,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,oFAAoF;AACpF,eAAO,MAAM,0BAA0B;;;;;;;CAI7B,CAAC;AAEX,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,oEAAoE;AACpE,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,SAAS,4BAA4B,EAAE,CAWzC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,sBAAsB,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IACtF,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,sBAAsB,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IACpF,QAAQ,CAAC,MAAM,EAAE,SAAS,4BAA4B,EAAE,CAAC;CAC1D;AA8BD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAClE,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAgGD,8EAA8E;AAC9E,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,uBAAuB,GAAG,SAAS,GACzC,4BAA4B,CA0H9B;AAyBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,0BAA0B,CAAC,mBAAmB,CAAC,EACxD,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,mBAAmB,EAC5B,aAAa,CAAC,EAAE,oBAAoB,EACpC,mBAAmB,CAAC,EAAE,gBAAgB,EACtC,QAAQ,CAAC,EAAE,oBAAoB,EAC/B,aAAa,CAAC,EAAE,oBAAoB,GACnC,MAAM,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAmaxC"}
1
+ {"version":3,"file":"standard-post.d.ts","sourceRoot":"","sources":["../../src/pipeline/standard-post.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAW7D,OAAO,KAAK,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,oBAAoB,CAAC;AAkB5B,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;CACxC;AAED,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,oFAAoF;AACpF,eAAO,MAAM,0BAA0B;;;;;;;CAI7B,CAAC;AAEX,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,oEAAoE;AACpE,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,SAAS,4BAA4B,EAAE,CAWzC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,sBAAsB,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IACtF,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,sBAAsB,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IACpF,QAAQ,CAAC,MAAM,EAAE,SAAS,4BAA4B,EAAE,CAAC;CAC1D;AA8BD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAClE,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAgGD,8EAA8E;AAC9E,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,uBAAuB,GAAG,SAAS,GACzC,4BAA4B,CA0H9B;AAyBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,0BAA0B,CAAC,mBAAmB,CAAC,EACxD,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,mBAAmB,EAC5B,aAAa,CAAC,EAAE,oBAAoB,EACpC,mBAAmB,CAAC,EAAE,gBAAgB,EACtC,QAAQ,CAAC,EAAE,oBAAoB,EAC/B,aAAa,CAAC,EAAE,oBAAoB,GACnC,MAAM,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAiexC"}
@@ -78,7 +78,7 @@ export interface PipelineBuilderContext {
78
78
  */
79
79
  readonly vertexBuffers: readonly GPUVertexBufferLayout[];
80
80
  /** Explicit layout family selected by the renderer assembly. */
81
- readonly layoutKind?: 'pbr-skin' | 'gpu-driven-skin' | undefined;
81
+ readonly layoutKind?: 'pbr-skin' | 'gpu-driven-skin' | 'gpu-driven-cluster-skin' | undefined;
82
82
  /** Pipeline label (for GPU debug captures); defaults to `pbr-pipeline-${id}`. */
83
83
  readonly label?: string | undefined;
84
84
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-builder.d.ts","sourceRoot":"","sources":["../src/pipeline-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline-builder.d.ts","sourceRoot":"","sources":["../src/pipeline-builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAsErD,+DAA+D;AAC/D,wBAAgB,sBAAsB,IAAI,MAAM,CAQ/C"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AA0ErD,+DAA+D;AAC/D,wBAAgB,sBAAsB,IAAI,MAAM,CAQ/C"}
@@ -59,6 +59,8 @@ export interface PreparedGraphicsResolvedSnapshot {
59
59
  readonly leases?: readonly PreparedGraphicsResourceLease[];
60
60
  readonly resolve: (reference: RenderFeaturePreparedRef) => PreparedGraphicsResolvedResource | undefined;
61
61
  readonly resolveGpuBuffer?: (reference: import('../features/prepared-gpu-work').RenderFeatureGpuBufferRef) => RenderFeatureResolvedGpuBuffer | undefined;
62
+ /** Resolve a feature-owned prepared buffer by its declarative resource name. */
63
+ readonly resolveGpuResource?: (name: string) => RenderFeatureResolvedGpuBuffer | undefined;
62
64
  }
63
65
  export declare function createPreparedGraphicsResolver(input: PreparedGraphicsResolverInput): PreparedGraphicsResolver;
64
66
  //# sourceMappingURL=prepared-graphics-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prepared-graphics-resolver.d.ts","sourceRoot":"","sources":["../../src/prepare/prepared-graphics-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepared-graphics-resolver.d.ts","sourceRoot":"","sources":["../../src/prepare/prepared-graphics-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import type { TimeResource } from '@forgeax/engine-ecs';
2
+ import type { MaterialRuntimeArtifact, MaterialShaderEntry } from '@forgeax/engine-shader';
3
+ import type { Asset, Handle } from '@forgeax/engine-types';
4
+ import type { DispatchEntry, ExtractedFrame, RenderableSnapshot } from '../render-system-extract';
5
+ import type { TransparentSortConfig } from '../systems/transparent-sort-config';
6
+ import type { PublishedRenderTarget, PublishedRenderTargetSource } from './targets';
7
+ /** Chosen by App before creating the receiver; never inferred from the first packet. */
8
+ export interface RenderPublicationIdentity {
9
+ readonly source: string;
10
+ readonly epoch: number;
11
+ }
12
+ export type RenderPublicationMetadata = Omit<ExtractedFrame, 'renderables' | 'dispatch' | 'visibilitySnapshots' | 'featureVisibilitySnapshots' | 'hiddenEntityReports' | 'shadowCasterEntityKeys' | 'shadowCasterDrawKeys' | 'shadowCasterMembership'>;
13
+ export interface RenderPublicationTemplate {
14
+ readonly snapshot: Omit<RenderableSnapshot, 'worldId' | 'entityKey' | 'transform'>;
15
+ readonly dispatch: readonly Omit<DispatchEntry, 'entityIndex' | 'renderableIndex'>[];
16
+ }
17
+ /** Numeric storage is publisher-owned; no ECS or asset buffer is transferred. */
18
+ export interface RenderPublication extends RenderPublicationIdentity {
19
+ readonly revision: number;
20
+ readonly base: number;
21
+ readonly baseline: boolean;
22
+ readonly time: TimeResource;
23
+ readonly sampleTimeSeconds: number;
24
+ readonly temporalReset: boolean;
25
+ readonly transparentSort: TransparentSortConfig;
26
+ readonly metadata: RenderPublicationMetadata;
27
+ readonly templates: readonly RenderPublicationTemplate[];
28
+ readonly videoFrames: readonly {
29
+ readonly entity: number;
30
+ readonly clip: number;
31
+ readonly frame: VideoFrame;
32
+ }[];
33
+ readonly targets: readonly PublishedRenderTarget[];
34
+ readonly targetSources: readonly PublishedRenderTargetSource[];
35
+ readonly features: readonly {
36
+ readonly identity: string;
37
+ readonly data: unknown;
38
+ }[];
39
+ readonly programs: readonly {
40
+ readonly key: string;
41
+ readonly shader: MaterialShaderEntry;
42
+ readonly artifact?: MaterialRuntimeArtifact;
43
+ }[];
44
+ /** entity, template index pairs. A publication source owns one World. */
45
+ readonly upserts: Uint32Array;
46
+ readonly removed: Uint32Array;
47
+ readonly transformEntities: Uint32Array;
48
+ readonly transforms: Float32Array;
49
+ readonly assets: readonly {
50
+ readonly handle: Handle<string, 'shared'>;
51
+ readonly guid?: string;
52
+ readonly value: Asset;
53
+ }[];
54
+ readonly retiredAssets: readonly Handle<string, 'shared'>[];
55
+ readonly invalidatedAssets: readonly Handle<string, 'shared'>[];
56
+ }
57
+ export interface PublishedRenderFrameInput {
58
+ readonly publication: RenderPublication;
59
+ /** Realm-local adapter invoked only after the feature's graph is submitted. */
60
+ readonly onFeatureSourceSubmitted?: (identity: string, feedback: unknown) => void;
61
+ }
62
+ export declare function renderPublicationTransfers(packet: RenderPublication): ArrayBuffer[];
63
+ export type RenderPublicationFailure = 'identity' | 'base' | 'revision' | 'shape' | 'unsupported' | 'in-flight' | 'disposed';
64
+ export declare class RenderPublicationError extends Error {
65
+ readonly detail: {
66
+ readonly reason: RenderPublicationFailure;
67
+ readonly subject: string;
68
+ };
69
+ readonly code: "render-publication-invalid";
70
+ readonly expected = "one valid publication for the bound source session and accepted base";
71
+ readonly hint = "inspect detail.reason; repair the source or start a new session with a complete current baseline";
72
+ constructor(detail: {
73
+ readonly reason: RenderPublicationFailure;
74
+ readonly subject: string;
75
+ });
76
+ }
77
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/publication/contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Handle } from '@forgeax/engine-types';
2
+ import type { ExtractedFrame, RenderableSnapshot } from '../render-system-extract';
3
+ /** One asset closure for source publication and receiver admission. */
4
+ export declare function publicationDependencies(row: Pick<RenderableSnapshot, 'assetHandle' | 'materials'>): Handle<string, 'shared'>[];
5
+ /** Resources selected once for the frame rather than attached to geometry. */
6
+ export declare function publicationFrameDependencies(frame: Pick<ExtractedFrame, 'cameras' | 'auxiliaryCameras' | 'skylight' | 'skybox' | 'lights' | 'volumetricFog'>): Handle<string, 'shared'>[];
7
+ //# sourceMappingURL=dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/publication/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnF,uEAAuE;AACvE,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAAE,aAAa,GAAG,WAAW,CAAC,GACzD,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAiB5B;AAED,8EAA8E;AAC9E,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,IAAI,CACT,cAAc,EACd,SAAS,GAAG,kBAAkB,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,eAAe,CACpF,GACA,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAsB5B"}
@@ -0,0 +1,9 @@
1
+ import type { AssetRegistry } from '@forgeax/engine-assets-runtime';
2
+ import type { InstanceProjectionStore } from '../instances';
3
+ import type { extractFrames } from '../render-system-extract';
4
+ import type { PersistentRenderScene } from '../scene/render-scene';
5
+ import type { SkinPaletteAllocator } from '../systems/skin-palette-allocator';
6
+ import type { PreparedRenderPublication } from './receiver';
7
+ /** Resolve GPU ownership after source data has crossed the publication boundary. */
8
+ export declare function preparePublicationGeometry(input: PreparedRenderPublication, scene: PersistentRenderScene, palette: SkinPaletteAllocator | null | undefined, assets: AssetRegistry, instances: InstanceProjectionStore, getMaterialShaderArtifact?: NonNullable<Parameters<typeof extractFrames>[5]>['getMaterialShaderArtifact']): PreparedRenderPublication;
9
+ //# sourceMappingURL=prepare-geometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-geometry.d.ts","sourceRoot":"","sources":["../../src/publication/prepare-geometry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,0BAA0B,CAAC;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAG5D,oFAAoF;AACpF,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,yBAAyB,EAChC,KAAK,EAAE,qBAAqB,EAC5B,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,EAChD,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,uBAAuB,EAClC,yBAAyB,CAAC,EAAE,WAAW,CACrC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CACpC,CAAC,2BAA2B,CAAC,GAC7B,yBAAyB,CAwE3B"}
@@ -0,0 +1,5 @@
1
+ import type { AssetRegistry } from '@forgeax/engine-assets-runtime';
2
+ import { type RenderPublication } from './contract';
3
+ /** Admit immutable producer artifacts before the full Renderer prepares their pipelines. */
4
+ export declare function installPublicationPrograms(assets: AssetRegistry, programs: RenderPublication['programs']): void;
5
+ //# sourceMappingURL=programs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"programs.d.ts","sourceRoot":"","sources":["../../src/publication/programs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,KAAK,iBAAiB,EAA0B,MAAM,YAAY,CAAC;AAE5E,4FAA4F;AAC5F,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,GACtC,IAAI,CAoCN"}
@@ -0,0 +1,33 @@
1
+ import { type AssetRegistry } from '@forgeax/engine-assets-runtime';
2
+ import { type World } from '@forgeax/engine-ecs';
3
+ import type { RhiCaps } from '@forgeax/engine-rhi';
4
+ import { type Result } from '@forgeax/engine-types';
5
+ import type { RenderFeature } from '../features/types';
6
+ import { type RenderPublication, RenderPublicationError, type RenderPublicationIdentity } from './contract';
7
+ import { type RenderPublicationTargetOwner } from './targets';
8
+ export interface RenderPublicationCandidate {
9
+ readonly packet: RenderPublication;
10
+ /** Call synchronously after successful postMessage; never wait for remote ACK. */
11
+ accept(): void;
12
+ discard(): void;
13
+ }
14
+ /** Source indices and asset dependencies only; the receiver owns the RenderScene. */
15
+ export declare function createRenderPublisher(world: World, assets: AssetRegistry, identity: RenderPublicationIdentity, capabilities?: RhiCaps, features?: readonly RenderFeature<unknown>[], targetOwner?: RenderPublicationTargetOwner): {
16
+ identity: RenderPublicationIdentity;
17
+ inspect: () => {
18
+ revision: number;
19
+ members: number;
20
+ assetCount: number;
21
+ scannedRows: number;
22
+ inFlight: boolean;
23
+ allocations: number;
24
+ };
25
+ prepare(sampleTimeSeconds: number, temporalReset?: boolean): Result<RenderPublicationCandidate, RenderPublicationError>;
26
+ acknowledgeFeatures(acceptedRevision: number, receipts: readonly {
27
+ readonly identity: string;
28
+ readonly feedback: unknown;
29
+ }[]): Result<void, RenderPublicationError>;
30
+ recycle(acceptedRevision: number, buffers: readonly ArrayBuffer[]): Result<void, RenderPublicationError>;
31
+ dispose(): void;
32
+ };
33
+ //# sourceMappingURL=publisher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../src/publication/publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAA2B,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAoC,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAkBvD,OAAO,EACL,KAAK,iBAAiB,EACtB,sBAAsB,EACtB,KAAK,yBAAyB,EAE/B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAA4B,KAAK,4BAA4B,EAAE,MAAM,WAAW,CAAC;AAGxF,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,kFAAkF;IAClF,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,qFAAqF;AACrF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,yBAAyB,EACnC,YAAY,CAAC,EAAE,OAAO,EACtB,QAAQ,GAAE,SAAS,aAAa,CAAC,OAAO,CAAC,EAAO,EAChD,WAAW,CAAC,EAAE,4BAA4B;;;;;;;;;;+BAuDnB,MAAM,4BAExB,MAAM,CAAC,0BAA0B,EAAE,sBAAsB,CAAC;0CA8bzC,MAAM,YACd,SAAS;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,EAAE,GAC7E,MAAM,CAAC,IAAI,EAAE,sBAAsB,CAAC;8BA2BnB,MAAM,WACf,SAAS,WAAW,EAAE,GAC9B,MAAM,CAAC,IAAI,EAAE,sBAAsB,CAAC;;EA4B1C"}
@@ -0,0 +1,29 @@
1
+ import { type Result } from '@forgeax/engine-types';
2
+ import type { ExtractedFrame } from '../render-system-extract';
3
+ import type { RenderSceneOperation } from '../scene/render-scene-types';
4
+ import { type RenderPublication, RenderPublicationError, type RenderPublicationIdentity } from './contract';
5
+ import type { PublishedRenderResources } from './resource-scope';
6
+ export interface PreparedRenderPublication {
7
+ readonly resources: PublishedRenderResources;
8
+ readonly packet: RenderPublication;
9
+ readonly operations: readonly RenderSceneOperation[];
10
+ readonly frame: ExtractedFrame;
11
+ readonly onFeatureSourceSubmitted?: (identity: string, feedback: unknown) => void;
12
+ }
13
+ /** Assets live for this source session; the Renderer owns all retained scene/GPU state. */
14
+ export declare class RenderPublicationReceiver {
15
+ private readonly identity;
16
+ private revision;
17
+ private videoFrames;
18
+ private readonly entities;
19
+ private readonly assets;
20
+ private readonly resources;
21
+ private readonly guidHandles;
22
+ constructor(identity: RenderPublicationIdentity);
23
+ accept(packet: RenderPublication): Result<PreparedRenderPublication, RenderPublicationError>;
24
+ /** copyExternalImageToTexture consumes native sources synchronously during draw. */
25
+ releaseVideoFrames(): void;
26
+ dispose(): void;
27
+ get acceptedRevision(): number;
28
+ }
29
+ //# sourceMappingURL=receiver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receiver.d.ts","sourceRoot":"","sources":["../../src/publication/receiver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgD,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,KAAK,EAAiB,cAAc,EAAsB,MAAM,0BAA0B,CAAC;AAClG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EACL,KAAK,iBAAiB,EACtB,sBAAsB,EACtB,KAAK,yBAAyB,EAC/B,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CACnF;AAED,2FAA2F;AAC3F,qBAAa,yBAAyB;IAQxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAPrC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+C;gBAE9C,QAAQ,EAAE,yBAAyB;IA6BhE,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAAC,yBAAyB,EAAE,sBAAsB,CAAC;IA6N5F,oFAAoF;IACpF,kBAAkB,IAAI,IAAI;IAK1B,OAAO,IAAI,IAAI;IAOf,IAAI,gBAAgB,IAAI,MAAM,CAE7B;CACF"}
@@ -0,0 +1,18 @@
1
+ import type { AssetReader, AssetRegistry } from '@forgeax/engine-assets-runtime';
2
+ import { type TimeResource, type World } from '@forgeax/engine-ecs';
3
+ import { AssetGuid } from '@forgeax/engine-pack/guid';
4
+ import type { Asset, Handle } from '@forgeax/engine-types';
5
+ import type { TransparentSortConfig } from '../systems/transparent-sort-config';
6
+ /** Owned data in a receiver, or a synchronously borrowed source World. */
7
+ export interface PublishedRenderResources extends AssetReader {
8
+ readonly time: TimeResource;
9
+ readonly transparentSort: TransparentSortConfig;
10
+ lookupAsset<T extends Asset>(guid: string): T | undefined;
11
+ videoFrame(entity: number, clip: number): VideoFrame | undefined;
12
+ handleForGuid(guid: string): Handle<string, 'shared'> | undefined;
13
+ }
14
+ export type RenderResourceScope = World | PublishedRenderResources;
15
+ export declare function renderTime(source: RenderResourceScope): TimeResource;
16
+ /** GUID consumers use the same accepted resource namespace as handle consumers. */
17
+ export declare function renderAssetByGuid<T extends Asset>(source: RenderResourceScope, assets: AssetRegistry, guid: string | Parameters<typeof AssetGuid.format>[0]): T | undefined;
18
+ //# sourceMappingURL=resource-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-scope.d.ts","sourceRoot":"","sources":["../../src/publication/resource-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAQ,KAAK,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAEhF,0EAA0E;AAC1E,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC3D,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,WAAW,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAC1D,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACjE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC;CACnE;AAED,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,wBAAwB,CAAC;AAEnE,wBAAgB,UAAU,CAAC,MAAM,EAAE,mBAAmB,GAAG,YAAY,CAEpE;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,KAAK,EAC/C,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GACpD,CAAC,GAAG,SAAS,CAIf"}
@@ -0,0 +1,33 @@
1
+ import { type RenderTargetHost } from '../assembly/render-target-host';
2
+ import type { RenderTarget, RenderTargetDescriptor, RenderTargetTextureSource, RenderTargetTextureSourceOptions } from '../targets/contracts';
3
+ import type { RenderPublicationTemplate } from './contract';
4
+ import type { PreparedRenderPublication } from './receiver';
5
+ /** Author descriptions synchronously; the consuming Renderer owns physical resources. */
6
+ export type RenderTargetAuthoring = Pick<RenderTargetHost, 'createRenderTarget' | 'resizeRenderTarget' | 'createRenderTargetTextureSource' | 'destroyRenderTarget'>;
7
+ export interface PublishedRenderTarget {
8
+ readonly id: number;
9
+ readonly token: RenderTarget;
10
+ readonly descriptor: RenderTargetDescriptor;
11
+ }
12
+ export interface PublishedRenderTargetSource {
13
+ readonly token: RenderTargetTextureSource;
14
+ readonly target: RenderTarget;
15
+ readonly options: RenderTargetTextureSourceOptions;
16
+ }
17
+ export declare class RenderPublicationTargetOwner {
18
+ private readonly host;
19
+ private readonly ids;
20
+ private nextId;
21
+ readonly authoring: RenderTargetAuthoring;
22
+ snapshot(): readonly PublishedRenderTarget[];
23
+ dispose(): void;
24
+ }
25
+ export declare function publicationTargetSources(templates: readonly RenderPublicationTemplate[]): readonly PublishedRenderTargetSource[];
26
+ /** Translate logical references once at receive time; no source GPU handle crosses realms. */
27
+ export declare class RenderPublicationTargetReceiver {
28
+ private readonly host;
29
+ private readonly targets;
30
+ constructor(host: RenderTargetAuthoring);
31
+ apply(input: PreparedRenderPublication): PreparedRenderPublication;
32
+ }
33
+ //# sourceMappingURL=targets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../src/publication/targets.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC/F,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EACjC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,yFAAyF;AACzF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,gBAAgB,EACd,oBAAoB,GACpB,oBAAoB,GACpB,iCAAiC,GACjC,qBAAqB,CACxB,CAAC;AACF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;CAC7C;AACD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,gCAAgC,CAAC;CACpD;AACD,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4B;IACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiC;IACrD,OAAO,CAAC,MAAM,CAAK;IACnB,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAa;IACtD,QAAQ,IAAI,SAAS,qBAAqB,EAAE;IAU5C,OAAO,IAAI,IAAI;CAGhB;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,yBAAyB,EAAE,GAC9C,SAAS,2BAA2B,EAAE,CAwBxC;AAQD,8FAA8F;AAC9F,qBAAa,+BAA+B;IAE9B,OAAO,CAAC,QAAQ,CAAC,IAAI;IADjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;gBAChC,IAAI,EAAE,qBAAqB;IACxD,KAAK,CAAC,KAAK,EAAE,yBAAyB,GAAG,yBAAyB;CA6FnE"}
@@ -0,0 +1,5 @@
1
+ import type { World } from '@forgeax/engine-ecs';
2
+ import type { RenderPublication } from './contract';
3
+ /** Native VideoFrame cloning shares decoded pixels; it never copies source ECS storage. */
4
+ export declare function publicationVideoFrames(world: World, consumers: ReadonlyMap<number, readonly number[]>): RenderPublication['videoFrames'];
5
+ //# sourceMappingURL=video.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/publication/video.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAO/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,2FAA2F;AAC3F,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,GAChD,iBAAiB,CAAC,aAAa,CAAC,CAmBlC"}
@@ -0,0 +1,15 @@
1
+ import { type BarrelDistortionMapping } from '../barrel-distortion';
2
+ import type { BarrelDistortionInspection } from '../inspection-types';
3
+ import type { CameraSnapshot } from '../render-contract';
4
+ import type { RenderFrameState } from './frame-snapshot';
5
+ export declare function packBarrelDistortionParams(mapping: BarrelDistortionMapping): Uint8Array;
6
+ export declare function resolveSubmittedBarrelMapping(frameState: RenderFrameState, graph: {
7
+ readonly inspect: () => {
8
+ readonly passes: readonly {
9
+ readonly name: string;
10
+ }[];
11
+ };
12
+ }, camera: CameraSnapshot, width: number, height: number): BarrelDistortionMapping | undefined;
13
+ export declare function resetBarrelDistortionGraphState(state: RenderFrameState): void;
14
+ export declare function inspectBarrelDistortionState(state: RenderFrameState, deviceGeneration: number): BarrelDistortionInspection;
15
+ //# sourceMappingURL=barrel-distortion-frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"barrel-distortion-frame.d.ts","sourceRoot":"","sources":["../../src/record/barrel-distortion-frame.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAuBzD,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,uBAAuB,GAAG,UAAU,CAQvF;AAkBD,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,CAAA;CAAE,EAC5F,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,uBAAuB,GAAG,SAAS,CAkBrC;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAQ7E;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,gBAAgB,EACvB,gBAAgB,EAAE,MAAM,GACvB,0BAA0B,CAa5B"}
@@ -1,15 +1,23 @@
1
1
  import type { World } from '@forgeax/engine-ecs';
2
+ import type { DynamicGeometryRecordStageLane } from '../dynamic-geometry';
2
3
  import type { RenderFrameState, ValidatedRenderable } from './frame-snapshot';
4
+ type RecordStageDrawLane = 'cpu' | 'gpu';
5
+ interface PendingDynamicGeometryBinding {
6
+ readonly meshHandle: number;
7
+ readonly lanes: Set<RecordStageDrawLane>;
8
+ }
3
9
  /** Capture the render-stage mesh binding used by the current submitted frame. */
4
- export declare function createDynamicGeometryConsumptionRecorder(worlds: readonly World[], bindings: WeakMap<World, Map<number, number>>): (entry: ValidatedRenderable) => void;
10
+ export declare function createDynamicGeometryConsumptionRecorder(worlds: readonly World[], bindings: WeakMap<World, Map<number, PendingDynamicGeometryBinding>>): (entry: ValidatedRenderable, lane?: RecordStageDrawLane) => void;
5
11
  export interface DynamicGeometryFrameBindings {
6
12
  begin(): void;
7
- onRenderableDraw(worlds: readonly World[]): (entry: ValidatedRenderable) => void;
13
+ onRenderableDraw(worlds: readonly World[]): (entry: ValidatedRenderable, lane?: RecordStageDrawLane) => void;
8
14
  commit(submitted: boolean): void;
9
15
  isConsumed(world: World, entity: number, meshHandle: number | undefined): boolean;
16
+ recordStageLane(world: World, entity: number, meshHandle: number | undefined): DynamicGeometryRecordStageLane | undefined;
10
17
  }
11
18
  /** Own the submitted-frame receipt used by dynamic-geometry publication. */
12
19
  export declare function createDynamicGeometryFrameBindings(): DynamicGeometryFrameBindings;
13
20
  /** Drop temporal history after a dynamic-geometry topology replacement. */
14
21
  export declare function resetDynamicGeometryTemporalHistory(frameState: RenderFrameState): void;
22
+ export {};
15
23
  //# sourceMappingURL=dynamic-geometry-consumption.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-geometry-consumption.d.ts","sourceRoot":"","sources":["../../src/record/dynamic-geometry-consumption.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,iFAAiF;AACjF,wBAAgB,wCAAwC,CACtD,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC5C,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAYtC;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,IAAI,IAAI,CAAC;IACd,gBAAgB,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjF,MAAM,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;CACnF;AAED,4EAA4E;AAC5E,wBAAgB,kCAAkC,IAAI,4BAA4B,CAmBjF;AAED,2EAA2E;AAC3E,wBAAgB,mCAAmC,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAOtF"}
1
+ {"version":3,"file":"dynamic-geometry-consumption.d.ts","sourceRoot":"","sources":["../../src/record/dynamic-geometry-consumption.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,KAAK,mBAAmB,GAAG,KAAK,GAAG,KAAK,CAAC;AAEzC,UAAU,6BAA6B;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;CAC1C;AAED,iFAAiF;AACjF,wBAAgB,wCAAwC,CACtD,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC,GACnE,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAoBlE;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,IAAI,IAAI,CAAC;IACd,gBAAgB,CACd,MAAM,EAAE,SAAS,KAAK,EAAE,GACvB,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpE,MAAM,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAClF,eAAe,CACb,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,8BAA8B,GAAG,SAAS,CAAC;CAC/C;AAED,4EAA4E;AAC5E,wBAAgB,kCAAkC,IAAI,4BAA4B,CA0BjF;AAED,2EAA2E;AAC3E,wBAAgB,mCAAmC,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAOtF"}
@@ -0,0 +1,95 @@
1
+ import type { RenderResourceScope } from '../publication/resource-scope';
2
+ import type { DispatchEntry, MaterialSnapshot, RenderableSnapshot } from '../render-system-extract';
3
+ import { type RenderFrameState, type ValidatedRenderable } from './frame-snapshot';
4
+ import { type FoldBucket, type FoldDispatchPlan } from './mesh-ssbo';
5
+ import type { PipelineState, RenderSystemInternals } from './render-context';
6
+ /**
7
+ * A frame-local material table. Repeated snapshot objects share one UBO slot;
8
+ * each renderable keeps only the slot index used by each authored material.
9
+ */
10
+ export interface MaterialSlotPlan<T extends object> {
11
+ readonly slotIndices: readonly (readonly number[])[];
12
+ readonly slots: readonly T[];
13
+ /** Index of the first renderable that referenced each slot. */
14
+ readonly slotOwners: readonly number[];
15
+ }
16
+ /**
17
+ * Intern identical material snapshots into one frame-local slot table.
18
+ * Snapshot identity is the extract layer's invalidation token, so this keeps
19
+ * the same correctness boundary while avoiding duplicate payload assembly and
20
+ * upload for repeated scene instances.
21
+ */
22
+ export declare function buildMaterialSlotPlan<T extends object>(materialGroups: readonly (readonly T[])[], bindingClass?: (material: T, owner: number) => string): MaterialSlotPlan<T>;
23
+ /**
24
+ * Return the largest complete renderable prefix supported by a shared
25
+ * mesh/material capacity. Mesh rows consume one slot per renderable; material
26
+ * rows use the deduplicated slot indices assigned in first-seen order.
27
+ */
28
+ export declare function findRenderablePrefixForSlotCapacity(materialSlotIndices: readonly (readonly number[])[], slotCapacity: number): number;
29
+ /** Count material slots reachable from a prefix of a first-seen slot plan. */
30
+ export declare function materialSlotCountForPrefix(materialSlotIndices: readonly (readonly number[])[], renderableCount: number): number;
31
+ /**
32
+ * feat-20260704 M3/w18: validate renderable handles + collect the render plan,
33
+ * extracted verbatim from `recordFrame`. Empty `renderables` input or all-
34
+ * unregistered handles both yield an empty result (the Case E clear-pass-only
35
+ * path). Builds per-entry renderState / stencilReference overlays from the
36
+ * transparent-dispatch entries, resolves each MeshFilter.assetHandle through
37
+ * the AssetRegistry + GPU store (with the sprite 9-slice mesh swap), and fires
38
+ * structured `asset-not-registered` errors for handles that fail to resolve.
39
+ *
40
+ * @internal
41
+ */
42
+ export declare function validateRenderables(internals: RenderSystemInternals, world: RenderResourceScope, worlds: readonly RenderResourceScope[], pipelineState: PipelineState, frameState: RenderFrameState, renderables: readonly RenderableSnapshot[], transparentDispatch: readonly DispatchEntry[], excludedEntityKeys?: ReadonlySet<number>, worldKeys?: readonly number[]): ValidatedRenderable[];
43
+ /**
44
+ * feat-20260704 M3/w18: build the dispatch-ordered render plan, extracted
45
+ * verbatim from `recordFrame`. (1) M3/w26 dispatch-ordered reorder: reorder
46
+ * `validated` to follow the transparent-dispatch order (extract-order fallback
47
+ * for unmatched entries). (2) feat-20260608 mesh-SSBO capacity gate: size the
48
+ * mesh-SSBO + material-UBO pair to the larger of entity vs cumulative
49
+ * material-slot count, truncating on ceiling (graceful degradation). (3)
50
+ * feat-20260622 fold dispatch plan: build + apply the WebGL2 uniform-cap
51
+ * fallback + bump the folded-draws metric.
52
+ *
53
+ * @internal
54
+ */
55
+ export declare function buildDispatchPlan(internals: RenderSystemInternals, validated: readonly ValidatedRenderable[], transparentDispatch: readonly DispatchEntry[], foldBuckets: readonly FoldBucket[], shadowValidated?: readonly ValidatedRenderable[], materialBindingClasses?: ReadonlyMap<string, string>): {
56
+ validatedOrdered: readonly ValidatedRenderable[];
57
+ shadowValidatedOrdered: readonly ValidatedRenderable[];
58
+ foldDispatchPlan: FoldDispatchPlan | null;
59
+ materialSlotIndices: readonly (readonly number[])[];
60
+ materialSlots: readonly MaterialSnapshot[];
61
+ materialSlotOwners: readonly ValidatedRenderable[];
62
+ materialSlotCount: number;
63
+ };
64
+ /**
65
+ * feat-20260704 M3/w18: per-frame cache clean-up (despawn eviction), extracted
66
+ * verbatim from `recordFrame`.
67
+ *
68
+ * feat-20260531-per-frame-bind-group-cache M4 / w14 (D-5): drop per-entity BG
69
+ * cache entries (materialBgPerEntity / instancesBgPerEntity) + instance buffers
70
+ * whose outer-Map entityKey (packed Entity u32) is absent from the current
71
+ * validated set, preventing unbounded growth after entity despawn. view + mesh
72
+ * caches are frame-shared (keyed by GPU resource handle objects, WeakMap chains
73
+ * naturally bounded) and are not touched. feat-20260619 M4 / F11: destroy the
74
+ * GPU instance buffer before Map.delete (D-6 symmetric release); failure fires
75
+ * errorRegistry + continues the sweep.
76
+ *
77
+ * @internal
78
+ */
79
+ export declare function cleanPerFrameCaches(internals: RenderSystemInternals, frameState: RenderFrameState, validated: readonly ValidatedRenderable[], retainedEntityKeys?: ReadonlySet<number>): void;
80
+ /**
81
+ * feat-20260704 M3/w18: record-stage fold operator linear scan, extracted
82
+ * verbatim from `recordFrame`.
83
+ *
84
+ * feat-20260622-chunk-gpu-instancing-sprite-tilemap M1 / w4 + w5 (D-1, D-5):
85
+ * groups transparent-sort-ordered dispatch entries with equal (Layer.value,
86
+ * sortKey, materialHandle) into fold buckets. Mode-gate (D-5 extended): modes 0
87
+ * (LAYER_Z) and 1 (LAYER_Y) fold using the pos z/y lanes; modes 2/3 bypass per-entity
88
+ * (each entry a singleton bucket). Records `frameState.lastFoldBucketCount` =
89
+ * fold-eligible buckets (bucketSize > 1) for the AC-06 metric. Empty dispatch
90
+ * short-circuits (test fixtures pass null world).
91
+ *
92
+ * @internal
93
+ */
94
+ export declare function computeFoldBuckets(world: RenderResourceScope, frameState: RenderFrameState, transparentDispatch: readonly DispatchEntry[], renderables: readonly RenderableSnapshot[]): readonly FoldBucket[];
95
+ //# sourceMappingURL=fold-buckets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fold-buckets.d.ts","sourceRoot":"","sources":["../../src/record/fold-buckets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Buffer } from '@forgeax/engine-rhi';
2
+ import { type FoldBucket } from './mesh-ssbo';
3
+ import type { _InternalRenderPipelineContext } from './render-context';
4
+ /** Both transparent draw owners consume one fold payload and resident cache. */
5
+ export declare function resolveFoldInstanceBuffer(c: _InternalRenderPipelineContext, bucket: FoldBucket, headIndex: number): Buffer | null;
6
+ //# sourceMappingURL=fold-instance-buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fold-instance-buffer.d.ts","sourceRoot":"","sources":["../../src/record/fold-instance-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAOlD,OAAO,EAAE,KAAK,UAAU,EAA6B,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAEvE,gFAAgF;AAChF,wBAAgB,yBAAyB,CACvC,CAAC,EAAE,8BAA8B,EACjC,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAmCf"}
@@ -34,6 +34,7 @@ export declare function projectDeviceOwnedBindGroup<T>(state: {
34
34
  export declare function buildPerFrameBindGroups(internals: RenderSystemInternals, frameState: RenderFrameState, pipelineState: PipelineState, hasValidated: boolean, bindGroupCounts: BindGroupCounts, graphTargets?: {
35
35
  readonly directionalShadow?: TextureView | undefined;
36
36
  readonly spotShadow?: TextureView | undefined;
37
+ readonly cloudShadow?: TextureView | undefined;
37
38
  readonly projector?: TextureView | undefined;
38
39
  readonly projectorSampler?: import('@forgeax/engine-rhi').Sampler | undefined;
39
40
  }, includeView?: boolean, standardLighting?: StandardTopologyInputValue): {
@@ -1 +1 @@
1
- {"version":3,"file":"frame-lighting.d.ts","sourceRoot":"","sources":["../../src/record/frame-lighting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame-lighting.d.ts","sourceRoot":"","sources":["../../src/record/frame-lighting.ts"],"names":[],"mappings":"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"}