@forgeax/engine-render 0.1.4 → 0.1.7

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 (979) hide show
  1. package/README.md +268 -640
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts +2 -0
  4. package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts.map +1 -0
  5. package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts +2 -0
  6. package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts.map +1 -0
  7. package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts +2 -0
  8. package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts.map +1 -0
  9. package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts.map +1 -1
  10. package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts +6 -0
  11. package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts.map +1 -1
  12. package/dist/{gpu-driven/view-reference.d.ts → __tests__/gpu-driven-view-reference.d.ts} +4 -4
  13. package/dist/__tests__/gpu-driven-view-reference.d.ts.map +1 -0
  14. package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts.map +1 -1
  15. package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts +2 -0
  16. package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts.map +1 -0
  17. package/dist/__tests__/morph-feature-plan.unit.test.d.ts +2 -0
  18. package/dist/__tests__/morph-feature-plan.unit.test.d.ts.map +1 -0
  19. package/dist/__tests__/render-feature-plan.test-d.d.ts +2 -0
  20. package/dist/__tests__/render-feature-plan.test-d.d.ts.map +1 -0
  21. package/dist/__tests__/render-feature-plan.unit.test.d.ts +2 -0
  22. package/dist/__tests__/render-feature-plan.unit.test.d.ts.map +1 -0
  23. package/dist/__tests__/ssao-config.unit.test.d.ts +2 -0
  24. package/dist/__tests__/ssao-config.unit.test.d.ts.map +1 -0
  25. package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts +2 -0
  26. package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts.map +1 -0
  27. package/dist/__tests__/standard-descriptors.test-d.d.ts +2 -0
  28. package/dist/__tests__/standard-descriptors.test-d.d.ts.map +1 -0
  29. package/dist/__tests__/standard-pipeline.dawn.test.d.ts +2 -0
  30. package/dist/__tests__/standard-pipeline.dawn.test.d.ts.map +1 -0
  31. package/dist/__tests__/standard-pipeline.integration.test.d.ts +2 -0
  32. package/dist/__tests__/standard-pipeline.integration.test.d.ts.map +1 -0
  33. package/dist/__tests__/standard-profile-oracle.unit.test.d.ts +2 -0
  34. package/dist/__tests__/standard-profile-oracle.unit.test.d.ts.map +1 -0
  35. package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts +2 -0
  36. package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts.map +1 -0
  37. package/dist/{renderer/backend-selection.d.ts → assembly/backend-contract.d.ts} +15 -4
  38. package/dist/assembly/backend-contract.d.ts.map +1 -0
  39. package/dist/assembly/factory.d.ts +214 -0
  40. package/dist/assembly/factory.d.ts.map +1 -0
  41. package/dist/assembly/host-contract.d.ts +84 -0
  42. package/dist/assembly/host-contract.d.ts.map +1 -0
  43. package/dist/{renderer → assembly}/material/assembly.d.ts +0 -1
  44. package/dist/{renderer → assembly}/material/assembly.d.ts.map +1 -1
  45. package/dist/assembly/material/pipeline-projection.d.ts +30 -0
  46. package/dist/assembly/material/pipeline-projection.d.ts.map +1 -0
  47. package/dist/authoring.d.ts +11 -11
  48. package/dist/authoring.d.ts.map +1 -1
  49. package/dist/authoring.mjs +25 -3
  50. package/dist/authoring.mjs.map +1 -1
  51. package/dist/chunk-CQXZC5XI.mjs +182 -0
  52. package/dist/chunk-CQXZC5XI.mjs.map +1 -0
  53. package/dist/chunk-HCOGPHKS.mjs +93 -0
  54. package/dist/chunk-HCOGPHKS.mjs.map +1 -0
  55. package/dist/chunk-YEJIUW7D.mjs +1152 -0
  56. package/dist/chunk-YEJIUW7D.mjs.map +1 -0
  57. package/dist/components/__tests__/points-lines-admission.unit.test.d.ts +2 -0
  58. package/dist/components/__tests__/points-lines-admission.unit.test.d.ts.map +1 -0
  59. package/dist/components/__tests__/points-lines-schema.unit.test.d.ts +2 -0
  60. package/dist/components/__tests__/points-lines-schema.unit.test.d.ts.map +1 -0
  61. package/dist/components/__tests__/schema-contract.unit.test.d.ts +2 -0
  62. package/dist/components/__tests__/schema-contract.unit.test.d.ts.map +1 -0
  63. package/dist/components/glyph-text.d.ts +1 -1
  64. package/dist/components/glyph-text.d.ts.map +1 -1
  65. package/dist/components/index.d.ts +4 -2
  66. package/dist/components/index.d.ts.map +1 -1
  67. package/dist/components/instances.d.ts +1 -1
  68. package/dist/components/instances.d.ts.map +1 -1
  69. package/dist/components/light-helpers.d.ts +1 -1
  70. package/dist/components/light-helpers.d.ts.map +1 -1
  71. package/dist/components/lines.d.ts +5 -0
  72. package/dist/components/lines.d.ts.map +1 -0
  73. package/dist/components/mesh-filter.d.ts +7 -7
  74. package/dist/components/mesh-filter.d.ts.map +1 -1
  75. package/dist/components/points.d.ts +15 -0
  76. package/dist/components/points.d.ts.map +1 -0
  77. package/dist/components/scene-instance.d.ts +11 -11
  78. package/dist/components/skybox-background.d.ts +56 -0
  79. package/dist/components/skybox-background.d.ts.map +1 -0
  80. package/dist/components/skylight.d.ts +55 -0
  81. package/dist/components/skylight.d.ts.map +1 -0
  82. package/dist/components/sprite-animation.d.ts +2 -3
  83. package/dist/components/sprite-animation.d.ts.map +1 -1
  84. package/dist/components/sprite-instances.d.ts +1 -1
  85. package/dist/components/sprite-playback-mode.d.ts +6 -1
  86. package/dist/components/sprite-playback-mode.d.ts.map +1 -1
  87. package/dist/components/sprite-region-override.d.ts +2 -3
  88. package/dist/components/sprite-region-override.d.ts.map +1 -1
  89. package/dist/components/tile-layer.d.ts +5 -0
  90. package/dist/components/tile-layer.d.ts.map +1 -1
  91. package/dist/construct-renderer.d.ts +18 -1
  92. package/dist/construct-renderer.d.ts.map +1 -1
  93. package/dist/construct-renderer.mjs +27463 -4
  94. package/dist/construct-renderer.mjs.map +1 -1
  95. package/dist/debug-draw-glue.d.ts +2 -53
  96. package/dist/debug-draw-glue.d.ts.map +1 -1
  97. package/dist/device/device-scope.d.ts +83 -0
  98. package/dist/device/device-scope.d.ts.map +1 -0
  99. package/dist/{gpu-resource-store.d.ts → device/gpu-residency.d.ts} +91 -48
  100. package/dist/device/gpu-residency.d.ts.map +1 -0
  101. package/dist/device/resource-types.d.ts +8 -0
  102. package/dist/device/resource-types.d.ts.map +1 -0
  103. package/dist/engine-metrics.d.ts +2 -2
  104. package/dist/engine-metrics.d.ts.map +1 -1
  105. package/dist/errors/recover.d.ts +28 -1
  106. package/dist/errors/recover.d.ts.map +1 -1
  107. package/dist/errors/render.d.ts +320 -248
  108. package/dist/errors/render.d.ts.map +1 -1
  109. package/dist/features/fullscreen.d.ts +19 -0
  110. package/dist/features/fullscreen.d.ts.map +1 -0
  111. package/dist/features/host.d.ts +32 -26
  112. package/dist/features/host.d.ts.map +1 -1
  113. package/dist/features/morph/morph-feature.d.ts +39 -5
  114. package/dist/features/morph/morph-feature.d.ts.map +1 -1
  115. package/dist/features/plan.d.ts +182 -0
  116. package/dist/features/plan.d.ts.map +1 -0
  117. package/dist/features/prepared-gpu-work.d.ts +21 -17
  118. package/dist/features/prepared-gpu-work.d.ts.map +1 -1
  119. package/dist/features/prepared-graphics-store.d.ts +2 -1
  120. package/dist/features/prepared-graphics-store.d.ts.map +1 -1
  121. package/dist/features/prepared-graphics.d.ts +11 -21
  122. package/dist/features/prepared-graphics.d.ts.map +1 -1
  123. package/dist/features/render-graph-compute.d.ts +2 -2
  124. package/dist/features/render-graph-compute.d.ts.map +1 -1
  125. package/dist/features/render-graph-contribution.d.ts +4 -7
  126. package/dist/features/render-graph-contribution.d.ts.map +1 -1
  127. package/dist/features/render-graph-raster.d.ts +7 -3
  128. package/dist/features/render-graph-raster.d.ts.map +1 -1
  129. package/dist/features/render-graph-resources.d.ts +6 -6
  130. package/dist/features/render-graph-resources.d.ts.map +1 -1
  131. package/dist/features/targets.d.ts +5 -5
  132. package/dist/features/targets.d.ts.map +1 -1
  133. package/dist/features/types.d.ts +11 -190
  134. package/dist/features/types.d.ts.map +1 -1
  135. package/dist/features/vocabulary.d.ts +14 -0
  136. package/dist/features/vocabulary.d.ts.map +1 -0
  137. package/dist/fullscreen-post-process-pass.d.ts +4 -25
  138. package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
  139. package/dist/glyph-text-layout-system.d.ts +3 -2
  140. package/dist/glyph-text-layout-system.d.ts.map +1 -1
  141. package/dist/gpu-driven/batch-topology.d.ts +6 -75
  142. package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
  143. package/dist/gpu-driven/production-raster.d.ts +13 -112
  144. package/dist/gpu-driven/production-raster.d.ts.map +1 -1
  145. package/dist/gpu-driven/view-gpu.d.ts +10 -66
  146. package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
  147. package/dist/gpu-resource.d.ts +3 -3
  148. package/dist/gpu-scene-schema.d.ts +1 -94
  149. package/dist/gpu-scene-schema.d.ts.map +1 -1
  150. package/dist/gpu-scene.d.ts +7 -33
  151. package/dist/gpu-scene.d.ts.map +1 -1
  152. package/dist/hdrp-buffers.d.ts +3 -53
  153. package/dist/hdrp-buffers.d.ts.map +1 -1
  154. package/dist/ibl/IblPipelineCache.d.ts +74 -180
  155. package/dist/ibl/IblPipelineCache.d.ts.map +1 -1
  156. package/dist/ibl/skylight-bind-group.d.ts +1 -1
  157. package/dist/index.d.ts +17 -43
  158. package/dist/index.d.ts.map +1 -1
  159. package/dist/index.mjs +167 -3
  160. package/dist/index.mjs.map +1 -1
  161. package/dist/inspection-types.d.ts +72 -0
  162. package/dist/inspection-types.d.ts.map +1 -0
  163. package/dist/instance-buffer-cache.d.ts +1 -4
  164. package/dist/instance-buffer-cache.d.ts.map +1 -1
  165. package/dist/internal.d.ts +1 -73
  166. package/dist/internal.d.ts.map +1 -1
  167. package/dist/internal.mjs +1 -43
  168. package/dist/internal.mjs.map +1 -1
  169. package/dist/lifecycle.d.ts +36 -2
  170. package/dist/lifecycle.d.ts.map +1 -1
  171. package/dist/materials.d.ts +0 -3
  172. package/dist/materials.d.ts.map +1 -1
  173. package/dist/mesh-material-bindings.d.ts +0 -1
  174. package/dist/mesh-material-bindings.d.ts.map +1 -1
  175. package/dist/pbr-pipeline.d.ts +77 -29
  176. package/dist/pbr-pipeline.d.ts.map +1 -1
  177. package/dist/pipeline/standard-forward-lane.d.ts +5 -0
  178. package/dist/pipeline/standard-forward-lane.d.ts.map +1 -0
  179. package/dist/pipeline/standard-pipeline.d.ts +31 -0
  180. package/dist/pipeline/standard-pipeline.d.ts.map +1 -0
  181. package/dist/pipeline/standard-profile.d.ts +40 -0
  182. package/dist/pipeline/standard-profile.d.ts.map +1 -0
  183. package/dist/pipeline-builder.d.ts +3 -3
  184. package/dist/pipeline-builder.d.ts.map +1 -1
  185. package/dist/pipeline-spec-types.d.ts +24 -0
  186. package/dist/pipeline-spec-types.d.ts.map +1 -0
  187. package/dist/pipeline-spec.d.ts +16 -155
  188. package/dist/pipeline-spec.d.ts.map +1 -1
  189. package/dist/plugin.d.ts +1 -14
  190. package/dist/plugin.d.ts.map +1 -1
  191. package/dist/points-lines/__tests__/bounds.unit.test.d.ts +2 -0
  192. package/dist/points-lines/__tests__/bounds.unit.test.d.ts.map +1 -0
  193. package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts +2 -0
  194. package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts.map +1 -0
  195. package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts +2 -0
  196. package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts.map +1 -0
  197. package/dist/points-lines/__tests__/inspection.unit.test.d.ts +2 -0
  198. package/dist/points-lines/__tests__/inspection.unit.test.d.ts.map +1 -0
  199. package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts +2 -0
  200. package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts.map +1 -0
  201. package/dist/points-lines/__tests__/points-lines.bench.d.ts +2 -0
  202. package/dist/points-lines/__tests__/points-lines.bench.d.ts.map +1 -0
  203. package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts +2 -0
  204. package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts.map +1 -0
  205. package/dist/points-lines/__tests__/snapshot.unit.test.d.ts +2 -0
  206. package/dist/points-lines/__tests__/snapshot.unit.test.d.ts.map +1 -0
  207. package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts +2 -0
  208. package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts.map +1 -0
  209. package/dist/points-lines/admission.d.ts +36 -0
  210. package/dist/points-lines/admission.d.ts.map +1 -0
  211. package/dist/points-lines/bounds.d.ts +8 -0
  212. package/dist/points-lines/bounds.d.ts.map +1 -0
  213. package/dist/points-lines/expansion-cache.d.ts +28 -0
  214. package/dist/points-lines/expansion-cache.d.ts.map +1 -0
  215. package/dist/points-lines/inspection.d.ts +53 -0
  216. package/dist/points-lines/inspection.d.ts.map +1 -0
  217. package/dist/points-lines/prepare.d.ts +67 -0
  218. package/dist/points-lines/prepare.d.ts.map +1 -0
  219. package/dist/points-lines/record.d.ts +60 -0
  220. package/dist/points-lines/record.d.ts.map +1 -0
  221. package/dist/points-lines/snapshot.d.ts +49 -0
  222. package/dist/points-lines/snapshot.d.ts.map +1 -0
  223. package/dist/post-process-errors.d.ts +18 -18
  224. package/dist/post-process-errors.d.ts.map +1 -1
  225. package/dist/prepare/prepared-graphics-resolver.d.ts +2 -5
  226. package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -1
  227. package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts +2 -0
  228. package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts.map +1 -0
  229. package/dist/record/frame-lighting.d.ts +7 -73
  230. package/dist/record/frame-lighting.d.ts.map +1 -1
  231. package/dist/record/frame-snapshot.d.ts +44 -44
  232. package/dist/record/frame-snapshot.d.ts.map +1 -1
  233. package/dist/record/frame-targets.d.ts +5 -38
  234. package/dist/record/frame-targets.d.ts.map +1 -1
  235. package/dist/record/frame.d.ts +64 -52
  236. package/dist/record/frame.d.ts.map +1 -1
  237. package/dist/record/helpers.d.ts +3 -2
  238. package/dist/record/helpers.d.ts.map +1 -1
  239. package/dist/record/main-pass-geometry.d.ts +12 -4
  240. package/dist/record/main-pass-geometry.d.ts.map +1 -1
  241. package/dist/record/main-pass-material.d.ts +90 -59
  242. package/dist/record/main-pass-material.d.ts.map +1 -1
  243. package/dist/record/main-pass-sprite-draws.d.ts +28 -3
  244. package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
  245. package/dist/record/main-pass.d.ts +1 -1
  246. package/dist/record/main-pass.d.ts.map +1 -1
  247. package/dist/record/mesh-ssbo.d.ts +276 -3
  248. package/dist/record/mesh-ssbo.d.ts.map +1 -1
  249. package/dist/record/render-context.d.ts +252 -0
  250. package/dist/record/render-context.d.ts.map +1 -0
  251. package/dist/record/shadow-pass.d.ts +15 -88
  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/typed-frame-graph.d.ts +29 -7
  256. package/dist/record/typed-frame-graph.d.ts.map +1 -1
  257. package/dist/record/view-ubo.d.ts +9 -3
  258. package/dist/record/view-ubo.d.ts.map +1 -1
  259. package/dist/render-contract.d.ts +424 -0
  260. package/dist/render-contract.d.ts.map +1 -0
  261. package/dist/render-data.d.ts.map +1 -1
  262. package/dist/render-graph-primitives.d.ts +14 -362
  263. package/dist/render-graph-primitives.d.ts.map +1 -1
  264. package/dist/render-pipeline.d.ts +25 -64
  265. package/dist/render-pipeline.d.ts.map +1 -1
  266. package/dist/render-system-extract.d.ts +110 -338
  267. package/dist/render-system-extract.d.ts.map +1 -1
  268. package/dist/render-system.d.ts +24 -713
  269. package/dist/render-system.d.ts.map +1 -1
  270. package/dist/scene/render-scene-types.d.ts +61 -0
  271. package/dist/scene/render-scene-types.d.ts.map +1 -0
  272. package/dist/scene/render-scene.d.ts +112 -0
  273. package/dist/scene/render-scene.d.ts.map +1 -0
  274. package/dist/scene-instances/post-spawn-resolve-joints.d.ts +2 -5
  275. package/dist/scene-instances/post-spawn-resolve-joints.d.ts.map +1 -1
  276. package/dist/ssao-buffers.d.ts +22 -3
  277. package/dist/ssao-buffers.d.ts.map +1 -1
  278. package/dist/systems/skin-palette-allocator.d.ts +2 -4
  279. package/dist/systems/skin-palette-allocator.d.ts.map +1 -1
  280. package/dist/systems/skin-palette-types.d.ts +14 -0
  281. package/dist/systems/skin-palette-types.d.ts.map +1 -0
  282. package/dist/systems/transparent-sort-config.d.ts +23 -2
  283. package/dist/systems/transparent-sort-config.d.ts.map +1 -1
  284. package/dist/tilemap-chunk-extract-system.d.ts +4 -3
  285. package/dist/tilemap-chunk-extract-system.d.ts.map +1 -1
  286. package/dist/typed-render-graph-primitives.d.ts +2 -4
  287. package/dist/typed-render-graph-primitives.d.ts.map +1 -1
  288. package/dist/typed-shadow-passes.d.ts +3 -3
  289. package/dist/typed-shadow-passes.d.ts.map +1 -1
  290. package/package.json +23 -23
  291. package/src/__tests__/authoring-path.unit.test.ts +9 -0
  292. package/src/__tests__/backend-selection-rhi-capture.test-d.ts +1 -1
  293. package/src/__tests__/callback-inference.test-d.ts +6 -3
  294. package/src/__tests__/cluster-grid-default-surface.unit.test.ts +7 -4
  295. package/src/__tests__/construct-renderer-identity.unit.test.ts +15 -2
  296. package/src/__tests__/device-scope-lifecycle.unit.test.ts +151 -0
  297. package/src/__tests__/device-scope-stale-matrix.unit.test.ts +42 -0
  298. package/src/__tests__/direct-extract-consumer-contract.test-d.ts +8 -19
  299. package/src/__tests__/direct-light-snapshot.unit.test.ts +3 -13
  300. package/src/__tests__/factory-contract.integration.test.ts +158 -209
  301. package/src/__tests__/fallback-row-stride-surface.unit.test.ts +1 -4
  302. package/src/__tests__/frame-observation.contract.test.ts +17 -8
  303. package/src/__tests__/fullscreen-feature-plan.unit.test.ts +32 -0
  304. package/src/__tests__/glyph-text-layout-recovery.unit.test.ts +6 -11
  305. package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +21 -18
  306. package/src/__tests__/gpu-driven-production.integration.test.ts +32 -205
  307. package/src/__tests__/gpu-driven-scaling.unit.test.ts +4 -7
  308. package/src/__tests__/gpu-driven-view-gpu-evidence.ts +87 -8
  309. package/src/__tests__/gpu-driven-view-graph.integration.test.ts +170 -8
  310. package/src/{gpu-driven/view-reference.ts → __tests__/gpu-driven-view-reference.ts} +4 -3
  311. package/src/__tests__/gpu-driven-view.browser.test.ts +12 -1
  312. package/src/__tests__/gpu-driven-view.dawn.test.ts +12 -1
  313. package/src/__tests__/gpu-driven-view.unit.test.ts +11 -267
  314. package/src/__tests__/gpu-resource-store-stride.unit.test.ts +3 -3
  315. package/src/__tests__/gpu-scene-render-graph-gpu.ts +2 -3
  316. package/src/__tests__/gpu-scene.dawn.test.ts +2 -6
  317. package/src/__tests__/gpu-scene.unit.test.ts +10 -24
  318. package/src/__tests__/ibl/face-uniforms.unit.test.ts +46 -0
  319. package/src/__tests__/infinite-grid-no-vertex-probe.unit.test.ts +34 -66
  320. package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +14 -5
  321. package/src/__tests__/light-buffer-layout.unit.test.ts +4 -49
  322. package/src/__tests__/material-cooked-projection.unit.test.ts +31 -58
  323. package/src/__tests__/material-snapshot-mutation.integration.test.ts +10 -15
  324. package/src/__tests__/material-static-dynamic-route.unit.test.ts +31 -50
  325. package/src/__tests__/material-stride-surface.unit.test.ts +2 -2
  326. package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +7 -8
  327. package/src/__tests__/morph-culling-reentry.dawn.test.ts +29 -38
  328. package/src/__tests__/morph-feature-gpu-work.integration.test.ts +45 -43
  329. package/src/__tests__/morph-feature-plan.unit.test.ts +53 -0
  330. package/src/__tests__/morph-visual-evidence.integration.test.ts +47 -33
  331. package/src/__tests__/nineslice-handle-surface.unit.test.ts +11 -6
  332. package/src/__tests__/post-process-error-policy-owner.unit.test.ts +6 -13
  333. package/src/__tests__/prepared-graphics-capability.unit.test.ts +6 -81
  334. package/src/__tests__/prepared-graphics-generation.unit.test.ts +3 -17
  335. package/src/__tests__/prepared-graphics-lifecycle.unit.test.ts +6 -74
  336. package/src/__tests__/prepared-graphics-resolver.unit.test.ts +1 -3
  337. package/src/__tests__/prepared-graphics-snapshot.unit.test.ts +2 -2
  338. package/src/__tests__/profiler-default-off.test.ts +1 -1
  339. package/src/__tests__/profiler-phase-catalog.test.ts +2 -2
  340. package/src/__tests__/profiler-phase-integration.test.ts +5 -13
  341. package/src/__tests__/profiler-phase-token.test.ts +3 -8
  342. package/src/__tests__/public-surface.test-d.ts +65 -3
  343. package/src/__tests__/recover-error-policy-owner.unit.test.ts +1 -21
  344. package/src/__tests__/render-error-code-owner.test-d.ts +24 -23
  345. package/src/__tests__/render-error-detail-ssot.test-d.ts +0 -95
  346. package/src/__tests__/render-error-exhaustive.test-d.ts +27 -1
  347. package/src/__tests__/render-feature-assembly.test-d.ts +8 -16
  348. package/src/__tests__/render-feature-context.test-d.ts +16 -40
  349. package/src/__tests__/render-feature-contract.test-d.ts +9 -18
  350. package/src/__tests__/render-feature-diagnostics.unit.test.ts +6 -8
  351. package/src/__tests__/render-feature-docs.unit.test.ts +8 -7
  352. package/src/__tests__/render-feature-gpu-work.integration.test.ts +14 -75
  353. package/src/__tests__/render-feature-plan.test-d.ts +161 -0
  354. package/src/__tests__/render-feature-plan.unit.test.ts +170 -0
  355. package/src/__tests__/render-feature-prepared-diagnostics.unit.test.ts +8 -19
  356. package/src/__tests__/render-feature-prepared-errors.test-d.ts +3 -6
  357. package/src/__tests__/render-feature-prepared-graphics-docs.unit.test.ts +10 -71
  358. package/src/__tests__/render-feature-prepared-graphics-isolation.unit.test.ts +11 -61
  359. package/src/__tests__/render-feature-prepared-graphics-negative.test-d.ts +20 -43
  360. package/src/__tests__/render-feature-prepared-graphics.test-d.ts +56 -78
  361. package/src/__tests__/render-feature-public-surface.test-d.ts +6 -24
  362. package/src/__tests__/render-feature-retry.unit.test.ts +7 -48
  363. package/src/__tests__/render-feature-scheduling.unit.test.ts +15 -27
  364. package/src/__tests__/render-feature-stage-failed-policy-owner.unit.test.ts +0 -9
  365. package/src/__tests__/render-feature-stage-fault-recovery.unit.test.ts +19 -109
  366. package/src/__tests__/render-feature-visibility-context.test-d.ts +1 -6
  367. package/src/__tests__/render-feature-visibility-context.unit.test.ts +1 -2
  368. package/src/__tests__/render-feature-zero-work.unit.test.ts +14 -20
  369. package/src/__tests__/render-scene-projection.unit.test.ts +73 -111
  370. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +82 -95
  371. package/src/__tests__/renderer-lifecycle.integration.test.ts +49 -1
  372. package/src/__tests__/shader-stage-surface.unit.test.ts +14 -9
  373. package/src/__tests__/ssao-config.unit.test.ts +36 -0
  374. package/src/__tests__/ssao-kernel-surface.unit.test.ts +4 -5
  375. package/src/__tests__/standard-clustered-pipeline.unit.test.ts +28 -0
  376. package/src/__tests__/standard-descriptors.test-d.ts +22 -0
  377. package/src/__tests__/standard-pipeline.dawn.test.ts +61 -0
  378. package/src/__tests__/standard-pipeline.integration.test.ts +124 -0
  379. package/src/__tests__/standard-profile-oracle.unit.test.ts +62 -0
  380. package/src/__tests__/surface-configuration.unit.test.ts +1 -2
  381. package/src/__tests__/texture-usage-surface.unit.test.ts +3 -6
  382. package/src/__tests__/typed-pipeline-topology.unit.test.ts +40 -206
  383. package/src/__tests__/urp-pipeline-targets.unit.test.ts +1 -11
  384. package/src/__tests__/urp-pipeline.unit.test.ts +2 -2
  385. package/src/__tests__/vertex-color-pipeline.unit.test.ts +10 -2
  386. package/src/__tests__/vertex-layout-consumer.unit.test.ts +1 -1
  387. package/src/__tests__/visibility-diagnostics.integration.test.ts +7 -11
  388. package/src/__tests__/visibility-extract.integration.test.ts +20 -11
  389. package/src/__tests__/visibility-extract.perf.test.ts +66 -32
  390. package/src/__tests__/visibility-feature-dedup.integration.test.ts +2 -4
  391. package/src/__tests__/visibility-hidden-report.unit.test.ts +1 -2
  392. package/src/__tests__/visibility-instances.integration.test.ts +7 -11
  393. package/src/__tests__/visibility-multi-world.integration.test.ts +38 -6
  394. package/src/__tests__/visibility-producer-matrix.integration.test.ts +18 -41
  395. package/src/__tests__/visibility-public-surface.test-d.ts +10 -9
  396. package/src/__tests__/visibility-resolver.unit.test.ts +2 -1
  397. package/src/__tests__/visibility-resource-short-circuit.unit.test.ts +80 -0
  398. package/src/__tests__/visibility-snapshot-contract.unit.test.ts +2 -1
  399. package/src/__tests__/vocabulary.unit.test.ts +1 -1
  400. package/src/assembly/backend-contract.ts +57 -0
  401. package/src/{renderer/renderer-factory.ts → assembly/factory.ts} +1741 -2699
  402. package/src/assembly/host-contract.ts +101 -0
  403. package/src/{renderer → assembly}/material/assembly.ts +2 -7
  404. package/src/assembly/material/pipeline-projection.ts +63 -0
  405. package/src/authoring.ts +15 -22
  406. package/src/components/__tests__/points-lines-admission.unit.test.ts +219 -0
  407. package/src/components/__tests__/points-lines-schema.unit.test.ts +56 -0
  408. package/src/components/__tests__/schema-contract.unit.test.ts +10 -0
  409. package/src/components/glyph-text.ts +3 -2
  410. package/src/components/index.ts +14 -9
  411. package/src/components/instances.ts +4 -5
  412. package/src/components/light-helpers.ts +1 -1
  413. package/src/components/lines.ts +18 -0
  414. package/src/components/mesh-filter.ts +11 -10
  415. package/src/components/points.ts +40 -0
  416. package/src/components/post-process-params.ts +3 -3
  417. package/src/components/scene-instance.ts +12 -12
  418. package/src/components/skybox-background.ts +103 -0
  419. package/src/components/{environment.ts → skylight.ts} +2 -110
  420. package/src/components/sprite-animation.ts +3 -4
  421. package/src/components/sprite-instances.ts +2 -2
  422. package/src/components/sprite-playback-mode.ts +7 -1
  423. package/src/components/sprite-region-override.ts +2 -3
  424. package/src/components/tile-layer.ts +8 -2
  425. package/src/construct-renderer.ts +67 -4
  426. package/src/debug-draw-glue.ts +8 -129
  427. package/src/device/device-scope.ts +306 -0
  428. package/src/{gpu-resource-store.ts → device/gpu-residency.ts} +540 -639
  429. package/src/device/resource-types.ts +20 -0
  430. package/src/engine-metrics.ts +12 -19
  431. package/src/errors/recover.ts +45 -3
  432. package/src/errors/render.ts +469 -429
  433. package/src/features/fullscreen.ts +46 -0
  434. package/src/features/host.ts +575 -309
  435. package/src/features/morph/morph-feature.ts +195 -105
  436. package/src/features/plan.ts +447 -0
  437. package/src/features/prepared-gpu-work.ts +72 -15
  438. package/src/features/prepared-graphics-store.ts +20 -6
  439. package/src/features/prepared-graphics.ts +12 -71
  440. package/src/features/render-graph-compute.ts +14 -5
  441. package/src/features/render-graph-contribution.ts +43 -63
  442. package/src/features/render-graph-raster.ts +32 -8
  443. package/src/features/render-graph-resources.ts +25 -23
  444. package/src/features/targets.ts +8 -21
  445. package/src/features/types.ts +39 -227
  446. package/src/features/vocabulary.ts +24 -0
  447. package/src/fullscreen-post-process-pass.ts +14 -57
  448. package/src/glyph-text-layout-system.ts +70 -96
  449. package/src/gpu-driven/batch-topology.ts +24 -202
  450. package/src/gpu-driven/production-raster.ts +99 -1109
  451. package/src/gpu-driven/view-gpu.ts +46 -192
  452. package/src/gpu-resource.ts +4 -4
  453. package/src/gpu-scene-schema.ts +11 -99
  454. package/src/gpu-scene.ts +231 -364
  455. package/src/hdrp-buffers.ts +12 -221
  456. package/src/ibl/IblPipelineCache.ts +471 -711
  457. package/src/ibl/skylight-bind-group.ts +4 -4
  458. package/src/index.ts +75 -217
  459. package/src/inspection-types.ts +80 -0
  460. package/src/instance-buffer-cache.ts +1 -29
  461. package/src/internal.ts +6 -85
  462. package/src/lifecycle.ts +64 -19
  463. package/src/materials.ts +7 -29
  464. package/src/mesh-material-bindings.ts +0 -1
  465. package/src/pbr-pipeline.ts +441 -53
  466. package/src/{urp-pipeline.ts → pipeline/standard-forward-lane.ts} +38 -149
  467. package/src/{hdrp-pipeline.ts → pipeline/standard-pipeline.ts} +221 -191
  468. package/src/pipeline/standard-profile.ts +65 -0
  469. package/src/pipeline-builder.ts +60 -64
  470. package/src/pipeline-spec-types.ts +28 -0
  471. package/src/pipeline-spec.ts +72 -609
  472. package/src/plugin.ts +7 -75
  473. package/src/points-lines/__tests__/bounds.unit.test.ts +21 -0
  474. package/src/points-lines/__tests__/cache-recovery.unit.test.ts +157 -0
  475. package/src/points-lines/__tests__/inspection-lanes.integration.test.ts +146 -0
  476. package/src/points-lines/__tests__/inspection.unit.test.ts +173 -0
  477. package/src/points-lines/__tests__/lane-structural.integration.test.ts +122 -0
  478. package/src/points-lines/__tests__/points-lines.bench.ts +400 -0
  479. package/src/points-lines/__tests__/raster-lane.integration.test.ts +44 -0
  480. package/src/points-lines/__tests__/snapshot.unit.test.ts +101 -0
  481. package/src/points-lines/__tests__/view-ubo.unit.test.ts +73 -0
  482. package/src/points-lines/admission.ts +238 -0
  483. package/src/points-lines/bounds.ts +23 -0
  484. package/src/points-lines/expansion-cache.ts +215 -0
  485. package/src/points-lines/inspection.ts +97 -0
  486. package/src/points-lines/prepare.ts +177 -0
  487. package/src/points-lines/record.ts +125 -0
  488. package/src/points-lines/snapshot.ts +130 -0
  489. package/src/post-process-errors.ts +31 -33
  490. package/src/prepare/prepared-graphics-resolver.ts +5 -4
  491. package/src/record/__tests__/material-slot-plan.unit.test.ts +1 -33
  492. package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +41 -0
  493. package/src/record/__tests__/video-texture-view.unit.test.ts +1 -1
  494. package/src/record/frame-lighting.ts +88 -197
  495. package/src/record/frame-snapshot.ts +45 -60
  496. package/src/record/frame-targets.ts +8 -243
  497. package/src/record/frame.ts +521 -797
  498. package/src/record/helpers.ts +6 -11
  499. package/src/record/main-pass-geometry.ts +198 -147
  500. package/src/record/main-pass-material.ts +517 -190
  501. package/src/record/main-pass-sprite-draws.ts +199 -118
  502. package/src/record/main-pass.ts +166 -144
  503. package/src/record/mesh-ssbo.ts +517 -38
  504. package/src/record/render-context.ts +384 -0
  505. package/src/record/shadow-pass.ts +154 -1843
  506. package/src/record/skybox-post-pass.ts +14 -15
  507. package/src/record/typed-frame-graph.ts +224 -262
  508. package/src/record/view-ubo.ts +53 -37
  509. package/src/render-contract.ts +582 -0
  510. package/src/render-data.ts +3 -3
  511. package/src/render-graph-primitives.ts +76 -851
  512. package/src/render-pipeline.ts +104 -188
  513. package/src/render-system-extract.ts +1114 -1732
  514. package/src/render-system.ts +614 -1939
  515. package/src/scene/render-scene-types.ts +67 -0
  516. package/src/scene/render-scene.ts +1087 -0
  517. package/src/scene-instances/post-spawn-resolve-joints.ts +4 -7
  518. package/src/ssao-buffers.ts +167 -8
  519. package/src/systems/skin-palette-allocator.ts +21 -64
  520. package/src/systems/skin-palette-types.ts +14 -0
  521. package/src/systems/transparent-sort-config.ts +25 -3
  522. package/src/tilemap-chunk-extract-system.ts +53 -70
  523. package/src/typed-render-graph-primitives.ts +35 -24
  524. package/src/typed-shadow-passes.ts +26 -56
  525. package/dist/__tests__/analytic-sky-contract.test.d.ts +0 -2
  526. package/dist/__tests__/analytic-sky-contract.test.d.ts.map +0 -1
  527. package/dist/__tests__/analytic-sky-falsify.test.d.ts +0 -2
  528. package/dist/__tests__/analytic-sky-falsify.test.d.ts.map +0 -1
  529. package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts +0 -2
  530. package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts.map +0 -1
  531. package/dist/__tests__/backend-selection.integration.test.d.ts +0 -2
  532. package/dist/__tests__/backend-selection.integration.test.d.ts.map +0 -1
  533. package/dist/__tests__/camera-temporal.test-d.d.ts +0 -2
  534. package/dist/__tests__/camera-temporal.test-d.d.ts.map +0 -1
  535. package/dist/__tests__/camera-temporal.test.d.ts +0 -2
  536. package/dist/__tests__/camera-temporal.test.d.ts.map +0 -1
  537. package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts +0 -2
  538. package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts.map +0 -1
  539. package/dist/__tests__/environment-inspection.test.d.ts +0 -2
  540. package/dist/__tests__/environment-inspection.test.d.ts.map +0 -1
  541. package/dist/__tests__/fog-ai-user.fixture.d.ts +0 -2
  542. package/dist/__tests__/fog-ai-user.fixture.d.ts.map +0 -1
  543. package/dist/__tests__/fog-custom-render-feature.fixture.d.ts +0 -16
  544. package/dist/__tests__/fog-custom-render-feature.fixture.d.ts.map +0 -1
  545. package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts +0 -2
  546. package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts.map +0 -1
  547. package/dist/__tests__/fog-inspection.integration.test.d.ts +0 -2
  548. package/dist/__tests__/fog-inspection.integration.test.d.ts.map +0 -1
  549. package/dist/__tests__/fog-owner-state.integration.test.d.ts +0 -2
  550. package/dist/__tests__/fog-owner-state.integration.test.d.ts.map +0 -1
  551. package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts +0 -2
  552. package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts.map +0 -1
  553. package/dist/__tests__/fog-public-surface.integration.test.d.ts +0 -2
  554. package/dist/__tests__/fog-public-surface.integration.test.d.ts.map +0 -1
  555. package/dist/__tests__/fog-ray-contract.integration.test.d.ts +0 -2
  556. package/dist/__tests__/fog-ray-contract.integration.test.d.ts.map +0 -1
  557. package/dist/__tests__/fog-source-absence.integration.test.d.ts +0 -2
  558. package/dist/__tests__/fog-source-absence.integration.test.d.ts.map +0 -1
  559. package/dist/__tests__/fog-temporal.integration.test.d.ts +0 -2
  560. package/dist/__tests__/fog-temporal.integration.test.d.ts.map +0 -1
  561. package/dist/__tests__/frame-chain.unit.test.d.ts +0 -2
  562. package/dist/__tests__/frame-chain.unit.test.d.ts.map +0 -1
  563. package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts +0 -2
  564. package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts.map +0 -1
  565. package/dist/__tests__/hdrp-pipeline.unit.test.d.ts +0 -2
  566. package/dist/__tests__/hdrp-pipeline.unit.test.d.ts.map +0 -1
  567. package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts +0 -2
  568. package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts.map +0 -1
  569. package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts +0 -2
  570. package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts.map +0 -1
  571. package/dist/__tests__/material-derived-payload.integration.test.d.ts +0 -2
  572. package/dist/__tests__/material-derived-payload.integration.test.d.ts.map +0 -1
  573. package/dist/__tests__/materials.unit.test.d.ts +0 -2
  574. package/dist/__tests__/materials.unit.test.d.ts.map +0 -1
  575. package/dist/__tests__/param-schema-projection-census.unit.test.d.ts +0 -2
  576. package/dist/__tests__/param-schema-projection-census.unit.test.d.ts.map +0 -1
  577. package/dist/__tests__/persistent-render-scene.unit.test.d.ts +0 -2
  578. package/dist/__tests__/persistent-render-scene.unit.test.d.ts.map +0 -1
  579. package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts +0 -2
  580. package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts.map +0 -1
  581. package/dist/__tests__/pipeline-pass-trace.test.d.ts +0 -2
  582. package/dist/__tests__/pipeline-pass-trace.test.d.ts.map +0 -1
  583. package/dist/__tests__/pipeline-stage-owner.test-d.d.ts +0 -2
  584. package/dist/__tests__/pipeline-stage-owner.test-d.d.ts.map +0 -1
  585. package/dist/__tests__/plugin.test.d.ts +0 -2
  586. package/dist/__tests__/plugin.test.d.ts.map +0 -1
  587. package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts +0 -2
  588. package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts.map +0 -1
  589. package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts +0 -2
  590. package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts.map +0 -1
  591. package/dist/__tests__/public-pipeline-id.test-d.d.ts +0 -2
  592. package/dist/__tests__/public-pipeline-id.test-d.d.ts.map +0 -1
  593. package/dist/__tests__/render-dispatch-membership.unit.test.d.ts +0 -2
  594. package/dist/__tests__/render-dispatch-membership.unit.test.d.ts.map +0 -1
  595. package/dist/__tests__/render-feature-construction.unit.test.d.ts +0 -2
  596. package/dist/__tests__/render-feature-construction.unit.test.d.ts.map +0 -1
  597. package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts +0 -2
  598. package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts.map +0 -1
  599. package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts +0 -2
  600. package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts.map +0 -1
  601. package/dist/__tests__/render-feature-graph.integration.test.d.ts +0 -2
  602. package/dist/__tests__/render-feature-graph.integration.test.d.ts.map +0 -1
  603. package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts +0 -2
  604. package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts.map +0 -1
  605. package/dist/__tests__/render-feature-order.unit.test.d.ts +0 -2
  606. package/dist/__tests__/render-feature-order.unit.test.d.ts.map +0 -1
  607. package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts +0 -2
  608. package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts.map +0 -1
  609. package/dist/__tests__/render-feature-staging.unit.test.d.ts +0 -2
  610. package/dist/__tests__/render-feature-staging.unit.test.d.ts.map +0 -1
  611. package/dist/__tests__/renderer-render-scene-public.test-d.d.ts +0 -2
  612. package/dist/__tests__/renderer-render-scene-public.test-d.d.ts.map +0 -1
  613. package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts +0 -2
  614. package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts.map +0 -1
  615. package/dist/__tests__/sun-snapshot-consumers.test.d.ts +0 -2
  616. package/dist/__tests__/sun-snapshot-consumers.test.d.ts.map +0 -1
  617. package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts +0 -2
  618. package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts.map +0 -1
  619. package/dist/__tests__/taa-history-store.unit.test.d.ts +0 -2
  620. package/dist/__tests__/taa-history-store.unit.test.d.ts.map +0 -1
  621. package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts +0 -2
  622. package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts.map +0 -1
  623. package/dist/__tests__/temporal-inspection.unit.test.d.ts +0 -2
  624. package/dist/__tests__/temporal-inspection.unit.test.d.ts.map +0 -1
  625. package/dist/assets/__tests__/asset-decoders.unit.test.d.ts +0 -2
  626. package/dist/assets/__tests__/asset-decoders.unit.test.d.ts.map +0 -1
  627. package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts +0 -2
  628. package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts.map +0 -1
  629. package/dist/assets/__tests__/render-asset-port.unit.test.d.ts +0 -2
  630. package/dist/assets/__tests__/render-asset-port.unit.test.d.ts.map +0 -1
  631. package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts +0 -2
  632. package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts.map +0 -1
  633. package/dist/chunk-DJIMFYX6.mjs +0 -1439
  634. package/dist/chunk-DJIMFYX6.mjs.map +0 -1
  635. package/dist/chunk-F2SIOCRM.mjs +0 -7423
  636. package/dist/chunk-F2SIOCRM.mjs.map +0 -1
  637. package/dist/chunk-JMSB7AR4.mjs +0 -3
  638. package/dist/chunk-JMSB7AR4.mjs.map +0 -1
  639. package/dist/chunk-KHI6K4C6.mjs +0 -659
  640. package/dist/chunk-KHI6K4C6.mjs.map +0 -1
  641. package/dist/chunk-PORZOL2V.mjs +0 -569
  642. package/dist/chunk-PORZOL2V.mjs.map +0 -1
  643. package/dist/chunk-UOJGMDGP.mjs +0 -29913
  644. package/dist/chunk-UOJGMDGP.mjs.map +0 -1
  645. package/dist/components/__tests__/atmosphere-red.test.d.ts +0 -2
  646. package/dist/components/__tests__/atmosphere-red.test.d.ts.map +0 -1
  647. package/dist/components/__tests__/atmosphere.test.d.ts +0 -2
  648. package/dist/components/__tests__/atmosphere.test.d.ts.map +0 -1
  649. package/dist/components/__tests__/fog.test-d.d.ts +0 -2
  650. package/dist/components/__tests__/fog.test-d.d.ts.map +0 -1
  651. package/dist/components/__tests__/fog.test.d.ts +0 -2
  652. package/dist/components/__tests__/fog.test.d.ts.map +0 -1
  653. package/dist/components/atmosphere.d.ts +0 -18
  654. package/dist/components/atmosphere.d.ts.map +0 -1
  655. package/dist/components/environment.d.ts +0 -115
  656. package/dist/components/environment.d.ts.map +0 -1
  657. package/dist/deferred-lighting.d.ts +0 -13
  658. package/dist/deferred-lighting.d.ts.map +0 -1
  659. package/dist/dynamic-texture-store.d.ts +0 -42
  660. package/dist/dynamic-texture-store.d.ts.map +0 -1
  661. package/dist/environment/__tests__/failure-injection.test.d.ts +0 -2
  662. package/dist/environment/__tests__/failure-injection.test.d.ts.map +0 -1
  663. package/dist/environment/__tests__/generation-red.test.d.ts +0 -2
  664. package/dist/environment/__tests__/generation-red.test.d.ts.map +0 -1
  665. package/dist/environment/__tests__/generation.test.d.ts +0 -2
  666. package/dist/environment/__tests__/generation.test.d.ts.map +0 -1
  667. package/dist/environment/__tests__/graph-transaction.test.d.ts +0 -2
  668. package/dist/environment/__tests__/graph-transaction.test.d.ts.map +0 -1
  669. package/dist/environment/__tests__/inspection-red.test.d.ts +0 -2
  670. package/dist/environment/__tests__/inspection-red.test.d.ts.map +0 -1
  671. package/dist/environment/__tests__/lifecycle-evidence.test.d.ts +0 -2
  672. package/dist/environment/__tests__/lifecycle-evidence.test.d.ts.map +0 -1
  673. package/dist/environment/__tests__/pipeline-topology.test.d.ts +0 -2
  674. package/dist/environment/__tests__/pipeline-topology.test.d.ts.map +0 -1
  675. package/dist/environment/__tests__/readiness.test.d.ts +0 -2
  676. package/dist/environment/__tests__/readiness.test.d.ts.map +0 -1
  677. package/dist/environment/__tests__/recovery.test.d.ts +0 -2
  678. package/dist/environment/__tests__/recovery.test.d.ts.map +0 -1
  679. package/dist/environment/__tests__/resize-dispose.test.d.ts +0 -2
  680. package/dist/environment/__tests__/resize-dispose.test.d.ts.map +0 -1
  681. package/dist/environment/__tests__/signature-red.test.d.ts +0 -2
  682. package/dist/environment/__tests__/signature-red.test.d.ts.map +0 -1
  683. package/dist/environment/__tests__/signature.test.d.ts +0 -2
  684. package/dist/environment/__tests__/signature.test.d.ts.map +0 -1
  685. package/dist/environment/descriptors.d.ts +0 -2
  686. package/dist/environment/descriptors.d.ts.map +0 -1
  687. package/dist/environment/extracted-environment.d.ts +0 -53
  688. package/dist/environment/extracted-environment.d.ts.map +0 -1
  689. package/dist/environment/generation.d.ts +0 -62
  690. package/dist/environment/generation.d.ts.map +0 -1
  691. package/dist/environment/gpu-bundle.d.ts +0 -23
  692. package/dist/environment/gpu-bundle.d.ts.map +0 -1
  693. package/dist/environment/graph.d.ts +0 -108
  694. package/dist/environment/graph.d.ts.map +0 -1
  695. package/dist/environment/inspection.d.ts +0 -48
  696. package/dist/environment/inspection.d.ts.map +0 -1
  697. package/dist/environment/lifecycle.d.ts +0 -22
  698. package/dist/environment/lifecycle.d.ts.map +0 -1
  699. package/dist/environment/readiness.d.ts +0 -29
  700. package/dist/environment/readiness.d.ts.map +0 -1
  701. package/dist/environment/signature.d.ts +0 -70
  702. package/dist/environment/signature.d.ts.map +0 -1
  703. package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts +0 -2
  704. package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts.map +0 -1
  705. package/dist/extract/__tests__/environment-source.test.d.ts +0 -2
  706. package/dist/extract/__tests__/environment-source.test.d.ts.map +0 -1
  707. package/dist/extract/__tests__/schema-readers.unit.test.d.ts +0 -2
  708. package/dist/extract/__tests__/schema-readers.unit.test.d.ts.map +0 -1
  709. package/dist/extract/directional-csm.d.ts +0 -129
  710. package/dist/extract/directional-csm.d.ts.map +0 -1
  711. package/dist/extract/index.d.ts +0 -5
  712. package/dist/extract/index.d.ts.map +0 -1
  713. package/dist/extract/material-interface.d.ts +0 -56
  714. package/dist/extract/material-interface.d.ts.map +0 -1
  715. package/dist/extract/schema-readers.d.ts +0 -20
  716. package/dist/extract/schema-readers.d.ts.map +0 -1
  717. package/dist/features/graph-contribution.d.ts +0 -64
  718. package/dist/features/graph-contribution.d.ts.map +0 -1
  719. package/dist/features/index.d.ts +0 -21
  720. package/dist/features/index.d.ts.map +0 -1
  721. package/dist/features/morph/index.d.ts +0 -3
  722. package/dist/features/morph/index.d.ts.map +0 -1
  723. package/dist/features/morph/morph-bounds.d.ts +0 -42
  724. package/dist/features/morph/morph-bounds.d.ts.map +0 -1
  725. package/dist/features/scene-temporal.d.ts +0 -45
  726. package/dist/features/scene-temporal.d.ts.map +0 -1
  727. package/dist/features/taa-resolve.d.ts +0 -21
  728. package/dist/features/taa-resolve.d.ts.map +0 -1
  729. package/dist/frame-chain.d.ts +0 -14
  730. package/dist/frame-chain.d.ts.map +0 -1
  731. package/dist/gpu-driven/view-reference.d.ts.map +0 -1
  732. package/dist/gpu-resource-store.d.ts.map +0 -1
  733. package/dist/hdrp-cluster-membership.d.ts +0 -2
  734. package/dist/hdrp-cluster-membership.d.ts.map +0 -1
  735. package/dist/hdrp-pipeline.d.ts +0 -36
  736. package/dist/hdrp-pipeline.d.ts.map +0 -1
  737. package/dist/ibl/cubemap-projection.d.ts +0 -23
  738. package/dist/ibl/cubemap-projection.d.ts.map +0 -1
  739. package/dist/ibl/face-uniforms.d.ts +0 -65
  740. package/dist/ibl/face-uniforms.d.ts.map +0 -1
  741. package/dist/mesh-update-errors.d.ts +0 -71
  742. package/dist/mesh-update-errors.d.ts.map +0 -1
  743. package/dist/mipmap-generator.d.ts +0 -39
  744. package/dist/mipmap-generator.d.ts.map +0 -1
  745. package/dist/param-schema-projection-census.d.ts +0 -18
  746. package/dist/param-schema-projection-census.d.ts.map +0 -1
  747. package/dist/persistent-render-scene.d.ts +0 -158
  748. package/dist/persistent-render-scene.d.ts.map +0 -1
  749. package/dist/pipeline/index.d.ts +0 -11
  750. package/dist/pipeline/index.d.ts.map +0 -1
  751. package/dist/pipeline-errors.d.ts +0 -110
  752. package/dist/pipeline-errors.d.ts.map +0 -1
  753. package/dist/prepare/__tests__/schema-readers.unit.test.d.ts +0 -2
  754. package/dist/prepare/__tests__/schema-readers.unit.test.d.ts.map +0 -1
  755. package/dist/prepare/index.d.ts +0 -4
  756. package/dist/prepare/index.d.ts.map +0 -1
  757. package/dist/prepare/schema-readers.d.ts +0 -11
  758. package/dist/prepare/schema-readers.d.ts.map +0 -1
  759. package/dist/record/__tests__/environment-record.test.d.ts +0 -2
  760. package/dist/record/__tests__/environment-record.test.d.ts.map +0 -1
  761. package/dist/record/__tests__/frame-targets.unit.test.d.ts +0 -2
  762. package/dist/record/__tests__/frame-targets.unit.test.d.ts.map +0 -1
  763. package/dist/record/__tests__/membership-timing.unit.test.d.ts +0 -2
  764. package/dist/record/__tests__/membership-timing.unit.test.d.ts.map +0 -1
  765. package/dist/record/__tests__/render-submission.integration.test.d.ts +0 -2
  766. package/dist/record/__tests__/render-submission.integration.test.d.ts.map +0 -1
  767. package/dist/record/__tests__/render-submission.perf.test.d.ts +0 -2
  768. package/dist/record/__tests__/render-submission.perf.test.d.ts.map +0 -1
  769. package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts +0 -2
  770. package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts.map +0 -1
  771. package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts +0 -2
  772. package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts.map +0 -1
  773. package/dist/record/frame-observation.d.ts +0 -38
  774. package/dist/record/frame-observation.d.ts.map +0 -1
  775. package/dist/record/index.d.ts +0 -15
  776. package/dist/record/index.d.ts.map +0 -1
  777. package/dist/record/main-pass-skin.d.ts +0 -46
  778. package/dist/record/main-pass-skin.d.ts.map +0 -1
  779. package/dist/record/main-pass-sprite.d.ts +0 -69
  780. package/dist/record/main-pass-sprite.d.ts.map +0 -1
  781. package/dist/record/material-payload.d.ts +0 -43
  782. package/dist/record/material-payload.d.ts.map +0 -1
  783. package/dist/record/material-slot-plan.d.ts +0 -26
  784. package/dist/record/material-slot-plan.d.ts.map +0 -1
  785. package/dist/record/membership-timing.d.ts +0 -232
  786. package/dist/record/membership-timing.d.ts.map +0 -1
  787. package/dist/record/shadow-caster-uniform.d.ts +0 -8
  788. package/dist/record/shadow-caster-uniform.d.ts.map +0 -1
  789. package/dist/record/shadow-submit-mode.d.ts +0 -66
  790. package/dist/record/shadow-submit-mode.d.ts.map +0 -1
  791. package/dist/render-dispatch-membership.d.ts +0 -47
  792. package/dist/render-dispatch-membership.d.ts.map +0 -1
  793. package/dist/render-pipeline-context.d.ts +0 -289
  794. package/dist/render-pipeline-context.d.ts.map +0 -1
  795. package/dist/render-pipeline-target.d.ts +0 -16
  796. package/dist/render-pipeline-target.d.ts.map +0 -1
  797. package/dist/render-scene-projection.d.ts +0 -174
  798. package/dist/render-scene-projection.d.ts.map +0 -1
  799. package/dist/render-system-fold.d.ts +0 -266
  800. package/dist/render-system-fold.d.ts.map +0 -1
  801. package/dist/renderer/asset-service.d.ts +0 -10
  802. package/dist/renderer/asset-service.d.ts.map +0 -1
  803. package/dist/renderer/backend-selection.d.ts.map +0 -1
  804. package/dist/renderer/environment-classify.d.ts +0 -6
  805. package/dist/renderer/environment-classify.d.ts.map +0 -1
  806. package/dist/renderer/environment-error.d.ts +0 -13
  807. package/dist/renderer/environment-error.d.ts.map +0 -1
  808. package/dist/renderer/material/pipeline-projection.d.ts +0 -91
  809. package/dist/renderer/material/pipeline-projection.d.ts.map +0 -1
  810. package/dist/renderer/renderer-factory.d.ts +0 -289
  811. package/dist/renderer/renderer-factory.d.ts.map +0 -1
  812. package/dist/renderer.d.ts +0 -771
  813. package/dist/renderer.d.ts.map +0 -1
  814. package/dist/scene-utils/collect-subtree.d.ts +0 -11
  815. package/dist/scene-utils/collect-subtree.d.ts.map +0 -1
  816. package/dist/ssao-data.d.ts +0 -34
  817. package/dist/ssao-data.d.ts.map +0 -1
  818. package/dist/surface-format.d.ts +0 -10
  819. package/dist/surface-format.d.ts.map +0 -1
  820. package/dist/taa-history-store.d.ts +0 -88
  821. package/dist/taa-history-store.d.ts.map +0 -1
  822. package/dist/temporal-coverage.d.ts +0 -35
  823. package/dist/temporal-coverage.d.ts.map +0 -1
  824. package/dist/temporal-frame-transaction.d.ts +0 -92
  825. package/dist/temporal-frame-transaction.d.ts.map +0 -1
  826. package/dist/temporal-inspection.d.ts +0 -57
  827. package/dist/temporal-inspection.d.ts.map +0 -1
  828. package/dist/temporal-view.d.ts +0 -43
  829. package/dist/temporal-view.d.ts.map +0 -1
  830. package/dist/tilemap/resolve-tileset-runtime.d.ts +0 -23
  831. package/dist/tilemap/resolve-tileset-runtime.d.ts.map +0 -1
  832. package/dist/urp-pipeline.d.ts +0 -4
  833. package/dist/urp-pipeline.d.ts.map +0 -1
  834. package/src/__tests__/analytic-sky-contract.test.ts +0 -27
  835. package/src/__tests__/analytic-sky-falsify-carriers.mjs +0 -43
  836. package/src/__tests__/analytic-sky-falsify.test.ts +0 -94
  837. package/src/__tests__/assets-runtime-handoff.integration.test.ts +0 -36
  838. package/src/__tests__/backend-selection.integration.test.ts +0 -11
  839. package/src/__tests__/camera-temporal.test-d.ts +0 -8
  840. package/src/__tests__/camera-temporal.test.ts +0 -188
  841. package/src/__tests__/directional-shadow-probe-atlas-layout.unit.test.ts +0 -18
  842. package/src/__tests__/environment-inspection.test.ts +0 -45
  843. package/src/__tests__/fog-ai-user.fixture.ts +0 -350
  844. package/src/__tests__/fog-custom-render-feature.fixture.ts +0 -33
  845. package/src/__tests__/fog-custom-render-feature.integration.test.ts +0 -76
  846. package/src/__tests__/fog-inspection.integration.test.ts +0 -127
  847. package/src/__tests__/fog-owner-state.integration.test.ts +0 -112
  848. package/src/__tests__/fog-pipeline-topology.integration.test.ts +0 -93
  849. package/src/__tests__/fog-public-surface.integration.test.ts +0 -60
  850. package/src/__tests__/fog-ray-contract.integration.test.ts +0 -73
  851. package/src/__tests__/fog-source-absence.integration.test.ts +0 -51
  852. package/src/__tests__/fog-temporal.integration.test.ts +0 -115
  853. package/src/__tests__/frame-chain.unit.test.ts +0 -26
  854. package/src/__tests__/gpu-scene-field-type-owner.test-d.ts +0 -27
  855. package/src/__tests__/hdrp-pipeline.unit.test.ts +0 -100
  856. package/src/__tests__/ibl/ibl-fallback.unit.test.ts +0 -23
  857. package/src/__tests__/material-derived-error-stop-draw.integration.test.ts +0 -69
  858. package/src/__tests__/material-derived-payload.integration.test.ts +0 -164
  859. package/src/__tests__/materials.unit.test.ts +0 -25
  860. package/src/__tests__/param-schema-projection-census.unit.test.ts +0 -40
  861. package/src/__tests__/persistent-render-scene.unit.test.ts +0 -1311
  862. package/src/__tests__/pipeline-error-policy-owner.unit.test.ts +0 -167
  863. package/src/__tests__/pipeline-pass-trace.test.ts +0 -92
  864. package/src/__tests__/pipeline-stage-owner.test-d.ts +0 -13
  865. package/src/__tests__/plugin.test.ts +0 -25
  866. package/src/__tests__/prepared-graphics-backend-matrix.unit.test.ts +0 -129
  867. package/src/__tests__/prepared-graphics-resolver-recording.unit.test.ts +0 -180
  868. package/src/__tests__/public-pipeline-id.test-d.ts +0 -6
  869. package/src/__tests__/render-dispatch-membership.unit.test.ts +0 -117
  870. package/src/__tests__/render-feature-construction.unit.test.ts +0 -124
  871. package/src/__tests__/render-feature-error-code-owner.test-d.ts +0 -27
  872. package/src/__tests__/render-feature-gpu-buffer-usage-owner.test-d.ts +0 -46
  873. package/src/__tests__/render-feature-graph.integration.test.ts +0 -205
  874. package/src/__tests__/render-feature-graphics-staging.unit.test.ts +0 -200
  875. package/src/__tests__/render-feature-order.unit.test.ts +0 -66
  876. package/src/__tests__/render-feature-prepared-graphics-recording.unit.test.ts +0 -107
  877. package/src/__tests__/render-feature-staging.unit.test.ts +0 -94
  878. package/src/__tests__/renderer-render-scene-public.test-d.ts +0 -27
  879. package/src/__tests__/scene-temporal-coverage.unit.test.ts +0 -259
  880. package/src/__tests__/sun-snapshot-consumers.test.ts +0 -35
  881. package/src/__tests__/surface-backend-kind-owner.test-d.ts +0 -42
  882. package/src/__tests__/taa-history-store.unit.test.ts +0 -196
  883. package/src/__tests__/temporal-frame-transaction.integration.test.ts +0 -537
  884. package/src/__tests__/temporal-inspection.unit.test.ts +0 -138
  885. package/src/assets/__tests__/asset-decoders.unit.test.ts +0 -92
  886. package/src/assets/__tests__/mipmap-generator.unit.test.ts +0 -52
  887. package/src/assets/__tests__/render-asset-port.unit.test.ts +0 -54
  888. package/src/assets/__tests__/resolve-render-asset.unit.test.ts +0 -47
  889. package/src/components/__tests__/atmosphere-red.test.ts +0 -51
  890. package/src/components/__tests__/atmosphere.test.ts +0 -79
  891. package/src/components/__tests__/fog.test-d.ts +0 -49
  892. package/src/components/__tests__/fog.test.ts +0 -60
  893. package/src/components/atmosphere.ts +0 -64
  894. package/src/deferred-lighting.ts +0 -92
  895. package/src/dynamic-texture-store.ts +0 -111
  896. package/src/environment/README.md +0 -76
  897. package/src/environment/__tests__/failure-injection.test.ts +0 -50
  898. package/src/environment/__tests__/generation-red.test.ts +0 -64
  899. package/src/environment/__tests__/generation.test.ts +0 -37
  900. package/src/environment/__tests__/graph-transaction.test.ts +0 -85
  901. package/src/environment/__tests__/inspection-red.test.ts +0 -53
  902. package/src/environment/__tests__/lifecycle-evidence.test.ts +0 -40
  903. package/src/environment/__tests__/pipeline-topology.test.ts +0 -33
  904. package/src/environment/__tests__/readiness.test.ts +0 -42
  905. package/src/environment/__tests__/recovery.test.ts +0 -62
  906. package/src/environment/__tests__/resize-dispose.test.ts +0 -30
  907. package/src/environment/__tests__/signature-red.test.ts +0 -45
  908. package/src/environment/__tests__/signature.test.ts +0 -60
  909. package/src/environment/descriptors.ts +0 -7
  910. package/src/environment/extracted-environment.ts +0 -239
  911. package/src/environment/generation.ts +0 -158
  912. package/src/environment/gpu-bundle.ts +0 -144
  913. package/src/environment/graph.ts +0 -588
  914. package/src/environment/inspection.ts +0 -107
  915. package/src/environment/lifecycle.ts +0 -124
  916. package/src/environment/readiness.ts +0 -76
  917. package/src/environment/signature.ts +0 -185
  918. package/src/extract/__tests__/directional-csm-domain.unit.test.ts +0 -391
  919. package/src/extract/__tests__/environment-source.test.ts +0 -105
  920. package/src/extract/__tests__/schema-readers.unit.test.ts +0 -16
  921. package/src/extract/directional-csm.ts +0 -959
  922. package/src/extract/index.ts +0 -10
  923. package/src/extract/material-interface.ts +0 -604
  924. package/src/extract/schema-readers.ts +0 -27
  925. package/src/features/graph-contribution.ts +0 -577
  926. package/src/features/index.ts +0 -100
  927. package/src/features/morph/index.ts +0 -24
  928. package/src/features/morph/morph-bounds.ts +0 -123
  929. package/src/features/scene-temporal.ts +0 -274
  930. package/src/features/taa-resolve.ts +0 -244
  931. package/src/frame-chain.ts +0 -21
  932. package/src/hdrp-cluster-membership.ts +0 -70
  933. package/src/ibl/cubemap-projection.ts +0 -60
  934. package/src/ibl/face-uniforms.ts +0 -150
  935. package/src/mesh-update-errors.ts +0 -113
  936. package/src/mipmap-generator.ts +0 -244
  937. package/src/param-schema-projection-census.ts +0 -73
  938. package/src/persistent-render-scene.ts +0 -1752
  939. package/src/pipeline/index.ts +0 -40
  940. package/src/pipeline-errors.ts +0 -172
  941. package/src/prepare/__tests__/schema-readers.unit.test.ts +0 -16
  942. package/src/prepare/index.ts +0 -8
  943. package/src/prepare/schema-readers.ts +0 -20
  944. package/src/record/__tests__/environment-record.test.ts +0 -35
  945. package/src/record/__tests__/frame-targets.unit.test.ts +0 -54
  946. package/src/record/__tests__/membership-timing.unit.test.ts +0 -524
  947. package/src/record/__tests__/render-submission.integration.test.ts +0 -76
  948. package/src/record/__tests__/render-submission.perf.test.ts +0 -141
  949. package/src/record/__tests__/shadow-submit-mode.unit.test.ts +0 -88
  950. package/src/record/__tests__/view-ubo-layout.unit.test.ts +0 -101
  951. package/src/record/frame-observation.ts +0 -122
  952. package/src/record/index.ts +0 -15
  953. package/src/record/main-pass-skin.ts +0 -51
  954. package/src/record/main-pass-sprite.ts +0 -166
  955. package/src/record/material-payload.ts +0 -292
  956. package/src/record/material-slot-plan.ts +0 -68
  957. package/src/record/membership-timing.ts +0 -1012
  958. package/src/record/shadow-caster-uniform.ts +0 -37
  959. package/src/record/shadow-submit-mode.ts +0 -277
  960. package/src/render-dispatch-membership.ts +0 -155
  961. package/src/render-pipeline-context.ts +0 -332
  962. package/src/render-pipeline-target.ts +0 -96
  963. package/src/render-scene-projection.ts +0 -1738
  964. package/src/render-system-fold.ts +0 -531
  965. package/src/renderer/asset-service.ts +0 -32
  966. package/src/renderer/backend-selection.ts +0 -121
  967. package/src/renderer/environment-classify.ts +0 -30
  968. package/src/renderer/environment-error.ts +0 -19
  969. package/src/renderer/material/pipeline-projection.ts +0 -140
  970. package/src/renderer.ts +0 -940
  971. package/src/scene-utils/collect-subtree.ts +0 -40
  972. package/src/ssao-data.ts +0 -106
  973. package/src/surface-format.ts +0 -37
  974. package/src/taa-history-store.ts +0 -429
  975. package/src/temporal-coverage.ts +0 -106
  976. package/src/temporal-frame-transaction.ts +0 -301
  977. package/src/temporal-inspection.ts +0 -194
  978. package/src/temporal-view.ts +0 -174
  979. package/src/tilemap/resolve-tileset-runtime.ts +0 -72
