@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,11 +1,7 @@
1
1
  import type { Texture, TextureView } from '@forgeax/engine-rhi';
2
- import { type Result } from '@forgeax/engine-types';
3
- import { type RenderError } from '../errors/render';
4
- import { type RenderFeatureGraphicsPassDescriptor, type RenderFeaturePreparedGraphicsState } from '../features/prepared-graphics';
5
- import type { PreparedGraphicsResolvedResource, PreparedGraphicsResolvedSnapshot } from '../prepare/prepared-graphics-resolver';
6
- import { type PipelineState, type RenderSystemInternals } from '../render-system';
2
+ import type { RenderGraphExecutionPhase } from '../render-contract';
7
3
  import type { ExtractedLights } from '../render-system-extract';
8
- import type { RenderGraphExecutionPhase } from '../renderer';
4
+ import { type PipelineState, type RenderSystemInternals } from './render-context';
9
5
  export declare function graphExecutionPhase(passName: string): RenderGraphExecutionPhase;
10
6
  export declare function acquireSwapChainTarget(internals: RenderSystemInternals, pipelineState: PipelineState): {
11
7
  currentTexture: Texture;
@@ -13,41 +9,12 @@ export declare function acquireSwapChainTarget(internals: RenderSystemInternals,
13
9
  targetW: number;
14
10
  targetH: number;
15
11
  } | null;
16
- export interface RenderFeatureGraphicsRecordingLedger {
17
- pipeline: number;
18
- binding: number;
19
- vertex: number;
20
- index: number;
21
- draw: number;
22
- setPipeline?: (handle: unknown) => void;
23
- setBindGroup?: (handle: unknown) => void;
24
- setBindGroupAt?: (index: number, handle: unknown, dynamicOffsets?: readonly number[]) => void;
25
- resolveTargetBindings?: (resource: Extract<PreparedGraphicsResolvedResource, {
26
- readonly kind: 'bindings';
27
- }>) => unknown;
28
- setVertexBuffer?: (slot: number, handle: unknown) => void;
29
- setIndexBuffer?: (handle: unknown, format: 'uint16' | 'uint32') => void;
30
- recordDraw?: (command: Extract<RenderFeatureGraphicsPassDescriptor['draws'][number], {
31
- kind: 'draw';
32
- }>['command']) => void;
33
- recordDrawIndexed?: (command: Extract<RenderFeatureGraphicsPassDescriptor['draws'][number], {
34
- kind: 'draw-indexed';
35
- }>['command']) => void;
36
- recordDrawIndirect?: (buffer: unknown, offset: number) => void;
37
- recordDrawIndexedIndirect?: (buffer: unknown, offset: number) => void;
38
- }
39
- export declare function recordResolvedRenderFeatureGraphicsPass(featureIdentity: string, descriptor: RenderFeatureGraphicsPassDescriptor, state: RenderFeaturePreparedGraphicsState, resolved: PreparedGraphicsResolvedSnapshot, ledger: RenderFeatureGraphicsRecordingLedger, featureOrder?: number): Result<{
40
- readonly acceptedDrawCount: number;
41
- }, RenderError>;
42
- export declare function recordRenderFeatureGraphicsPass(featureIdentity: string, descriptor: RenderFeatureGraphicsPassDescriptor, state: RenderFeaturePreparedGraphicsState, ledger: RenderFeatureGraphicsRecordingLedger): Result<{
43
- readonly acceptedDrawCount: number;
44
- }, RenderError>;
45
12
  export declare function resolveShadowMapSize(internals: RenderSystemInternals, lights: ExtractedLights): number | undefined;
46
13
  /**
47
14
  * Resolve the per-tile size for the graph-owned spot atlas when a frame has
48
- * no directional shadow map. The typed spot pass still needs a non-zero
49
- * viewport even in a spot-only world; reusing the directional resolver would
50
- * incorrectly leave the shared `shadowMapSize` lane at zero.
15
+ * no directional shadow map. The typed spot pass still needs a non-zero
16
+ * viewport in a spot-only world; the directional resolver cannot provide
17
+ * that because it intentionally follows only the directional shadow lane.
51
18
  */
52
19
  export declare function resolveSpotShadowMapSize(internals: RenderSystemInternals, lights: ExtractedLights): number | undefined;
53
20
  //# sourceMappingURL=frame-targets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"frame-targets.d.ts","sourceRoot":"","sources":["../../src/record/frame-targets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame-targets.d.ts","sourceRoot":"","sources":["../../src/record/frame-targets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAoB,KAAK,aAAa,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEpG,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,yBAAyB,CAyC/E;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,qBAAqB,EAChC,aAAa,EAAE,aAAa,GAC3B;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA+CzF;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,qBAAqB,EAChC,MAAM,EAAE,eAAe,GACtB,MAAM,GAAG,SAAS,CAapB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,qBAAqB,EAChC,MAAM,EAAE,eAAe,GACtB,MAAM,GAAG,SAAS,CASpB"}
@@ -1,59 +1,71 @@
1
1
  import type { World } from '@forgeax/engine-ecs';
2
- import type { ExtractedEnvironment } from '../environment/extracted-environment';
2
+ import type { RenderReadLease } from '@forgeax/engine-ecs/projection';
3
+ import { type CurrentFrameObservationLease } from '@forgeax/engine-render-graph';
4
+ import { type Result, type TextureFormat } from '@forgeax/engine-rhi';
5
+ import { ObservationUnavailableError } from '../errors/render';
3
6
  import type { GpuDrivenProduction } from '../gpu-driven/production-raster';
4
- import type { CpuMultiViewVisibilityResult } from '../gpu-driven/view-gpu';
5
- import type { PersistentGpuDrivenState } from '../persistent-render-scene';
6
- import type { RenderSceneProjection, RenderSceneSubmissionDelta } from '../render-scene-projection';
7
- import type { RenderSystemInternals } from '../render-system';
8
- import type { CameraSnapshot, DispatchEntry, ExtractedLights, FogSnapshot, RenderableSnapshot } from '../render-system-extract';
9
- import type { RenderRecordPhase } from '../renderer';
10
- import type { TemporalCoverageSummary } from '../temporal-coverage';
11
- import type { TemporalFrameTransaction } from '../temporal-frame-transaction';
12
- import { type BindGroupCounts, type DirectionalShadowCache, type DispatchCounts, type RenderFrameState, type ValidatedRenderable } from './frame-snapshot';
7
+ import type { CameraSnapshot, RenderRecordPhase } from '../render-contract';
8
+ import type { DispatchEntry, ExtractedLights, RenderableSnapshot, SkyboxSnapshot, SkylightSnapshot } from '../render-system-extract';
9
+ import type { PersistentGpuDrivenState } from '../scene/render-scene';
10
+ import { type BindGroupCounts, type DispatchCounts, type FrameObservationSource, type RenderFrameState } from './frame-snapshot';
11
+ import type { RenderSystemInternals } from './render-context';
12
+ export type { FrameObservationSource } from './frame-snapshot';
13
+ export type FrameObservationReadback = (lease: CurrentFrameObservationLease) => Promise<Result<Uint8Array, Error>>;
14
+ export interface FrameObservationOptions {
15
+ readonly semantic: 'linear-hdr';
16
+ readonly readback: FrameObservationReadback;
17
+ }
18
+ export interface FrameObservationMetadata {
19
+ readonly format: TextureFormat;
20
+ readonly size: {
21
+ readonly width: number;
22
+ readonly height: number;
23
+ };
24
+ readonly usage: number;
25
+ readonly sample: number;
26
+ readonly frameId: number;
27
+ readonly lifetime: {
28
+ readonly frameId: number;
29
+ readonly state: 'active' | 'retired';
30
+ };
31
+ readonly pipelineId: 'forgeax::standard';
32
+ readonly backendId: string;
33
+ }
34
+ export interface FrameObservation {
35
+ readonly bytes: Uint8Array;
36
+ readonly metadata: FrameObservationMetadata;
37
+ }
38
+ export declare function observeCurrentFrame(options: FrameObservationOptions, source: FrameObservationSource | undefined, currentFrameId: number): Promise<Result<FrameObservation, ObservationUnavailableError>>;
39
+ import { type RenderFeatureGraphCandidate } from './typed-frame-graph';
40
+ /**
41
+ * A frame-local material table. Repeated snapshot objects share one UBO slot;
42
+ * each renderable keeps only the slot index used by each authored material.
43
+ */
44
+ export interface MaterialSlotPlan<T extends object> {
45
+ readonly slotIndices: readonly (readonly number[])[];
46
+ readonly slots: readonly T[];
47
+ /** Index of the first renderable that referenced each slot. */
48
+ readonly slotOwners: readonly number[];
49
+ }
50
+ /**
51
+ * Intern identical material snapshots into one frame-local slot table.
52
+ * Snapshot identity is the extract layer's invalidation token, so this keeps
53
+ * the same correctness boundary while avoiding duplicate payload assembly and
54
+ * upload for repeated scene instances.
55
+ */
56
+ export declare function buildMaterialSlotPlan<T extends object>(materialGroups: readonly (readonly T[])[]): MaterialSlotPlan<T>;
57
+ /**
58
+ * Return the largest complete renderable prefix supported by a shared
59
+ * mesh/material capacity. Mesh rows consume one slot per renderable; material
60
+ * rows use the deduplicated slot indices assigned in first-seen order.
61
+ */
62
+ export declare function findRenderablePrefixForSlotCapacity(materialSlotIndices: readonly (readonly number[])[], slotCapacity: number): number;
63
+ /** Count material slots reachable from a prefix of a first-seen slot plan. */
64
+ export declare function materialSlotCountForPrefix(materialSlotIndices: readonly (readonly number[])[], renderableCount: number): number;
13
65
  export type RecordProfileRunner = <T>(phase: RenderRecordPhase, action: () => T) => T;
14
- export declare function recordFrame(internals: RenderSystemInternals, world: World, cameras: CameraSnapshot[], lights: ExtractedLights, renderables: RenderableSnapshot[], transparentDispatch: readonly DispatchEntry[], frameState: RenderFrameState, dispatchCounts: DispatchCounts, bindGroupCounts: BindGroupCounts, environment: ExtractedEnvironment, postProcessParams: ReadonlyMap<string, Uint8Array>, worlds?: readonly World[], profilePhase?: RecordProfileRunner, gpuDriven?: {
66
+ export declare function recordFrame(internals: RenderSystemInternals, world: World, cameras: CameraSnapshot[], lights: ExtractedLights, renderables: RenderableSnapshot[], transparentDispatch: readonly DispatchEntry[], frameState: RenderFrameState, dispatchCounts: DispatchCounts, bindGroupCounts: BindGroupCounts, skylight: SkylightSnapshot | undefined, skylightCount: number, skybox: SkyboxSnapshot | undefined, skyboxCount: number, postProcessParams: ReadonlyMap<string, Uint8Array>, worlds?: readonly World[], profilePhase?: RecordProfileRunner, gpuDriven?: {
15
67
  readonly owner: GpuDrivenProduction;
16
68
  readonly scene: PersistentGpuDrivenState | undefined;
17
69
  readonly onCoverage: (ownsAll: boolean) => void;
18
- }, worldForRenderId?: (worldId: number) => World | undefined, temporal?: {
19
- readonly transaction: TemporalFrameTransaction;
20
- readonly projection: RenderSceneProjection;
21
- readonly coverage: TemporalCoverageSummary;
22
- readonly reactiveRevision?: number | undefined;
23
- readonly onSceneSubmitted?: ((delta: RenderSceneSubmissionDelta) => void) | undefined;
24
- }, fog?: FogSnapshot | undefined): boolean;
25
- export type DirectionalShadowCacheMissReason = 'no-entry' | 'shadow-map-size' | 'cascade-count' | 'pipeline' | 'graph-topology' | 'scene-mode' | 'asset-catalog' | 'mesh-residency' | 'world-state' | 'cascade-token';
26
- /**
27
- * @internal Pure cache decision owner used by recordFrame and its semantic
28
- * invalidation tests. Keeping the comparison separate makes the dangerous
29
- * path explicit: a hit is only reusable when every cascade token matches and
30
- * all frame/resource owners agree; a forced redraw is represented by
31
- * `reuse:false` even when one cascade happens to match.
32
- */
33
- export declare function evaluateDirectionalShadowCache(input: {
34
- readonly cached: DirectionalShadowCache | null;
35
- readonly cascadeTokens: readonly string[];
36
- readonly productionSceneToken: boolean;
37
- readonly shadowMapSize: number | undefined;
38
- readonly cascadeCount: number | undefined;
39
- readonly pipelineHandle: number;
40
- readonly graphTopologyKey: string | null;
41
- readonly assetCatalogEpoch: number;
42
- readonly meshResidencyEpoch: number;
43
- readonly worldStateMatches: boolean;
44
- }): {
45
- readonly reuse: boolean;
46
- readonly hitMask: number;
47
- readonly missReason: DirectionalShadowCacheMissReason | undefined;
48
- };
49
- /** @internal Deterministic cascade-local invalidation token producer. */
50
- export declare function buildCascadeLocalCacheTokens(input: {
51
- readonly lights: ExtractedLights;
52
- readonly visibility: CpuMultiViewVisibilityResult | undefined;
53
- readonly scene: PersistentGpuDrivenState | undefined;
54
- readonly validated: readonly ValidatedRenderable[];
55
- }): {
56
- readonly tokens: readonly string[];
57
- readonly productionSceneToken: boolean;
58
- };
70
+ }, renderReadLeases?: readonly RenderReadLease[], featureGraphCandidate?: RenderFeatureGraphCandidate, pointsLinesOwner?: import('./render-context').PointsLinesRecordOwner): boolean;
59
71
  //# sourceMappingURL=frame.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/record/frame.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAOjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAmBjF,OAAO,KAAK,EAAE,mBAAmB,EAA0B,MAAM,iCAAiC,CAAC;AACnG,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,WAAW,EAEX,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAiBlC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMrD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAwB,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAWpG,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,sBAAsB,EAE3B,KAAK,cAAc,EAGnB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EAEzB,MAAM,kBAAkB,CAAC;AA0B1B,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAsKtF,wBAAgB,WAAW,CACzB,SAAS,EAAE,qBAAqB,EAChC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,cAAc,EAAE,EACzB,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,kBAAkB,EAAE,EACjC,mBAAmB,EAAE,SAAS,aAAa,EAAE,EAC7C,UAAU,EAAE,gBAAgB,EAC5B,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,oBAAoB,EACjC,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAOlD,MAAM,GAAE,SAAS,KAAK,EAAY,EAClC,YAAY,CAAC,EAAE,mBAAmB,EAClC,SAAS,CAAC,EAAE;IACV,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACjD,EACD,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,GAAG,SAAS,EACzD,QAAQ,CAAC,EAAE;IACT,QAAQ,CAAC,WAAW,EAAE,wBAAwB,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACvF,EACD,GAAG,CAAC,EAAE,WAAW,GAAG,SAAS,GAC5B,OAAO,CAyqBT;AASD,MAAM,MAAM,gCAAgC,GACxC,UAAU,GACV,iBAAiB,GACjB,eAAe,GACf,UAAU,GACV,gBAAgB,GAChB,YAAY,GACZ,eAAe,GACf,gBAAgB,GAChB,aAAa,GACb,eAAe,CAAC;AA8DpB;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACpD,QAAQ,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC/C,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;CACrC,GAAG;IACF,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,gCAAgC,GAAG,SAAS,CAAC;CACnE,CAoCA;AAmCD,yEAAyE;AACzE,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,4BAA4B,GAAG,SAAS,CAAC;IAC9D,QAAQ,CAAC,KAAK,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACpD,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAA;CAAE,CAkGjF"}
1
+ {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/record/frame.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import type { World } from '@forgeax/engine-ecs';
2
2
  import { type Mat4 } from '@forgeax/engine-math';
3
- import type { RenderSystemInternals } from '../render-system';
4
- import type { CameraSnapshot, MaterialSnapshot, SkyboxSnapshot, SkylightSnapshot } from '../render-system-extract';
3
+ import type { CameraSnapshot } from '../render-contract';
4
+ import type { MaterialSnapshot, SkyboxSnapshot, SkylightSnapshot } from '../render-system-extract';
5
5
  import type { RenderFrameState } from './frame-snapshot';
6
+ import type { RenderSystemInternals } from './render-context';
6
7
  /** Convert pass-owned shader definitions into the manifest's canonical variant key. */
7
8
  export declare function variantSetFromDefines(defines: Readonly<Record<string, string>> | undefined): string | undefined;
8
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/record/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,sBAAsB,CAAC;AAMvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,uFAAuF;AACvF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GACpD,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,SAAS,EAC9D,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,GAAG,SAAS,GACzD,MAAM,CAGR;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,6BAA6B,CAAC,EACjE,gBAAgB,EAAE,MAAM,EACxB,WAAW,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC5C,IAAI,CAkBN;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,EAC3D,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC5C,IAAI,CAkBN;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,EAC1D,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC5C,IAAI,CAkBN;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,EACzD,aAAa,EAAE,MAAM,EACrB,mBAAmB,EAAE,MAAM,GAC1B,IAAI,CAUN;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,EACvD,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,MAAM,GAC1B,IAAI,CAUN;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,qBAAqB,EAChC,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,sCAAsC,CAAC,EAC1E,cAAc,EAAE,MAAM,GACrB,IAAI,CAgCN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAEzE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAQ9D;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAoBpE"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/record/helpers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,sBAAsB,CAAC;AAKvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACnG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,uFAAuF;AACvF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GACpD,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,SAAS,EAC9D,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,GAAG,SAAS,GACzD,MAAM,CAGR;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,6BAA6B,CAAC,EACjE,gBAAgB,EAAE,MAAM,EACxB,WAAW,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC5C,IAAI,CAkBN;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,EAC3D,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC5C,IAAI,CAkBN;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,EAC1D,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC5C,IAAI,CAkBN;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,EACzD,aAAa,EAAE,MAAM,EACrB,mBAAmB,EAAE,MAAM,GAC1B,IAAI,CAUN;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,EACvD,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,MAAM,GAC1B,IAAI,CAUN;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,qBAAqB,EAChC,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,sCAAsC,CAAC,EAC1E,cAAc,EAAE,MAAM,GACrB,IAAI,CAgCN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAEzE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAO9D;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAoBpE"}
@@ -1,7 +1,15 @@
1
+ import type { World } from '@forgeax/engine-ecs';
1
2
  import { type BindGroup, type RhiRenderPassEncoder } from '@forgeax/engine-rhi';
2
3
  import type { PassKind } from '@forgeax/engine-types';
3
- import type { _InternalRenderPipelineContext } from '../render-pipeline-context';
4
+ import type { PointsLinesRecordPlan } from '../points-lines/record';
4
5
  import type { MaterialSnapshot } from '../render-system-extract';
6
+ import type { _InternalRenderPipelineContext } from './render-context';
7
+ /**
8
+ * Issues a prepared Points/Lines draw into the already-open geometry pass.
9
+ * Pass lifetime, attachments, bind groups, and submission remain owned by the
10
+ * existing main-pass interpreter.
11
+ */
12
+ export declare function recordPointsLinesDraw(pass: RhiRenderPassEncoder, plan: PointsLinesRecordPlan): void;
5
13
  /**
6
14
  * feat-20260704 M3/w19: per-entity geometry (main colour) draw loop, extracted
7
15
  * verbatim from recordMainPass. Walks `c.validatedOrdered`, selects the
@@ -11,10 +19,10 @@ import type { MaterialSnapshot } from '../render-system-extract';
11
19
  * transparent entities are skipped here (drawn in the LDR blend sub-pass);
12
20
  * mixed meshes draw their opaque submeshes here and skip transparent submeshes.
13
21
  * The pass-selector match set, per-entity material-slot start table, MSAA sample
14
- * count, group(2) bind group, and the shared per-submesh material BG builder are
15
- * threaded in explicitly.
22
+ * count, Standard group(2) bind group, fallback mesh group(2) bind group, and
23
+ * the shared per-submesh material BG builder are threaded in explicitly.
16
24
  *
17
25
  * @internal
18
26
  */
19
- export declare function recordGeometryDraws(c: _InternalRenderPipelineContext, pass: RhiRenderPassEncoder, matchedIndices: Set<number> | null, materialSlotIndices: readonly (readonly number[])[], sampleCount: number, meshGroup2: BindGroup | null, resolveMaterialBindGroup: (materialSlot: number, submeshMaterial: MaterialSnapshot, entityKey: number) => BindGroup, passKind?: PassKind): void;
27
+ export declare function recordGeometryDraws(c: _InternalRenderPipelineContext, pass: RhiRenderPassEncoder, matchedMaterials: ReadonlyMap<number, ReadonlySet<number>> | null, materialSlotIndices: readonly (readonly number[])[], sampleCount: number, meshGroup2: BindGroup | null, meshBindGroup: BindGroup | null, resolveMaterialBindGroup: (materialSlot: number, submeshMaterial: MaterialSnapshot, entityKey: number, materialWorld: World) => BindGroup, passKind?: PassKind): void;
20
28
  //# sourceMappingURL=main-pass-geometry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main-pass-geometry.d.ts","sourceRoot":"","sources":["../../src/record/main-pass-geometry.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,SAAS,EAId,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAqB,MAAM,uBAAuB,CAAC;AAezE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAEjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AA0FjE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,8BAA8B,EACjC,IAAI,EAAE,oBAAoB,EAC1B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAClC,mBAAmB,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACnD,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,SAAS,GAAG,IAAI,EAC5B,wBAAwB,EAAE,CACxB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,gBAAgB,EACjC,SAAS,EAAE,MAAM,KACd,SAAS,EACd,QAAQ,GAAE,QAAoB,GAC7B,IAAI,CA0qBN"}
1
+ {"version":3,"file":"main-pass-geometry.d.ts","sourceRoot":"","sources":["../../src/record/main-pass-geometry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,KAAK,SAAS,EAId,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAqB,MAAM,uBAAuB,CAAC;AAWzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAGpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAgBjE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AA8EvE;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,qBAAqB,GAC1B,IAAI,CAON;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,8BAA8B,EACjC,IAAI,EAAE,oBAAoB,EAC1B,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EACjE,mBAAmB,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACnD,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,SAAS,GAAG,IAAI,EAC5B,aAAa,EAAE,SAAS,GAAG,IAAI,EAC/B,wBAAwB,EAAE,CACxB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,gBAAgB,EACjC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,KAAK,KACjB,SAAS,EACd,QAAQ,GAAE,QAAoB,GAC7B,IAAI,CAgtBN"}
@@ -1,15 +1,19 @@
1
1
  import type { World } from '@forgeax/engine-ecs';
2
- import { type BindGroup, type BindGroupLayout, type Buffer, type RenderPipeline, type Result, RhiError } from '@forgeax/engine-rhi';
3
- import type { DerivedMaterialInterface, Handle, MaterialRenderState, PassKind, PrimitiveTopology } from '@forgeax/engine-types';
4
- import type { DynamicTextureStore } from '../dynamic-texture-store';
5
- import type { GpuResourceStore } from '../gpu-resource-store';
2
+ import { type BindGroup, type BindGroupLayout, type Buffer, type RenderPipeline, type TextureView } from '@forgeax/engine-rhi';
3
+ import type { Handle, MaterialRenderState, ParamSchemaEntry, PrimitiveTopology, TextureAsset } from '@forgeax/engine-types';
4
+ import { derive } from '@forgeax/engine-types';
5
+ import type { GpuResidencyCache } from '../device/gpu-residency';
6
6
  import { type SkylightBindGroupResources } from '../ibl/skylight-bind-group';
7
- import type { PipelineState, RenderSystemRuntime } from '../render-system';
8
7
  import type { MaterialSnapshot } from '../render-system-extract';
9
- import type { MaterialRenderProjection } from '../renderer/material/assembly.js';
10
- import { type MaterialDrawRoute, type MaterialPipelineMiss, type MaterialPipelineReady, type MaterialReadiness, type MaterialRenderReady } from '../renderer/material/pipeline-projection.js';
11
8
  import type { BindGroupCounts, MaterialBgAssemblyCacheEntry } from './frame-snapshot';
12
- export { applyParamSnapshotToUbo, writeMaterialSnapshotPayload, } from './material-payload';
9
+ import { type PipelineState, type RenderSystemRuntime } from './render-context';
10
+ /**
11
+ * Keep line primitives visible when they share a depth plane with filled
12
+ * geometry. The same topology policy is consumed by the CPU and GPU-driven
13
+ * raster lanes so a mixed mesh does not change appearance when ownership
14
+ * moves between them.
15
+ */
16
+ export declare function geometryRenderStateForTopology(topology: PrimitiveTopology, renderState: MaterialRenderState | undefined): MaterialRenderState | undefined;
13
17
  /**
14
18
  * feat-20260604-learn-render-4.10-anti-aliasing-msaa M2 / w9: pick the static
15
19
  * unlit geometry pipeline handle for a (tonemapActive x msaaActive)
@@ -22,23 +26,6 @@ export { applyParamSnapshotToUbo, writeMaterialSnapshotPayload, } from './materi
22
26
  * a structured `shader-compile-failed` on the null-narrow.
23
27
  */
24
28
  export declare function selectGeometryPipeline(pipelineState: PipelineState, tonemapActive: boolean, msaaActive: boolean): RenderPipeline | null;
25
- /**
26
- * Resolve a cooked material projection for record. The record stage receives
27
- * the already-resolved projection and an immutable artifact lookup; it never
28
- * follows parent GUIDs, reads authored material state, or invokes a compiler.
29
- * A missing or mismatched artifact is an explicit route miss so callers cannot
30
- * silently substitute a default shader.
31
- */
32
- export declare function selectCookedMaterialPipelineForRender(args: {
33
- readonly projection: MaterialRenderProjection;
34
- readonly lookupArtifact: (key: string) => import('@forgeax/engine-shader').MaterialRuntimeArtifact | undefined;
35
- }): MaterialPipelineReady | MaterialPipelineMiss;
36
- /** Route a record-stage draw through the canonical readiness result. */
37
- export declare function selectMaterialDrawForRender<TPipeline>(args: {
38
- readonly readiness: MaterialReadiness;
39
- readonly buildPipeline: (ready: MaterialRenderReady) => TPipeline;
40
- readonly reportedDiagnosticKeys: Set<string>;
41
- }): MaterialDrawRoute<TPipeline>;
42
29
  /**
43
30
  * feat-city-glb Bug 5 (per-submesh transparency): true when EVERY submesh
44
31
  * material of the entity is transparent (blend). Used by the geometry pass to
@@ -69,49 +56,34 @@ export declare function entityHasTransparentSubmesh(source: {
69
56
  readonly material: MaterialSnapshot;
70
57
  readonly materials?: readonly MaterialSnapshot[];
71
58
  }): boolean;
59
+ export declare function residentTextureView(world: World, store: GpuResidencyCache, runtime: RenderSystemRuntime, handle: Handle<'TextureAsset', 'shared'>, worldId?: World | number): TextureView | undefined;
60
+ type DynamicTextureStore = import('@forgeax/engine-assets-runtime').DynamicTextureStore;
61
+ export declare function videoTextureView(world: World, store: DynamicTextureStore | undefined, runtime: RenderSystemRuntime, entityKey: number, clip: Handle<'VideoAsset', 'shared'>, highPerfAvailable: boolean): TextureView | undefined;
62
+ export declare const BUILTIN_USER_REGION_TEXTURE_FIELDS: readonly string[];
63
+ /** Derives the logical-content UV scale for an uploaded material texture. */
64
+ export declare function materialTextureUvScale(texture: Pick<TextureAsset, 'width' | 'height' | 'format'> | undefined): readonly [number, number];
72
65
  /**
73
- * Selects the PSO for a transparent (or any generic materialShaderId) draw
74
- * via the runtime's per-MaterialShader pipeline cache. Returns a
75
- * structured RhiError on cache miss / pending build -- the caller MUST
76
- * surface this via the error registry rather than substituting a silent
77
- * fallback (charter P3 explicit failure).
78
- *
79
- * The `getMaterialShaderPipeline` argument mirrors
80
- * {@link RenderSystemRuntime.getMaterialShaderPipeline}'s 9-arg signature
81
- * but is injected so the helper is unit-testable with a plain
82
- * `() => null` stand-in. The helper threads only the inputs the caller
83
- * already has on the dispatch entry -- it never reads from
84
- * MaterialAsset internals (plan-strategy section 5.6 gate R-H).
85
- *
86
- * @internal
66
+ * Appends the engine-owned scale for every built-in material texture binding.
67
+ * Asset dimensions remain logical; this is the sole record-stage projection
68
+ * from a bound texture asset to its shader sampling coordinates.
87
69
  */
88
- export declare function selectMaterialPipelineForRender(args: {
89
- readonly materialShaderId: string;
90
- readonly isHdr: boolean;
91
- readonly renderState?: MaterialRenderState | undefined;
92
- readonly topology?: PrimitiveTopology | undefined;
93
- readonly indexFormat?: 'uint16' | 'uint32' | undefined;
94
- readonly variantSet?: string | undefined;
95
- readonly sampleCount?: number | undefined;
96
- readonly getMaterialShaderPipeline: ((materialShaderId: string, isHdr: boolean, renderState?: MaterialRenderState, topology?: PrimitiveTopology, indexFormat?: 'uint16' | 'uint32', variantSet?: string, passKind?: PassKind, meshAttributes?: import('@forgeax/engine-types').VertexAttributeMap, sampleCount?: number) => RenderPipeline | null) | undefined;
97
- }): Result<RenderPipeline, RhiError>;
98
- export declare function residentTextureView(world: World, store: GpuResourceStore, runtime: RenderSystemRuntime, handle: Handle<'TextureAsset', 'shared'>, worldId?: number): any | undefined;
99
- export declare function videoTextureView(world: World, store: DynamicTextureStore | undefined, runtime: RenderSystemRuntime, entityKey: number, clip: Handle<'VideoAsset', 'shared'>, highPerfAvailable: boolean): any | undefined;
70
+ type MaterialUboPayload = ArrayBuffer | Uint8Array | Float32Array;
71
+ export declare function applyMaterialTextureUvScales(payload: MaterialUboPayload, material: MaterialSnapshot, world: World): void;
100
72
  /**
101
73
  * feat-20260621-learn-render-5-5-parallax M2 / w8 (D-3): ordered user-region
102
74
  * texture field names for a material's bind-group assembly, derived from the
103
75
  * shader's paramSchema via the `derive()` SSOT (insertion order = sampler/
104
- * texture pair order in derive().bglEntries). An unavailable schema yields no
105
- * inferred layout fields.
76
+ * texture pair order in derive().bglEntries). Falls back to the built-in 4
77
+ * fields when the schema is unavailable.
106
78
  */
107
- export declare function userRegionTextureFieldOrder(projection: DerivedMaterialInterface | undefined): readonly string[];
79
+ export declare function userRegionTextureFieldOrder(schema: Parameters<typeof derive>[0] | undefined): readonly string[];
108
80
  /**
109
81
  * feat-20260621-learn-render-5-5-parallax M2 / w8: the fallback texture view
110
82
  * for a user-region field when no handle is provided (graceful, charter P3).
111
83
  * normalTexture decodes to a flat tangent normal; everything else (baseColor,
112
84
  * MR, height, ...) uses the 1x1 white default (height white -> zero displacement).
113
85
  */
114
- export declare function defaultViewForUserRegionField(field: string, pipelineState: PipelineState): any;
86
+ export declare function defaultViewForUserRegionField(field: string, pipelineState: PipelineState): TextureView;
115
87
  /**
116
88
  * feat-20260527-sprite-nineslice M4 / w17 (AC-16): once-per-renderable
117
89
  * detection of "Transform.scale below the four 9-slice corner anchors". Pure
@@ -131,12 +103,70 @@ export declare function defaultViewForUserRegionField(field: string, pipelineSta
131
103
  * (sentinel `bottom < 0` for tile mode is consumed via abs()).
132
104
  * @param renderableIndex The entity index into the validated renderables list.
133
105
  * @param seenIndices The per-frame-state guard Set; entries are added on increment.
134
- * @param metrics The per-Renderer EngineMetrics counter.
106
+ * @param metrics The owner-provided EngineMetrics counter.
135
107
  * @internal — exported for unit-test access (w17).
136
108
  */
137
109
  export declare function detectNineSliceScaleTooSmall(transformWorld: Float32Array, slices: readonly [number, number, number, number], renderableIndex: number, seenIndices: Set<number>, metrics: {
138
110
  increment(name: string): void;
139
111
  }): void;
112
+ /**
113
+ * Build the 128-byte Material UBO payload for a PBR / unlit material entry
114
+ * (feat-20260527-sprite-nineslice M2 / w11; D-7 regression-net helper).
115
+ *
116
+ * Byte-for-byte equivalent to the legacy hard-coded PBR write path; each
117
+ * deviation is caught by `render-system-record-pbr-ubo-stable.test.ts`.
118
+ * The schema-driven paramSnapshot overlay (feat-20260523 M9-T05; AC-14)
119
+ * positions vec4 / f32 slots onto std140 [slot0 vec4, slot1 f32 metallic,
120
+ * slot1 f32 roughness] mirroring the engine-shipped default-standard-pbr
121
+ * Material struct.
122
+ */
123
+ export declare function buildPbrMaterialUboPayload(material: MaterialSnapshot): Uint8Array;
124
+ /**
125
+ * Write the standard material payload into caller-owned storage.
126
+ *
127
+ * The allocating wrapper above remains the byte-stable test/helper surface,
128
+ * while the frame recorder reuses one scratch slot for all materials. A
129
+ * scene with thousands of submeshes otherwise allocates one 304-byte
130
+ * Uint8Array per material per frame, creating avoidable GC pressure without
131
+ * changing GPU-visible bytes.
132
+ */
133
+ export declare function writePbrMaterialUboPayload(buf: Uint8Array | Float32Array, material: MaterialSnapshot): void;
134
+ /**
135
+ * Generic std140 UBO writer driven by `derive(paramSchema).uboLayout.entries`
136
+ * (feat-20260625-refactor-sprite-as-transparent-mesh M1 / w3, plan-strategy
137
+ * section 2 D-2).
138
+ *
139
+ * For each numeric entry in the schema, looks up the matching value in
140
+ * `paramSnapshot` and writes it at the std140 offset `derive` computed.
141
+ * Vec / color entries pull from `paramSnapshot[name]` as a `readonly number[]`
142
+ * (writes `min(size/4, value.length)` floats, padding with 0 if shorter for
143
+ * the field's declared width); scalar entries pull a single number.
144
+ *
145
+ * Behaviour:
146
+ * - schema or snapshot `undefined` -> no writes (caller may keep payload
147
+ * baseline).
148
+ * - missing snapshot field -> that field's bytes are left untouched
149
+ * (overlay semantics; same shape the legacy inline overlay had).
150
+ * - field type the writer cannot interpret (texture / sampler / storage_
151
+ * buffer / value-type mismatch) -> skipped silently; `derive` strips
152
+ * non-numeric entries from `uboLayout.entries` so the loop only iterates
153
+ * numeric fields.
154
+ *
155
+ * The writer reads `paramSnapshot` only -- it does NOT call
156
+ * `runtime.assets.get<MaterialAsset>` or cast `firstMaterial`. Gate R-H
157
+ * (plan-strategy section 5.6) bans those paths through
158
+ * `scripts/forgeax/check-render-record-no-material-asset-get.mjs`.
159
+ *
160
+ * standard-pbr remains byte-identical to `buildPbrMaterialUboPayload`: the
161
+ * engine's stock PBR material ships `paramSnapshot: undefined`, so this
162
+ * writer is a no-op on that path; the explicit field writes in the helper
163
+ * above cover every byte. User shaders (sprite-shaped 4 x vec4 or another
164
+ * paramSchema) get their fields written at the offsets declared by derive.
165
+ *
166
+ * @internal export-for-test (consumed inside `recordFrame` + render-system-
167
+ * record.test.ts; not part of the package's public surface).
168
+ */
169
+ export declare function applyParamSnapshotToUbo(payload: MaterialUboPayload, paramSchema: readonly ParamSchemaEntry[] | undefined, paramSnapshot: Readonly<Record<string, number | readonly number[] | string | undefined>> | undefined): void;
140
170
  /**
141
171
  * feat-20260704 M3/w19: shared per-submesh material bind-group assembly, hoisted
142
172
  * from the `buildPerSubmeshMaterialBg` closure inside recordMainPass so both the
@@ -158,16 +188,17 @@ export interface PerSubmeshMaterialBgDeps {
158
188
  readonly runtime: RenderSystemRuntime;
159
189
  readonly pipelineState: PipelineState;
160
190
  readonly world: World;
161
- readonly store: GpuResourceStore;
191
+ readonly store: GpuResidencyCache;
162
192
  readonly materialSlice: number;
163
193
  readonly videoHighPerfAvailable: boolean;
164
194
  readonly skylightResources: SkylightBindGroupResources;
165
195
  readonly materialBgShared: Map<string, WeakMap<object, unknown>>;
166
196
  /** Cross-frame final BG reuse keyed by the stable source material handle. */
167
- readonly materialBgAssemblyCache: Map<number, MaterialBgAssemblyCacheEntry>;
197
+ readonly materialBgAssemblyCache: Map<string, MaterialBgAssemblyCacheEntry>;
168
198
  readonly bindGroupCounts: BindGroupCounts;
169
199
  }
170
200
  /** @internal Exported only so buffer-generation invalidation stays regression-tested. */
171
201
  export declare function isMaterialBgAssemblyCacheHit(cached: MaterialBgAssemblyCacheEntry | undefined, material: MaterialSnapshot, materialBgl: BindGroupLayout, materialBuffer: Buffer, skylightResources: SkylightBindGroupResources, materialResourceEpoch: number): cached is MaterialBgAssemblyCacheEntry;
172
- export declare function buildPerSubmeshMaterialBg(deps: PerSubmeshMaterialBgDeps, submeshMaterial: MaterialSnapshot, entityKey: number): BindGroup;
202
+ export declare function buildPerSubmeshMaterialBg(deps: PerSubmeshMaterialBgDeps, submeshMaterial: MaterialSnapshot, entityKey: number, materialWorld?: World): BindGroup;
203
+ export {};
173
204
  //# sourceMappingURL=main-pass-material.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main-pass-material.d.ts","sourceRoot":"","sources":["../../src/record/main-pass-material.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main-pass-material.d.ts","sourceRoot":"","sources":["../../src/record/main-pass-material.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAgB,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAK/D,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,cAAc,EAGnB,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,KAAK,EACV,MAAM,EAEN,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EAEjB,YAAY,EACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAiD,MAAM,uBAAuB,CAAC;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EAEzB,MAAM,kBAAkB,CAAC;AA2C1B;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,iBAAiB,EAC3B,WAAW,EAAE,mBAAmB,GAAG,SAAS,GAC3C,mBAAmB,GAAG,SAAS,CAOjC;AAED;;;;;;;;;;GAUG;AAYH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,OAAO,GAClB,cAAc,GAAG,IAAI,CAKvB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAClD,GAAG,OAAO,CAOV;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAClD,GAAG,OAAO,CAOV;AAqBD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,EACxC,OAAO,GAAE,KAAK,GAAG,MAAc,GAC9B,WAAW,GAAG,SAAS,CAczB;AAqCD,KAAK,mBAAmB,GAAG,OAAO,gCAAgC,EAAE,mBAAmB,CAAC;AA8CxF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,mBAAmB,GAAG,SAAS,EACtC,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,EACpC,iBAAiB,EAAE,OAAO,GACzB,WAAW,GAAG,SAAS,CA8CzB;AAMD,eAAO,MAAM,kCAAkC,EAAE,SAAS,MAAM,EAO/D,CAAC;AA2BF,6EAA6E;AAC7E,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,GAAG,SAAS,GACrE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAG3B;AAWD;;;;GAIG;AACH,KAAK,kBAAkB,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAC;AASlE,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE,KAAK,GACX,IAAI,CAgFN;AAqBD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAC/C,SAAS,MAAM,EAAE,CAInB;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,aAAa,GAC3B,WAAW,CAIb;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,4BAA4B,CAC1C,cAAc,EAAE,YAAY,EAC5B,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACjD,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,OAAO,EAAE;IAAE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACzC,IAAI,CAaN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,UAAU,CAIjF;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,UAAU,GAAG,YAAY,EAC9B,QAAQ,EAAE,gBAAgB,GACzB,IAAI,CA4FN;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,SAAS,gBAAgB,EAAE,GAAG,SAAS,EACpD,aAAa,EACT,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,GACzE,SAAS,GACZ,IAAI,CA+BN;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,iBAAiB,EAAE,0BAA0B,CAAC;IACvD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACjE,6EAA6E;IAC7E,QAAQ,CAAC,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;IAC5E,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC3C;AAED,yFAAyF;AACzF,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,4BAA4B,GAAG,SAAS,EAChD,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EAAE,eAAe,EAC5B,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,0BAA0B,EAC7C,qBAAqB,EAAE,MAAM,GAC5B,MAAM,IAAI,4BAA4B,CAcxC;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,wBAAwB,EAC9B,eAAe,EAAE,gBAAgB,EACjC,SAAS,EAAE,MAAM,EACjB,aAAa,GAAE,KAAkB,GAChC,SAAS,CA2KX"}
@@ -1,7 +1,32 @@
1
+ import type { World } from '@forgeax/engine-ecs';
1
2
  import { type BindGroup, type RhiRenderPassEncoder } from '@forgeax/engine-rhi';
2
3
  import { type SkylightBindGroupResources } from '../ibl/skylight-bind-group';
3
- import type { _InternalRenderPipelineContext } from '../render-pipeline-context';
4
- import type { MaterialSnapshot } from '../render-system-extract';
4
+ import type { InstanceBufferCacheEntry } from '../instance-buffer-cache';
5
+ import type { MaterialSnapshot, SpriteInstancesSnapshot } from '../render-system-extract';
6
+ import type { _InternalRenderPipelineContext } from './render-context';
7
+ export type { SpriteInstancesSnapshot };
8
+ /**
9
+ * Build the interleaved sprite instance payload consumed by this record owner.
10
+ * The extract stage validates the two packed arrays before they reach this
11
+ * function, so the record path has one source of count-mismatch errors.
12
+ */
13
+ export declare function interleaveSpriteInstanceBuffer(transforms: Float32Array, regions: Float32Array, includePrevious?: boolean): Float32Array;
14
+ /**
15
+ * Check whether the existing per-entity sprite buffer still matches the
16
+ * extract snapshot and interleaved byte count.
17
+ */
18
+ export declare function spriteInstancesCacheHit(entry: InstanceBufferCacheEntry | undefined, snapshot: SpriteInstancesSnapshot, requestedBytes: number): boolean;
19
+ /**
20
+ * Decide whether the LDR record needs the transparent sprite sub-pass. This
21
+ * remains beside the sprite record owner so the frame stage and draw stage
22
+ * share the same transparent-material rule.
23
+ */
24
+ export declare function computeSplitLdrSprite(validatedOrdered: readonly ({
25
+ readonly source: {
26
+ readonly material: MaterialSnapshot;
27
+ readonly materials?: readonly MaterialSnapshot[];
28
+ };
29
+ } | undefined)[], tonemapActive: boolean): boolean;
5
30
  /**
6
31
  * feat-20260704 M3/w19: LDR sprite split sub-pass, extracted verbatim from
7
32
  * recordMainPass. Runs after the geometry pass when there are sprite / LDR
@@ -14,5 +39,5 @@ import type { MaterialSnapshot } from '../render-system-extract';
14
39
  *
15
40
  * @internal
16
41
  */
17
- export declare function recordSpritePass(c: _InternalRenderPipelineContext, pass: RhiRenderPassEncoder, matchedIndices: Set<number> | null, materialSlotIndices: readonly (readonly number[])[], sampleCount: number, resolveMaterialBindGroup: (materialSlot: number, submeshMaterial: MaterialSnapshot, entityKey: number) => BindGroup, skylightResources: SkylightBindGroupResources, graphPass?: RhiRenderPassEncoder): boolean;
42
+ export declare function recordSpritePass(c: _InternalRenderPipelineContext, pass: RhiRenderPassEncoder, matchedIndices: Set<number> | null, materialSlotIndices: readonly (readonly number[])[], sampleCount: number, resolveMaterialBindGroup: (materialSlot: number, submeshMaterial: MaterialSnapshot, entityKey: number, materialWorld: World) => BindGroup, skylightResources: SkylightBindGroupResources, graphPass?: RhiRenderPassEncoder): boolean;
18
43
  //# sourceMappingURL=main-pass-sprite-draws.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main-pass-sprite-draws.d.ts","sourceRoot":"","sources":["../../src/record/main-pass-sprite-draws.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,SAAS,EAId,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,4BAA4B,CAAC;AAMpC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAEjF,OAAO,KAAK,EAAE,gBAAgB,EAA2B,MAAM,0BAA0B,CAAC;AAW1F;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,8BAA8B,EACjC,IAAI,EAAE,oBAAoB,EAC1B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAClC,mBAAmB,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACnD,WAAW,EAAE,MAAM,EACnB,wBAAwB,EAAE,CACxB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,gBAAgB,EACjC,SAAS,EAAE,MAAM,KACd,SAAS,EACd,iBAAiB,EAAE,0BAA0B,EAC7C,SAAS,CAAC,EAAE,oBAAoB,GAC/B,OAAO,CAiPT"}
1
+ {"version":3,"file":"main-pass-sprite-draws.d.ts","sourceRoot":"","sources":["../../src/record/main-pass-sprite-draws.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,KAAK,SAAS,EAId,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAOzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAU1F,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAGvE,YAAY,EAAE,uBAAuB,EAAE,CAAC;AAExC;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,YAAY,EACxB,OAAO,EAAE,YAAY,EACrB,eAAe,UAAQ,GACtB,YAAY,CAoBd;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,wBAAwB,GAAG,SAAS,EAC3C,QAAQ,EAAE,uBAAuB,EACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAMT;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,SAAS,CACvB;IACE,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;KAClD,CAAC;CACH,GACD,SAAS,CACZ,EAAE,EACH,aAAa,EAAE,OAAO,GACrB,OAAO,CAYT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,8BAA8B,EACjC,IAAI,EAAE,oBAAoB,EAC1B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAClC,mBAAmB,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACnD,WAAW,EAAE,MAAM,EACnB,wBAAwB,EAAE,CACxB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,gBAAgB,EACjC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,KAAK,KACjB,SAAS,EACd,iBAAiB,EAAE,0BAA0B,EAC7C,SAAS,CAAC,EAAE,oBAAoB,GAC/B,OAAO,CA4NT"}
@@ -1,6 +1,6 @@
1
1
  import { type RhiRenderPassEncoder, type TextureView } from '@forgeax/engine-rhi';
2
2
  import type { PassKind, PassSelector } from '@forgeax/engine-types';
3
- import type { _InternalRenderPipelineContext } from '../render-pipeline-context';
3
+ import type { _InternalRenderPipelineContext } from './render-context';
4
4
  export type MainPassOptions = {
5
5
  readonly colorViews?: readonly (TextureView | null)[];
6
6
  readonly colorFormats?: readonly GPUTextureFormat[];
@@ -1 +1 @@
1
- {"version":3,"file":"main-pass.d.ts","sourceRoot":"","sources":["../../src/record/main-pass.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAU,QAAQ,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAM5E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAiBjF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC;IACtD,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACjE,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,8BAA8B,EACjC,QAAQ,CAAC,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,eAAe,EACzB,SAAS,CAAC,EAAE,oBAAoB,GAC/B,IAAI,CAghBN;AAED,wBAAgB,cAAc,CAC5B,CAAC,EAAE,8BAA8B,EACjC,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,CAAC,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,eAAe,GACxB,IAAI,CAEN"}
1
+ {"version":3,"file":"main-pass.d.ts","sourceRoot":"","sources":["../../src/record/main-pass.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAU,QAAQ,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAkB5E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AASvE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC;IACtD,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACjE,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,8BAA8B,EACjC,QAAQ,CAAC,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,eAAe,EACzB,SAAS,CAAC,EAAE,oBAAoB,GAC/B,IAAI,CAiiBN;AAED,wBAAgB,cAAc,CAC5B,CAAC,EAAE,8BAA8B,EACjC,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,CAAC,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,eAAe,GACxB,IAAI,CAEN"}