@@ -1,132 +1,15 @@
1
- import type { EntityHandle, World } from '@forgeax/engine-ecs';
1
+ import type { AssetRegistry } from '@forgeax/engine-assets-runtime';
2
+ import type { World } from '@forgeax/engine-ecs';
2
3
  import { type Mat4, type Vec3 } from '@forgeax/engine-math';
3
4
  import { type SceneHierarchySnapshot } from '@forgeax/engine-scene';
4
- import type { Handle, MaterialAsset, MaterialError, MaterialPass, MaterialRenderState, MaterialTextureCoordinates, ParamSchemaEntry, PrimitiveTopology } from '@forgeax/engine-types';
5
- import { type Result } from '@forgeax/engine-types';
6
- import type { RenderAssetPort } from './assets/render-asset-port';
7
- import { type Antialias, type BloomEnabled, type Tonemap } from './components';
8
- import { type ExtractedEnvironment } from './environment/extracted-environment';
9
- import { FogOwnerConflictError, FogParametersInvalidError, type RenderError } from './errors/render';
10
- import { type DirectionalCsmConfig, type DirectionalCsmResult } from './extract/directional-csm';
11
- import { type DerivedMaterialSlotProjection } from './extract/material-interface';
12
- import { type ParamSchemaProjectionCensus } from './param-schema-projection-census';
13
- import { type RenderCandidateDomain, type RenderDispatchMembership } from './render-dispatch-membership';
14
- export { type CascadeVolume, type CascadeVolumeSet, CascadeVolumeSetBuilder, type CsmCameraData, computeDirectionalCsm, type DirectionalCsmConfig, type DirectionalCsmResult, directionalCascadeAtlasSize, directionalCascadeRasterViewport, pssmSplit, } from './extract/directional-csm';
5
+ import type { Handle, MaterialAsset, MaterialPass, MaterialRenderState, MaterialTextureCoordinates, ParamSchemaEntry, PrimitiveTopology } from '@forgeax/engine-types';
15
6
  import { type VisibilitySnapshot } from './extract/visibility';
16
7
  import type { RenderFeatureHiddenEntityReport, RenderFeatureWorldVisibilitySnapshot } from './features/types';
17
- import type { RenderSceneFactInput } from './gpu-scene-schema';
18
8
  import { type MeshMaterialBindingDiagnostic, type MeshMaterialBindingSource } from './mesh-material-bindings';
9
+ import type { PointsLinesRetainedSnapshot } from './points-lines/snapshot';
10
+ import { type CameraSnapshot } from './render-contract';
19
11
  import type { SkinPaletteAllocator } from './systems/skin-palette-allocator';
20
- export interface CameraSnapshot {
21
- /** Renderer-local World attachment identity. */
22
- readonly worldId: number;
23
- /** Packed ECS entity handle; its high bits retain the entity generation. */
24
- readonly entityKey: number;
25
- /** World-space camera translation (mat4.getTranslation of Transform.world). */
26
- readonly position: Vec3;
27
- /**
28
- * Resolved world-space camera mat4 (column-major 16 floats), copied from the
29
- * entity's `Transform.world` view. The record stage derives the view matrix
30
- * as `mat4.invert(world)` (feat-20260601 D-3: read world mat4 -> invert; no
31
- * recompose from decomposed TRS).
32
- */
33
- readonly world: Float32Array;
34
- readonly fov: number;
35
- readonly aspect: number;
36
- readonly near: number;
37
- readonly far: number;
38
- /**
39
- * Camera projection variant (`'perspective'` | `'orthographic'`),
40
- * surfaced through the closed string-literal union narrowed from the
41
- * Camera schema's `projection` f32 discriminator. Drives the CSM
42
- * frustum-corner builder in render-system-extract: perspective uses
43
- * mat4.perspective(fov, aspect, ...); orthographic uses mat4.ortho
44
- * (left, right, bottom, top, ...). Without this discrimination an
45
- * orthographic camera (fov=0) would feed a degenerate matrix into
46
- * the CSM AABB-fit and the shadow atlas would never be written
47
- * (feat-20260613 M6 / w20 fix).
48
- */
49
- readonly projection: 'perspective' | 'orthographic';
50
- /** Orthographic left frustum plane (only consumed when projection === 'orthographic'). */
51
- readonly orthoLeft: number;
52
- /** Orthographic right frustum plane. */
53
- readonly orthoRight: number;
54
- /** Orthographic bottom frustum plane. */
55
- readonly orthoBottom: number;
56
- /** Orthographic top frustum plane. */
57
- readonly orthoTop: number;
58
- /**
59
- * feat-20260519-tonemap-reinhard-mvp / M3 / T-M3.1: tone-map mode
60
- * surfaced through the closed string-literal union (`tonemapFromF32`
61
- * narrows the schema's `f32` discriminator). The record stage branches
62
- * on this field to pick the geometry pipeline target format
63
- * (`bgra8unorm-srgb` for `'none'` / `'rgba16float'` for
64
- * `'reinhard-extended'`) and to decide whether to emit the post-process
65
- * tonemap fullscreen pass.
66
- */
67
- readonly tonemap: Tonemap;
68
- /** Linear pre-multiplier applied before the luminance compute (T-M3.3). */
69
- readonly exposure: number;
70
- /** Bright-end break point Lw for the extended Reinhard curve (T-M3.3). */
71
- readonly whitePoint: number;
72
- /**
73
- * feat-20260528-fxaa-post-processing / w3: anti-alias mode surfaced
74
- * through the closed string-literal union (antialiasFromF32 narrows
75
- * the schema's f32 discriminator). The record stage branches on this
76
- * field to decide whether to emit the FXAA post-process pass.
77
- */
78
- readonly antialias: Antialias;
79
- /** Explicit authoring fence for discontinuous view changes. */
80
- readonly historyVersion: number;
81
- /**
82
- * feat-20260531-bloom-first-declarative-render-graph-pass / w4: bloom
83
- * enabled discriminator surfaced through the closed string-literal union
84
- * (bloomEnabledFromF32 narrows the schema's f32 discriminator). The record
85
- * stage branches on this field to decide whether to emit the bloom
86
- * post-process pipeline.
87
- */
88
- readonly bloom: BloomEnabled;
89
- /** HDR luminance threshold for bright-pass extraction (D-3 default 1.0). */
90
- readonly bloomThreshold: number;
91
- /** Multiplier applied to the blurred bloom contribution in composite (D-3 default 1.0). */
92
- readonly bloomIntensity: number;
93
- /** Gaussian blur kernel radius, clamped [1.0, 4.0] in shader (D-3 default 4.0). */
94
- readonly bloomBlurRadius: number;
95
- /**
96
- * feat-20260709 M3 / D-3: clear-color RGBA sourced from the Camera entity's
97
- * inline `array<f32,4>` column (first-archetype-hit per OOS-2). Collapsed
98
- * from the feat-20260608 clearR/G/B/A snapshot quartet into one field aligned
99
- * with the light snapshot shape. AI users override per-camera by setting
100
- * `clearColor` when spawning the Camera entity; default is opaque black
101
- * `[0, 0, 0, 1]` (D-5). The record stage reads these values verbatim into
102
- * the LoadOp::Clear color slot.
103
- */
104
- readonly clearColor: readonly [number, number, number, number];
105
- }
106
- export type RenderVisibilityViewKind = 'main' | 'cascade';
107
- /**
108
- * One of the four CPU visibility views. Cascade membership is copied from the
109
- * canonical CascadeVolumeSet; this descriptor never derives a second volume.
110
- */
111
- export interface RenderVisibilityViewDescriptor {
112
- readonly viewId: string;
113
- readonly kind: RenderVisibilityViewKind;
114
- readonly cascadeIndex: number | undefined;
115
- readonly planes: Float32Array;
116
- /** Conservative world AABB used by the persistent spatial owner. */
117
- readonly broadphaseWorldAabb?: Float32Array | undefined;
118
- /** Canonical raster matrix for a cascade; absent for the main view. */
119
- readonly lightViewProj?: Float32Array | undefined;
120
- readonly casterCandidateIndices: ReadonlySet<number>;
121
- readonly volumeRevision: number | undefined;
122
- readonly spatialIndexRevision: number | undefined;
123
- }
124
- /** Build the main camera plus exactly three CSM view descriptors. */
125
- export declare function buildRenderVisibilityViewDescriptors(input: {
126
- readonly camera: CameraSnapshot | undefined;
127
- readonly directionalCsm: DirectionalCsmResult | undefined;
128
- readonly spatialIndexRevision?: number | undefined;
129
- }): readonly RenderVisibilityViewDescriptor[];
12
+ import type { SkinPaletteSlice } from './systems/skin-palette-types';
130
13
  /**
131
14
  * DirectionalLightSnapshot — sun-like infinite light variant of the
132
15
  * `LightSnapshot` discriminated union (M2 / w16 / AC-03). Host pre-multiplies
@@ -235,8 +118,6 @@ export interface PointShadowSnapshot {
235
118
  */
236
119
  export interface SpotLightSnapshot {
237
120
  readonly kind: 'spot';
238
- /** ECS entity handle in the source World; diagnostic identity only. */
239
- readonly entity: number;
240
121
  readonly position: Vec3;
241
122
  readonly direction: Vec3;
242
123
  readonly color: Vec3;
@@ -363,10 +244,6 @@ export interface ExtractedLights {
363
244
  * when castShadow=false or no directional light.
364
245
  */
365
246
  readonly directionalCsmDirection: Vec3 | undefined;
366
- /** Canonical receiver/caster plan consumed by persistent scene and record. */
367
- readonly directionalCsm?: DirectionalCsmResult;
368
- /** Internal compatibility projection; the plan above remains canonical. */
369
- readonly cascades?: DirectionalCsmResult['cascades'];
370
247
  }
371
248
  /**
372
249
  * SkylightSnapshot -- extract-stage view of one Skylight entity
@@ -375,7 +252,7 @@ export interface ExtractedLights {
375
252
  * `equirectHandle` carries the packed u32 handle for
376
253
  * `Handle<EquirectAsset, 'shared'>`; the record stage drives the internal
377
254
  * lazy cubemap projection from it and resolves the projected GPU cubemap via
378
- * `GpuResourceStore.getCubemapGpuView(...)` and related helpers
255
+ * `GpuResidencyCache.getCubemapGpuView(...)` and related helpers
379
256
  * (feat-20260630 M3 / w16-w18). The snapshot carries NO projection status
380
257
  * field: the status truth lives in the store's CubemapGpuEntry (D-3 SSOT);
381
258
  * record queries it once per frame.
@@ -392,31 +269,13 @@ export interface SkylightSnapshot {
392
269
  readonly rotation: readonly [number, number, number, number];
393
270
  readonly entityHandle: number;
394
271
  }
395
- /** Retained scene-radiance Fog facts; parameters remain outside inspection. */
396
- export interface FogSnapshot {
397
- readonly color: readonly [number, number, number];
398
- readonly density: number;
399
- readonly heightFalloff: number;
400
- readonly maxOpacity: number;
401
- readonly revision: number;
402
- }
403
- /** Internal owner facts needed to publish a Fog snapshot transactionally. */
404
- export interface FogSelection {
405
- readonly snapshot: FogSnapshot | undefined;
406
- readonly resourceOwner: number;
407
- readonly entity: EntityHandle | undefined;
408
- }
409
- export type FogSelectionError = Extract<RenderError, FogOwnerConflictError | FogParametersInvalidError>;
410
- export type FogSelectionResult = Result<FogSelection, FogSelectionError>;
411
- /** Select and validate the single Fog authoring entity from resourceOwner. */
412
- export declare function selectFog(world: World | undefined, resourceOwner: number): FogSelectionResult;
413
272
  /**
414
273
  * SkyboxSnapshot -- extract-stage view of one SkyboxBackground entity
415
274
  * (feat-20260531-skybox-env-background M2 / w5).
416
275
  *
417
276
  * `equirectHandle` carries the packed u32 handle for
418
277
  * `Handle<EquirectAsset, 'shared'>`; the record stage resolves the projected
419
- * GPU cubemap via `GpuResourceStore.getCubemapGpuView(...)`.
278
+ * GPU cubemap via `GpuResidencyCache.getCubemapGpuView(...)`.
420
279
  *
421
280
  * `mode` carries the raw `f32` column value (`SKYBOX_MODE_CUBEMAP = 0`).
422
281
  * First hit wins per plan-strategy D-6; multi-entity once-warn in record stage.
@@ -431,27 +290,9 @@ export interface SkyboxSnapshot {
431
290
  export interface RenderableSnapshot {
432
291
  readonly assetHandle: number;
433
292
  readonly transform: TransformSnapshot;
434
- /**
435
- * Bounds-only transform derived from authored local TRS when the resolved
436
- * world column is still its identity default. This preserves the producer
437
- * bounds source for direct extract-before-propagate paths without changing
438
- * the render SSOT, which remains `transform.world`.
439
- */
440
- readonly boundsWorld?: Float32Array;
441
- /** Candidate-domain copy of all instance transforms, retained before cull. */
442
- readonly candidateInstanceTransforms?: Float32Array;
443
293
  /** Finite producer-owned local bounds retained for persistent CPU view work. */
444
294
  readonly localAabb?: Float32Array;
445
- /**
446
- * Optional authoring/pack-owned scene facts. The projection supplies
447
- * explicit `unknown` defaults when this field is absent; it never infers
448
- * staticness or shadow eligibility from frame-local behavior.
449
- */
450
- readonly sceneFact?: RenderSceneFactInput;
451
- /**
452
- * Forward raster item facts consumed by the first GPU-driven rigid lane.
453
- * Each entry carries its source submesh, pass identity, and resolved queue.
454
- */
295
+ /** Indexed single-submesh facts consumed by the first GPU-driven rigid lane. */
455
296
  readonly gpuDrivenDraws?: readonly GpuDrivenDrawSnapshot[];
456
297
  /**
457
298
  * feat-20260608 M5 amend / w11-a: the entity's representative (first)
@@ -507,8 +348,6 @@ export interface RenderableSnapshot {
507
348
  * not the bare entityKey alone (D-1).
508
349
  */
509
350
  readonly entityKey: number;
510
- /** Stable pre-main-cull candidate index used by the directional CSM plan. */
511
- readonly candidateIndex?: number;
512
351
  /**
513
352
  * feat-20260514 M3 (w15): when the entity carries an `Instances` component
514
353
  * the extract stage materialises a fresh `Float32Array` snapshot of the
@@ -548,30 +387,20 @@ export interface RenderableSnapshot {
548
387
  * Absent (`undefined`) means the entity is not skinned.
549
388
  */
550
389
  readonly skin?: SkinPaletteSlice;
551
- /** Current morph producer weights; previous values come from the submitted projection epoch. */
552
- readonly morphWeights?: Float32Array;
553
- /** Previous facts from the renderer's last successful submission epoch. */
554
- readonly temporal?: RenderableTemporalSnapshot;
390
+ /**
391
+ * ECS-owned morph weights. Presence selects the Standard Pipeline CPU
392
+ * specialized deformation lane; the asset remains the source of target
393
+ * deltas and the record stage only receives this frozen POD snapshot.
394
+ */
395
+ readonly morph?: MorphSnapshot;
396
+ /** Detached M2 authoring facts for the optional Points/Lines projection. */
397
+ readonly pointsLines?: PointsLinesRetainedSnapshot;
555
398
  }
556
- export type RenderablePreviousSource = 'last-submitted' | 'current-seed';
557
- export type RenderableReactiveReason = 'new-slot' | 'generation-reuse' | 'reentered' | 'geometry-revision' | 'material-revision' | 'skinning-deformation' | 'morph-deformation';
558
- export interface RenderableTemporalSnapshot {
559
- readonly previousEpoch: number | undefined;
560
- readonly previousSource: RenderablePreviousSource;
561
- readonly reactive: boolean;
562
- readonly reactiveReasons: readonly RenderableReactiveReason[];
563
- readonly previousTransform: TransformSnapshot;
564
- readonly previousInstances: InstancesSnapshot | undefined;
565
- readonly previousSkin: SkinPaletteSlice | undefined;
566
- readonly previousMorphWeights: Float32Array | undefined;
399
+ export interface MorphSnapshot {
400
+ readonly weights: Float32Array;
401
+ readonly targetCount: number;
567
402
  }
568
403
  export interface GpuDrivenDrawSnapshot {
569
- /** Index into the resolved mesh submesh array. */
570
- readonly submeshIndex: number;
571
- /** Index of the corresponding material pass in the resolved pass list. */
572
- readonly passIndex: number;
573
- /** Effective queue copied from that pass; always resolved at extract time. */
574
- readonly queue: number;
575
404
  readonly kind: 'indexed' | 'non-indexed';
576
405
  readonly first: number;
577
406
  readonly count: number;
@@ -581,40 +410,6 @@ export interface GpuDrivenDrawSnapshot {
581
410
  readonly pipelineClass: string;
582
411
  readonly materialResourceClass: string;
583
412
  }
584
- /**
585
- * feat-20260523-skin-skeleton-animation M2 / T-21 + T-24:
586
- * per-draw palette slice metadata. Joint count + byte offset into the
587
- * shared skin palette storage buffer.
588
- *
589
- * plan-strategy D-10: SkinPaletteSlice naming mirroring Bevy SkinByteOffset
590
- * but with forgeax vocabulary (byteOffset not offset, jointCount not joint_count).
591
- */
592
- export interface SkinPaletteSlice {
593
- readonly jointCount: number;
594
- /** CPU snapshot of the exact palette written for this extract epoch. */
595
- readonly jointMatrices: Float32Array;
596
- /**
597
- * Byte offset INTO `buffer` for this slice. On the storage path the
598
- * allocator returns one shared buffer + a per-entity cursor offset; on
599
- * the uniform fallback path each slice owns its own GPU buffer (cap
600
- * `maxUniformBufferBindingSize` 16 KiB cannot host shared dynOffset
601
- * windows for >1 entity), so `byteOffset === 0` for every slice and
602
- * `buffer` is the per-slice handle. Record stage reads both fields and
603
- * does not branch on the path -- BG cache key includes `buffer`, so
604
- * two paths converge at the same code.
605
- */
606
- readonly byteOffset: number;
607
- /**
608
- * Per-slice GPU buffer handle. M6: feat-20260612 collapsed the prior
609
- * shared-buffer assumption (record-stage read `pipelineState
610
- * .skinPaletteAllocator.buffer`) into a per-slice carrier so the
611
- * uniform fallback path can return a per-entity buffer without
612
- * branching the record stage.
613
- */
614
- readonly buffer: import('@forgeax/engine-rhi').Buffer;
615
- /** Previous successful-submit palette, paired with {@link buffer}. */
616
- readonly previousBuffer?: import('@forgeax/engine-rhi').Buffer | undefined;
617
- }
618
413
  export interface InstancesSnapshot {
619
414
  /** Packed column-major mat4 transforms (16 f32 per instance). */
620
415
  readonly transforms: Float32Array;
@@ -711,16 +506,12 @@ export interface MaterialSnapshot {
711
506
  * discriminator (M4-T06).
712
507
  */
713
508
  readonly materialShaderId?: string | undefined;
714
- /** Canonical RenderAssetPort GUID used to join the production readiness tuple. */
715
- readonly materialGuid?: string | undefined;
716
509
  /**
717
510
  * Stable source handle for the material asset. Record uses this only for
718
511
  * same-frame assembly reuse; GPU bind-group validity still comes from the
719
512
  * resource-identity cache.
720
513
  */
721
514
  readonly materialHandle?: number | undefined;
722
- /** Whether the resolved material owns a ShadowCaster pass. */
723
- readonly shadowCaster?: boolean | undefined;
724
515
  /**
725
516
  * The selected forward-pass state for this exact material. A mesh can bind
726
517
  * different materials to its submeshes, so pipeline selection must read the
@@ -736,10 +527,6 @@ export interface MaterialSnapshot {
736
527
  readonly paramSnapshot?: Readonly<Record<string, number | number[] | string>> | undefined;
737
528
  /** Effective MaterialAsset parameter contract used to lay out this snapshot. */
738
529
  readonly materialParamSchema?: readonly ParamSchemaEntry[] | undefined;
739
- /** Typed per-slot projection produced from the effective root schema. */
740
- readonly derivedMaterialSlot?: DerivedMaterialSlotProjection | undefined;
741
- /** Structured extract failure that the record stage must propagate and stop. */
742
- readonly derivedMaterialError?: MaterialError | undefined;
743
530
  /** Authored per-slot UV set and KHR texture transform metadata. */
744
531
  readonly textureCoordinates?: ReadonlyMap<string, MaterialTextureCoordinates> | undefined;
745
532
  /**
@@ -747,7 +534,7 @@ export interface MaterialSnapshot {
747
534
  * (feat-20260621-learn-render-5-5-parallax M2 / w7). The SSOT carrier for
748
535
  * EVERY texture the shader's `derive(paramSchema).textureFieldNames`
749
536
  * declares — `baseColorTexture` / `metallicRoughnessTexture` /
750
- * `normalTexture` for built-in standard-PBR, plus any custom field such as
537
+ * `normalTexture` for built-in standard-PBR, plus each custom field such as
751
538
  * `heightTexture` (LO 5.5 parallax). The record stage iterates this map to
752
539
  * assemble the user-region bind group per the per-shader BGL (w8), so a 4th
753
540
  * (or Nth) texture flows end-to-end without a hardcoded field list.
@@ -766,7 +553,7 @@ export interface MaterialSnapshot {
766
553
  * occupies the same texture2d values slot a static texture would (P4:
767
554
  * one binding shape), but extract routes it here instead of `textureHandles`
768
555
  * so the record stage pulls the current-frame view from the transient
769
- * DynamicTextureStore (D-3) instead of `GpuResourceStore.ensureResident`
556
+ * DynamicTextureStore (D-3) instead of `GpuResidencyCache.ensureResident`
770
557
  * (which has no `video` arm; AC-08). Each entry also carries the resolved
771
558
  * clip handle so the record stage can key the per-frame upload.
772
559
  *
@@ -845,7 +632,7 @@ export interface MaterialSnapshotCacheEntry {
845
632
  readonly passes: readonly MaterialPass[];
846
633
  /** Root/chain identities are present only on cross-frame-safe entries. */
847
634
  readonly chain?: readonly MaterialCacheChainIdentity[];
848
- /** RenderAssetPort epoch at which the root/parent chain was last validated. */
635
+ /** AssetRegistry epoch at which the root/parent chain was last validated. */
849
636
  readonly catalogEpoch?: number;
850
637
  /** True only when every object reachable from the authored chain is frozen. */
851
638
  readonly crossFrameSafe: boolean;
@@ -891,23 +678,16 @@ export interface ExtractedFrame {
891
678
  readonly cameras: CameraSnapshot[];
892
679
  readonly lights: ExtractedLights;
893
680
  readonly renderables: RenderableSnapshot[];
894
- /** Author-visible snapshots retained before the main-view frustum cull. */
895
- readonly candidateRenderables?: readonly RenderableSnapshot[];
896
- /** Pass dispatch for the same pre-main-cull candidate domain. */
897
- readonly candidateDispatch?: readonly DispatchEntry[];
898
- /** Shared membership owner for the candidate dispatch domain. */
899
- readonly candidateDispatchMembership?: RenderDispatchMembership;
900
- /** Shared immutable candidate array/dispatch/index owner. */
901
- readonly candidateDomain?: RenderCandidateDomain;
902
- /** Resource-owner Fog snapshot retained for direct extract consumers. */
903
- readonly fog?: FogSnapshot | undefined;
904
681
  /**
905
682
  * Single dispatch list sorted by queue value (ascending, stable sort).
906
683
  * Replaces the old opaqueDispatch / transparentDispatch / overlayDispatch
907
684
  * three-bucket model per plan-strategy D-3.
908
685
  */
909
686
  readonly dispatch: DispatchEntry[];
910
- readonly environment: ExtractedEnvironment;
687
+ readonly skylight: SkylightSnapshot | undefined;
688
+ readonly skylightCount: number;
689
+ readonly skybox: SkyboxSnapshot | undefined;
690
+ readonly skyboxCount: number;
911
691
  /**
912
692
  * feat-20260528-frustum-culling M3 / w11: frustum culling statistics
913
693
  * collected during the extract phase. `total` is the count of entities
@@ -938,50 +718,21 @@ export interface ExtractedFrame {
938
718
  readonly hiddenEntityReports: readonly RenderFeatureHiddenEntityReport[];
939
719
  }
940
720
  /**
941
- * Transparent-bucket dispatch entry extends the dispatch snapshot with
942
- * per-entity sort inputs precomputed at extract time.
721
+ * feat-20260608 M5 amend / w11-a: resolve a single MaterialAsset handle into
722
+ * a per-submesh MaterialSnapshot. Used by the extractFrame archetype loop to
723
+ * build `RenderableSnapshot.materials[]` for indices >= 1 (the entity-level
724
+ * snapshot at index 0 is built inline because it also drives multi-pass
725
+ * DispatchEntry creation + sprite-region overrides; per-submesh secondary
726
+ * materials are non-sprite + single-pass-equivalent for the record stage's
727
+ * UBO upload, so this helper produces a plain MaterialSnapshot only).
943
728
  *
944
- * Field semantics:
945
- * - `layer` primary sort key (signed i32 from `Layer.value`; default 0
946
- * for entities without a Layer component).
947
- * - `posX` / `posY` / `posZ` world position from the entity's Transform.
948
- * - `pivotY` / `sizeY` — sprite's Y-axis foot offset inputs. `pivotY =
949
- * SpriteMaterialAsset.pivot[1]` (default 0.5); `sizeY` = Transform's
950
- * world scale Y (sprite quad's world-space height in unit-quad world
951
- * space — the unit quad is 1x1 so `Transform.scaleY` directly maps to
952
- * world height). The foot-Y formula `posY - pivotY * sizeY` is the
953
- * SSOT for the JRPG Y-sort path (mode=1, requirements §AC-10).
954
- * - `sortKey` — optional per-entity override from `SortKey.value`. When
955
- * present, `transparentSortEntries` uses it INSTEAD of the mode formula
956
- * for this entry (still gated by `layer` as the primary key).
957
- *
958
- * Plan-strategy §3.3 interface example + §AC-10 sort path + §AC-19
959
- * derivation row 13 (this is the true new POD shape `@new-surface`; not a
960
- * mere rename of an existing snapshot).
729
+ * Returns `defaultMaterialSnapshot()` (mid-grey unlit) for handle=0 (case-B
730
+ * sentinel, mirroring the inline path) and on each unresolved / non-material
731
+ * asset (so a partially-mis-registered multi-material entity still renders
732
+ * the resolvable submeshes; the count-mismatch validator already filtered
733
+ * the count-disagreement case earlier).
961
734
  */
962
- export interface TransparentEntry {
963
- readonly entityIndex: number;
964
- readonly materialHandle: number;
965
- readonly layer: number;
966
- readonly posX: number;
967
- readonly posY: number;
968
- readonly posZ: number;
969
- readonly pivotY: number;
970
- readonly sizeY: number;
971
- readonly sortKey?: number | undefined;
972
- /**
973
- * Index into the parallel `ExtractedFrame.renderables[]` array. M-3 /
974
- * w25 record stage uses this to look up the `RenderableSnapshot`
975
- * (Transform + mesh + material snapshot) belonging to this transparent
976
- * entry after `transparentSortEntries` reorders the bucket. Optional
977
- * for test fixtures that construct TransparentEntry literals by hand
978
- * (w16 sort tests bypass renderables[] correlation); the real extract
979
- * path always sets a non-negative integer index here.
980
- */
981
- readonly renderableIndex?: number | undefined;
982
- }
983
- export declare const resolveMaterialSnapshot: (handleRaw: number, world: World, assets: RenderAssetPort, gpuStore?: import("./gpu-resource-store").GpuResourceStore, materialSnapshotCache?: MaterialSnapshotCache, persistentMaterialSnapshotCache?: MaterialSnapshotCache, paramSchemaProjectionCensus?: ParamSchemaProjectionCensus) => MaterialSnapshot;
984
- export declare function refreshRenderableMaterialSnapshot(renderable: RenderableSnapshot, materialHandle: number, world: World, assets: RenderAssetPort, gpuStore?: import('./gpu-resource-store').GpuResourceStore, persistentMaterialSnapshotCache?: MaterialSnapshotCache, paramSchemaProjectionCensus?: ParamSchemaProjectionCensus): RenderableSnapshot | undefined;
735
+ export declare function resolveMaterialSnapshot(handleRaw: number, world: World, assetsRef: AssetRegistry, materialSnapshotCache?: MaterialSnapshotCache, persistentMaterialSnapshotCache?: MaterialSnapshotCache): MaterialSnapshot;
985
736
  /**
986
737
  * feat-20260612-skin-palette-per-frame-upload M2 / m2-6: narrow per-frame
987
738
  * pipeline surface consumed by `extractFrame`. Today only `skinPaletteAllocator`
@@ -994,6 +745,7 @@ export declare function refreshRenderableMaterialSnapshot(renderable: Renderable
994
745
  export interface ExtractPipelineSurface {
995
746
  readonly skinPaletteAllocator: SkinPaletteAllocator | null;
996
747
  }
748
+ export declare function pssmSplit(nearPlane: number, farPlane: number, cascadeCount: number, splitLambda: number): Float32Array;
997
749
  /**
998
750
  * Build 6 face view-proj matrices for an omnidirectional shadow caster
999
751
  * (point-light cube map). Returns 6 mat4 (column-major 16-float each) in face
@@ -1011,6 +763,71 @@ export interface ExtractPipelineSurface {
1011
763
  * @param far far plane distance (PointLightShadow.farPlane)
1012
764
  */
1013
765
  export declare function buildPointShadowMatrices(lightPos: Vec3, near: number, far: number): Mat4[];
766
+ /**
767
+ * bug-20260710-editor-cross-world-shadow: the camera-frustum subset of
768
+ * {@link CameraSnapshot} that the directional-CSM matrix builder consumes.
769
+ * Extracted so the builder can run both inside {@link extractFrame} (single
770
+ * world) AND at the {@link extractFrames} merge layer, where the camera and the
771
+ * directional light may originate in DIFFERENT worlds (the editor
772
+ * editorWorld/sceneWorld super-composite). A cameraless world produces zero
773
+ * lightViewProj matrices, so the merge layer MUST recompute using the surfaced
774
+ * camera — see {@link computeDirectionalCsm}.
775
+ */
776
+ export interface CsmCameraData {
777
+ readonly world: Float32Array;
778
+ readonly fov: number;
779
+ readonly aspect: number;
780
+ readonly near: number;
781
+ readonly far: number;
782
+ readonly projection: 'perspective' | 'orthographic';
783
+ readonly orthoLeft: number;
784
+ readonly orthoRight: number;
785
+ readonly orthoBottom: number;
786
+ readonly orthoTop: number;
787
+ }
788
+ /**
789
+ * bug-20260710-editor-cross-world-shadow: the raw directional-shadow config a
790
+ * DirectionalLight carries, threaded onto {@link ExtractedLights} so the merge
791
+ * layer can recompute CSM matrices against the surfaced camera. Distinct from
792
+ * the *computed* outputs (lightViewProj / splitPlanes) also on ExtractedLights.
793
+ */
794
+ export interface DirectionalCsmConfig {
795
+ readonly cascadeCount: number;
796
+ readonly splitLambda: number;
797
+ readonly cascadeBlend: number;
798
+ readonly mapSize: number;
799
+ readonly shadowDistance: number;
800
+ }
801
+ /**
802
+ * bug-20260710-editor-cross-world-shadow: computed directional-CSM output —
803
+ * the per-cascade light-view-projection matrices plus the derived cascade
804
+ * metadata. Returned by {@link computeDirectionalCsm}; `undefined` when the
805
+ * config or camera is missing (caller leaves the fields undefined).
806
+ */
807
+ export interface DirectionalCsmResult {
808
+ readonly lightViewProj: Float32Array[];
809
+ readonly splitPlanes: Float32Array;
810
+ readonly cascadeCount: number;
811
+ readonly cascadeBlend: number;
812
+ readonly shadowMapSize: number;
813
+ }
814
+ /**
815
+ * bug-20260710-editor-cross-world-shadow: pure directional-CSM matrix builder,
816
+ * extracted verbatim from the former inline block in {@link extractFrame} (the
817
+ * PSSM split + per-cascade frustum-slice AABB fit + orthographic light
818
+ * projection). It is now a free function so BOTH the per-world extract and the
819
+ * cross-world merge layer can call it — the merge layer is the only place that
820
+ * pairs the first-hit directional light of one world with the surfaced camera
821
+ * of another (editor super-composite). Returns `null` when there is no camera
822
+ * to fit against (a cameraless world's directional light yields no matrices —
823
+ * the caller leaves lightViewProj undefined rather than emitting zero matrices
824
+ * that the WGSL reader would sample as NaN → "fully lit").
825
+ *
826
+ * Byte-identical to the prior inline computation for the single-world case
827
+ * (same PSSM lambda, same toward-light Z reach RC-2 fix, same clip-space
828
+ * matrix / tile-placement-in-shader split).
829
+ */
830
+ export declare function computeDirectionalCsm(direction: Vec3, config: DirectionalCsmConfig, cameraData: CsmCameraData | undefined): DirectionalCsmResult | null;
1014
831
  /**
1015
832
  * feat-20260709-editor-world-partition M1 / w4 (AC-08, plan-strategy §2 D-3):
1016
833
  * the owner index that previously served BOTH cameras and singleton render
@@ -1026,71 +843,26 @@ export interface ExtractFramesOwner {
1026
843
  readonly resourceOwner: number;
1027
844
  }
1028
845
  export interface PreparedExtractContext {
1029
- /** Renderer-local identity of the World whose singleton resources are read. */
1030
- readonly worldId?: number | undefined;
1031
- readonly assets: RenderAssetPort | null | undefined;
846
+ readonly assets: AssetRegistry | null | undefined;
1032
847
  readonly pipelineState: ExtractPipelineSurface | null | undefined;
1033
- readonly gpuStore: import('./gpu-resource-store').GpuResourceStore | undefined;
1034
848
  readonly materialSnapshotCache: MaterialSnapshotCache | undefined;
1035
849
  readonly cull: 'self' | 'none' | 'external';
1036
850
  readonly cullCameras: readonly CameraSnapshot[] | undefined;
1037
851
  readonly hierarchy: SceneHierarchySnapshot;
1038
852
  readonly visibility: VisibilitySnapshot;
1039
- /** @internal Debug-only ParamSchema compatibility census. */
1040
- readonly paramSchemaProjectionCensus?: ParamSchemaProjectionCensus | undefined;
1041
- /** @internal Refresh only compact lighting resources over an existing frame. */
1042
- readonly resourceRefreshBase?: ExtractedFrame;
1043
- /**
1044
- * @internal Restrict the MeshRenderer row source to known entities. The
1045
- * query is addressed through Query.at(), so this path does not iterate the
1046
- * world's renderable tables. Resource queries remain unchanged.
1047
- */
1048
- readonly targetRenderableEntities?: readonly EntityHandle[];
1049
853
  }
1050
854
  export declare function extractCameraSnapshots(world: World): CameraSnapshot[];
1051
- export declare function refreshExtractedFrameCameras(world: World, frame: ExtractedFrame): ExtractedFrame;
1052
- /**
1053
- * Refresh only the resource-owned PostProcessParams map after an ECS journal
1054
- * update. Post-process parameter entities are not render-domain slots; making
1055
- * their transient byte payload visible must not rebuild candidates, dispatch,
1056
- * topology, or the GPU scene.
1057
- */
1058
- export declare function refreshExtractedFramePostProcessParams(world: World, frame: ExtractedFrame): ExtractedFrame;
1059
855
  export declare function prepareExtractContext(world: World, options?: {
1060
- readonly worldId?: number;
1061
- readonly assets?: RenderAssetPort | null;
856
+ readonly assets?: AssetRegistry | null;
1062
857
  readonly pipelineState?: ExtractPipelineSurface | null;
1063
- readonly gpuStore?: import('./gpu-resource-store').GpuResourceStore;
1064
858
  readonly materialSnapshotCache?: MaterialSnapshotCache;
1065
859
  readonly cull?: 'self' | 'none' | 'external';
1066
860
  readonly cullCameras?: readonly CameraSnapshot[];
1067
- readonly paramSchemaProjectionCensus?: ParamSchemaProjectionCensus;
1068
861
  }): PreparedExtractContext;
1069
- export declare function extractFrames(worlds: readonly World[], owner: number | ExtractFramesOwner, assets?: RenderAssetPort | null, pipelineState?: ExtractPipelineSurface | null, gpuStore?: import('./gpu-resource-store').GpuResourceStore, materialSnapshotCachesByWorld?: MaterialSnapshotCachesByWorld, options?: {
862
+ export declare function extractFrames(worlds: readonly World[], owner: number | ExtractFramesOwner, assets?: AssetRegistry | null, pipelineState?: ExtractPipelineSurface | null, materialSnapshotCachesByWorld?: MaterialSnapshotCachesByWorld, options?: {
1070
863
  readonly cull?: 'normal' | 'none';
1071
- readonly paramSchemaProjectionCensus?: ParamSchemaProjectionCensus;
1072
864
  }): ExtractedFrame;
1073
865
  export declare function extractFrame(world: World, context: PreparedExtractContext): ExtractedFrame;
1074
- /**
1075
- * Extract the complete render-domain facts for one known entity.
1076
- *
1077
- * This deliberately reuses extractFrame's MeshRenderer row body instead of
1078
- * maintaining a second material/skin/sprite implementation. Query.at() makes
1079
- * the row source identity-addressed; callers must supply a visibility snapshot
1080
- * appropriate for the current persistent owner and must keep hierarchy-affecting
1081
- * changes on the conservative rebuild lane.
1082
- */
1083
- export interface ExtractedRenderableEntity {
1084
- readonly snapshot: RenderableSnapshot;
1085
- readonly candidateDispatch: readonly DispatchEntry[];
1086
- }
1087
- export declare function extractRenderableEntity(world: World, entity: EntityHandle, context: PreparedExtractContext): ExtractedRenderableEntity | undefined;
1088
- /**
1089
- * Refresh only light, shadow, sky, and post-process resources over an existing
1090
- * persistent frame. The resource path intentionally skips hierarchy,
1091
- * renderable, material, cull, dispatch, and candidate-domain extraction.
1092
- */
1093
- export declare function refreshExtractedFrameLights(world: World, frame: ExtractedFrame): ExtractedFrame;
1094
- export declare function defaultTransformSnapshot(): TransformSnapshot;
1095
866
  export declare function defaultMaterialSnapshot(materialHandle?: number): MaterialSnapshot;
867
+ export {};
1096
868
  //# sourceMappingURL=render-system-extract.d.ts.map