@forgeax/engine-render 0.1.2

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 (1172) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +1019 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/__tests__/analytic-sky-contract.test.d.ts +2 -0
  5. package/dist/__tests__/analytic-sky-contract.test.d.ts.map +1 -0
  6. package/dist/__tests__/analytic-sky-falsify.test.d.ts +2 -0
  7. package/dist/__tests__/analytic-sky-falsify.test.d.ts.map +1 -0
  8. package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts +2 -0
  9. package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts.map +1 -0
  10. package/dist/__tests__/authoring-path.unit.test.d.ts +2 -0
  11. package/dist/__tests__/authoring-path.unit.test.d.ts.map +1 -0
  12. package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts +2 -0
  13. package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts.map +1 -0
  14. package/dist/__tests__/backend-selection.integration.test.d.ts +2 -0
  15. package/dist/__tests__/backend-selection.integration.test.d.ts.map +1 -0
  16. package/dist/__tests__/callback-inference.test-d.d.ts +2 -0
  17. package/dist/__tests__/callback-inference.test-d.d.ts.map +1 -0
  18. package/dist/__tests__/camera-temporal.test-d.d.ts +2 -0
  19. package/dist/__tests__/camera-temporal.test-d.d.ts.map +1 -0
  20. package/dist/__tests__/camera-temporal.test.d.ts +2 -0
  21. package/dist/__tests__/camera-temporal.test.d.ts.map +1 -0
  22. package/dist/__tests__/cluster-binner.test.d.ts +2 -0
  23. package/dist/__tests__/cluster-binner.test.d.ts.map +1 -0
  24. package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts +2 -0
  25. package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts.map +1 -0
  26. package/dist/__tests__/construct-renderer-identity.unit.test.d.ts +2 -0
  27. package/dist/__tests__/construct-renderer-identity.unit.test.d.ts.map +1 -0
  28. package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts +2 -0
  29. package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts.map +1 -0
  30. package/dist/__tests__/direct-light-snapshot.unit.test.d.ts +2 -0
  31. package/dist/__tests__/direct-light-snapshot.unit.test.d.ts.map +1 -0
  32. package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts +2 -0
  33. package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts.map +1 -0
  34. package/dist/__tests__/environment-inspection.test.d.ts +2 -0
  35. package/dist/__tests__/environment-inspection.test.d.ts.map +1 -0
  36. package/dist/__tests__/factory-contract.integration.test.d.ts +2 -0
  37. package/dist/__tests__/factory-contract.integration.test.d.ts.map +1 -0
  38. package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts +2 -0
  39. package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts.map +1 -0
  40. package/dist/__tests__/fog-ai-user.fixture.d.ts +2 -0
  41. package/dist/__tests__/fog-ai-user.fixture.d.ts.map +1 -0
  42. package/dist/__tests__/fog-custom-render-feature.fixture.d.ts +16 -0
  43. package/dist/__tests__/fog-custom-render-feature.fixture.d.ts.map +1 -0
  44. package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts +2 -0
  45. package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts.map +1 -0
  46. package/dist/__tests__/fog-inspection.integration.test.d.ts +2 -0
  47. package/dist/__tests__/fog-inspection.integration.test.d.ts.map +1 -0
  48. package/dist/__tests__/fog-owner-state.integration.test.d.ts +2 -0
  49. package/dist/__tests__/fog-owner-state.integration.test.d.ts.map +1 -0
  50. package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts +2 -0
  51. package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts.map +1 -0
  52. package/dist/__tests__/fog-public-surface.integration.test.d.ts +2 -0
  53. package/dist/__tests__/fog-public-surface.integration.test.d.ts.map +1 -0
  54. package/dist/__tests__/fog-ray-contract.integration.test.d.ts +2 -0
  55. package/dist/__tests__/fog-ray-contract.integration.test.d.ts.map +1 -0
  56. package/dist/__tests__/fog-source-absence.integration.test.d.ts +2 -0
  57. package/dist/__tests__/fog-source-absence.integration.test.d.ts.map +1 -0
  58. package/dist/__tests__/fog-temporal.integration.test.d.ts +2 -0
  59. package/dist/__tests__/fog-temporal.integration.test.d.ts.map +1 -0
  60. package/dist/__tests__/frame-chain.unit.test.d.ts +2 -0
  61. package/dist/__tests__/frame-chain.unit.test.d.ts.map +1 -0
  62. package/dist/__tests__/frame-observation.contract.test.d.ts +2 -0
  63. package/dist/__tests__/frame-observation.contract.test.d.ts.map +1 -0
  64. package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts +2 -0
  65. package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts.map +1 -0
  66. package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts +6 -0
  67. package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts.map +1 -0
  68. package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts +2 -0
  69. package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts.map +1 -0
  70. package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts +2 -0
  71. package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts.map +1 -0
  72. package/dist/__tests__/gpu-driven-production.integration.test.d.ts +2 -0
  73. package/dist/__tests__/gpu-driven-production.integration.test.d.ts.map +1 -0
  74. package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts +2 -0
  75. package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts.map +1 -0
  76. package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts +12 -0
  77. package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts.map +1 -0
  78. package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts +2 -0
  79. package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts.map +1 -0
  80. package/dist/__tests__/gpu-driven-view.browser.test.d.ts +2 -0
  81. package/dist/__tests__/gpu-driven-view.browser.test.d.ts.map +1 -0
  82. package/dist/__tests__/gpu-driven-view.dawn.test.d.ts +2 -0
  83. package/dist/__tests__/gpu-driven-view.dawn.test.d.ts.map +1 -0
  84. package/dist/__tests__/gpu-driven-view.unit.test.d.ts +2 -0
  85. package/dist/__tests__/gpu-driven-view.unit.test.d.ts.map +1 -0
  86. package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts +2 -0
  87. package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts.map +1 -0
  88. package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts +2 -0
  89. package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts.map +1 -0
  90. package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts +7 -0
  91. package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts.map +1 -0
  92. package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts +2 -0
  93. package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts.map +1 -0
  94. package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts +2 -0
  95. package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts.map +1 -0
  96. package/dist/__tests__/gpu-scene-schema.unit.test.d.ts +2 -0
  97. package/dist/__tests__/gpu-scene-schema.unit.test.d.ts.map +1 -0
  98. package/dist/__tests__/gpu-scene.dawn.test.d.ts +2 -0
  99. package/dist/__tests__/gpu-scene.dawn.test.d.ts.map +1 -0
  100. package/dist/__tests__/gpu-scene.unit.test.d.ts +2 -0
  101. package/dist/__tests__/gpu-scene.unit.test.d.ts.map +1 -0
  102. package/dist/__tests__/hdrp-pipeline.unit.test.d.ts +2 -0
  103. package/dist/__tests__/hdrp-pipeline.unit.test.d.ts.map +1 -0
  104. package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts +2 -0
  105. package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts.map +1 -0
  106. package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts +2 -0
  107. package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts.map +1 -0
  108. package/dist/__tests__/injection-kind-owner.test-d.d.ts +2 -0
  109. package/dist/__tests__/injection-kind-owner.test-d.d.ts.map +1 -0
  110. package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts +2 -0
  111. package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts.map +1 -0
  112. package/dist/__tests__/light-buffer-layout.unit.test.d.ts +2 -0
  113. package/dist/__tests__/light-buffer-layout.unit.test.d.ts.map +1 -0
  114. package/dist/__tests__/material-contract-inventory.unit.test.d.ts +2 -0
  115. package/dist/__tests__/material-contract-inventory.unit.test.d.ts.map +1 -0
  116. package/dist/__tests__/material-cooked-projection.unit.test.d.ts +2 -0
  117. package/dist/__tests__/material-cooked-projection.unit.test.d.ts.map +1 -0
  118. package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts +2 -0
  119. package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts.map +1 -0
  120. package/dist/__tests__/material-derived-payload.integration.test.d.ts +2 -0
  121. package/dist/__tests__/material-derived-payload.integration.test.d.ts.map +1 -0
  122. package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts +2 -0
  123. package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts.map +1 -0
  124. package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts +2 -0
  125. package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts.map +1 -0
  126. package/dist/__tests__/material-stride-surface.unit.test.d.ts +2 -0
  127. package/dist/__tests__/material-stride-surface.unit.test.d.ts.map +1 -0
  128. package/dist/__tests__/materials.unit.test.d.ts +2 -0
  129. package/dist/__tests__/materials.unit.test.d.ts.map +1 -0
  130. package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts +2 -0
  131. package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts.map +1 -0
  132. package/dist/__tests__/mesh-material-bindings.unit.test.d.ts +2 -0
  133. package/dist/__tests__/mesh-material-bindings.unit.test.d.ts.map +1 -0
  134. package/dist/__tests__/mesh-stride-surface.unit.test.d.ts +2 -0
  135. package/dist/__tests__/mesh-stride-surface.unit.test.d.ts.map +1 -0
  136. package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts +2 -0
  137. package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts.map +1 -0
  138. package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts +2 -0
  139. package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts.map +1 -0
  140. package/dist/__tests__/morph-visual-evidence.integration.test.d.ts +2 -0
  141. package/dist/__tests__/morph-visual-evidence.integration.test.d.ts.map +1 -0
  142. package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts +2 -0
  143. package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts.map +1 -0
  144. package/dist/__tests__/param-schema-projection-census.unit.test.d.ts +2 -0
  145. package/dist/__tests__/param-schema-projection-census.unit.test.d.ts.map +1 -0
  146. package/dist/__tests__/persistent-render-scene.unit.test.d.ts +2 -0
  147. package/dist/__tests__/persistent-render-scene.unit.test.d.ts.map +1 -0
  148. package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts +2 -0
  149. package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts.map +1 -0
  150. package/dist/__tests__/pipeline-pass-trace.test.d.ts +2 -0
  151. package/dist/__tests__/pipeline-pass-trace.test.d.ts.map +1 -0
  152. package/dist/__tests__/pipeline-stage-owner.test-d.d.ts +2 -0
  153. package/dist/__tests__/pipeline-stage-owner.test-d.d.ts.map +1 -0
  154. package/dist/__tests__/plugin.test.d.ts +2 -0
  155. package/dist/__tests__/plugin.test.d.ts.map +1 -0
  156. package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts +2 -0
  157. package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts.map +1 -0
  158. package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts +2 -0
  159. package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts.map +1 -0
  160. package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts +2 -0
  161. package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts.map +1 -0
  162. package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts +2 -0
  163. package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts.map +1 -0
  164. package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts +2 -0
  165. package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts.map +1 -0
  166. package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts +2 -0
  167. package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts.map +1 -0
  168. package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts +2 -0
  169. package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts.map +1 -0
  170. package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts +2 -0
  171. package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts.map +1 -0
  172. package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts +2 -0
  173. package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts.map +1 -0
  174. package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts +2 -0
  175. package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts.map +1 -0
  176. package/dist/__tests__/prepared-graphics-store.unit.test.d.ts +2 -0
  177. package/dist/__tests__/prepared-graphics-store.unit.test.d.ts.map +1 -0
  178. package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts +2 -0
  179. package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts.map +1 -0
  180. package/dist/__tests__/profiler-default-off.test.d.ts +2 -0
  181. package/dist/__tests__/profiler-default-off.test.d.ts.map +1 -0
  182. package/dist/__tests__/profiler-phase-catalog.test.d.ts +2 -0
  183. package/dist/__tests__/profiler-phase-catalog.test.d.ts.map +1 -0
  184. package/dist/__tests__/profiler-phase-integration.test.d.ts +2 -0
  185. package/dist/__tests__/profiler-phase-integration.test.d.ts.map +1 -0
  186. package/dist/__tests__/profiler-phase-token.test.d.ts +2 -0
  187. package/dist/__tests__/profiler-phase-token.test.d.ts.map +1 -0
  188. package/dist/__tests__/public-pipeline-id.test-d.d.ts +2 -0
  189. package/dist/__tests__/public-pipeline-id.test-d.d.ts.map +1 -0
  190. package/dist/__tests__/public-surface.test-d.d.ts +2 -0
  191. package/dist/__tests__/public-surface.test-d.d.ts.map +1 -0
  192. package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts +2 -0
  193. package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts.map +1 -0
  194. package/dist/__tests__/render-dispatch-membership.unit.test.d.ts +2 -0
  195. package/dist/__tests__/render-dispatch-membership.unit.test.d.ts.map +1 -0
  196. package/dist/__tests__/render-error-code-owner.test-d.d.ts +2 -0
  197. package/dist/__tests__/render-error-code-owner.test-d.d.ts.map +1 -0
  198. package/dist/__tests__/render-error-detail-ssot.test-d.d.ts +2 -0
  199. package/dist/__tests__/render-error-detail-ssot.test-d.d.ts.map +1 -0
  200. package/dist/__tests__/render-error-exhaustive.test-d.d.ts +2 -0
  201. package/dist/__tests__/render-error-exhaustive.test-d.d.ts.map +1 -0
  202. package/dist/__tests__/render-feature-assembly.test-d.d.ts +2 -0
  203. package/dist/__tests__/render-feature-assembly.test-d.d.ts.map +1 -0
  204. package/dist/__tests__/render-feature-construction.unit.test.d.ts +2 -0
  205. package/dist/__tests__/render-feature-construction.unit.test.d.ts.map +1 -0
  206. package/dist/__tests__/render-feature-context.test-d.d.ts +2 -0
  207. package/dist/__tests__/render-feature-context.test-d.d.ts.map +1 -0
  208. package/dist/__tests__/render-feature-contract.test-d.d.ts +2 -0
  209. package/dist/__tests__/render-feature-contract.test-d.d.ts.map +1 -0
  210. package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts +2 -0
  211. package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts.map +1 -0
  212. package/dist/__tests__/render-feature-docs.unit.test.d.ts +2 -0
  213. package/dist/__tests__/render-feature-docs.unit.test.d.ts.map +1 -0
  214. package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts +2 -0
  215. package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts.map +1 -0
  216. package/dist/__tests__/render-feature-errors.unit.test.d.ts +2 -0
  217. package/dist/__tests__/render-feature-errors.unit.test.d.ts.map +1 -0
  218. package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts +2 -0
  219. package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts.map +1 -0
  220. package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts +2 -0
  221. package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts.map +1 -0
  222. package/dist/__tests__/render-feature-graph.integration.test.d.ts +2 -0
  223. package/dist/__tests__/render-feature-graph.integration.test.d.ts.map +1 -0
  224. package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts +2 -0
  225. package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts.map +1 -0
  226. package/dist/__tests__/render-feature-order.unit.test.d.ts +2 -0
  227. package/dist/__tests__/render-feature-order.unit.test.d.ts.map +1 -0
  228. package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts +2 -0
  229. package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts.map +1 -0
  230. package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts +2 -0
  231. package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts.map +1 -0
  232. package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts +2 -0
  233. package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts.map +1 -0
  234. package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts +2 -0
  235. package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts.map +1 -0
  236. package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts +2 -0
  237. package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts.map +1 -0
  238. package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts +2 -0
  239. package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts.map +1 -0
  240. package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts +2 -0
  241. package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts.map +1 -0
  242. package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts +2 -0
  243. package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts.map +1 -0
  244. package/dist/__tests__/render-feature-public-surface.test-d.d.ts +2 -0
  245. package/dist/__tests__/render-feature-public-surface.test-d.d.ts.map +1 -0
  246. package/dist/__tests__/render-feature-retry.unit.test.d.ts +2 -0
  247. package/dist/__tests__/render-feature-retry.unit.test.d.ts.map +1 -0
  248. package/dist/__tests__/render-feature-scheduling.unit.test.d.ts +2 -0
  249. package/dist/__tests__/render-feature-scheduling.unit.test.d.ts.map +1 -0
  250. package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts +2 -0
  251. package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts.map +1 -0
  252. package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts +2 -0
  253. package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts.map +1 -0
  254. package/dist/__tests__/render-feature-staging.unit.test.d.ts +2 -0
  255. package/dist/__tests__/render-feature-staging.unit.test.d.ts.map +1 -0
  256. package/dist/__tests__/render-feature-visibility-context.test-d.d.ts +2 -0
  257. package/dist/__tests__/render-feature-visibility-context.test-d.d.ts.map +1 -0
  258. package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts +2 -0
  259. package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts.map +1 -0
  260. package/dist/__tests__/render-feature-zero-work.unit.test.d.ts +2 -0
  261. package/dist/__tests__/render-feature-zero-work.unit.test.d.ts.map +1 -0
  262. package/dist/__tests__/render-graph-compute-raster-gpu.d.ts +7 -0
  263. package/dist/__tests__/render-graph-compute-raster-gpu.d.ts.map +1 -0
  264. package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts +2 -0
  265. package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts.map +1 -0
  266. package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts +2 -0
  267. package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts.map +1 -0
  268. package/dist/__tests__/render-graph-hzb-gpu.d.ts +7 -0
  269. package/dist/__tests__/render-graph-hzb-gpu.d.ts.map +1 -0
  270. package/dist/__tests__/render-graph-hzb.browser.test.d.ts +2 -0
  271. package/dist/__tests__/render-graph-hzb.browser.test.d.ts.map +1 -0
  272. package/dist/__tests__/render-graph-hzb.dawn.test.d.ts +2 -0
  273. package/dist/__tests__/render-graph-hzb.dawn.test.d.ts.map +1 -0
  274. package/dist/__tests__/render-graph-primitives.unit.test.d.ts +2 -0
  275. package/dist/__tests__/render-graph-primitives.unit.test.d.ts.map +1 -0
  276. package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts +12 -0
  277. package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts.map +1 -0
  278. package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts +2 -0
  279. package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts.map +1 -0
  280. package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts +2 -0
  281. package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts.map +1 -0
  282. package/dist/__tests__/render-scene-projection.unit.test.d.ts +2 -0
  283. package/dist/__tests__/render-scene-projection.unit.test.d.ts.map +1 -0
  284. package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts +2 -0
  285. package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts.map +1 -0
  286. package/dist/__tests__/renderer-lifecycle.integration.test.d.ts +2 -0
  287. package/dist/__tests__/renderer-lifecycle.integration.test.d.ts.map +1 -0
  288. package/dist/__tests__/renderer-render-scene-public.test-d.d.ts +2 -0
  289. package/dist/__tests__/renderer-render-scene-public.test-d.d.ts.map +1 -0
  290. package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts +2 -0
  291. package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts.map +1 -0
  292. package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts +2 -0
  293. package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts.map +1 -0
  294. package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts +2 -0
  295. package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts.map +1 -0
  296. package/dist/__tests__/shader-stage-surface.unit.test.d.ts +2 -0
  297. package/dist/__tests__/shader-stage-surface.unit.test.d.ts.map +1 -0
  298. package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts +2 -0
  299. package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts.map +1 -0
  300. package/dist/__tests__/sun-snapshot-consumers.test.d.ts +2 -0
  301. package/dist/__tests__/sun-snapshot-consumers.test.d.ts.map +1 -0
  302. package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts +2 -0
  303. package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts.map +1 -0
  304. package/dist/__tests__/surface-configuration.unit.test.d.ts +2 -0
  305. package/dist/__tests__/surface-configuration.unit.test.d.ts.map +1 -0
  306. package/dist/__tests__/taa-history-store.unit.test.d.ts +2 -0
  307. package/dist/__tests__/taa-history-store.unit.test.d.ts.map +1 -0
  308. package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts +2 -0
  309. package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts.map +1 -0
  310. package/dist/__tests__/temporal-inspection.unit.test.d.ts +2 -0
  311. package/dist/__tests__/temporal-inspection.unit.test.d.ts.map +1 -0
  312. package/dist/__tests__/texture-usage-surface.unit.test.d.ts +2 -0
  313. package/dist/__tests__/texture-usage-surface.unit.test.d.ts.map +1 -0
  314. package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts +2 -0
  315. package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts.map +1 -0
  316. package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts +2 -0
  317. package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts.map +1 -0
  318. package/dist/__tests__/urp-pipeline.unit.test.d.ts +2 -0
  319. package/dist/__tests__/urp-pipeline.unit.test.d.ts.map +1 -0
  320. package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts +2 -0
  321. package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts.map +1 -0
  322. package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts +2 -0
  323. package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts.map +1 -0
  324. package/dist/__tests__/visibility-diagnostics.integration.test.d.ts +2 -0
  325. package/dist/__tests__/visibility-diagnostics.integration.test.d.ts.map +1 -0
  326. package/dist/__tests__/visibility-extract.integration.test.d.ts +2 -0
  327. package/dist/__tests__/visibility-extract.integration.test.d.ts.map +1 -0
  328. package/dist/__tests__/visibility-extract.perf.test.d.ts +2 -0
  329. package/dist/__tests__/visibility-extract.perf.test.d.ts.map +1 -0
  330. package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts +2 -0
  331. package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts.map +1 -0
  332. package/dist/__tests__/visibility-hidden-report.unit.test.d.ts +2 -0
  333. package/dist/__tests__/visibility-hidden-report.unit.test.d.ts.map +1 -0
  334. package/dist/__tests__/visibility-instances.integration.test.d.ts +2 -0
  335. package/dist/__tests__/visibility-instances.integration.test.d.ts.map +1 -0
  336. package/dist/__tests__/visibility-multi-world.integration.test.d.ts +2 -0
  337. package/dist/__tests__/visibility-multi-world.integration.test.d.ts.map +1 -0
  338. package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts +2 -0
  339. package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts.map +1 -0
  340. package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts +2 -0
  341. package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts.map +1 -0
  342. package/dist/__tests__/visibility-public-surface.test-d.d.ts +2 -0
  343. package/dist/__tests__/visibility-public-surface.test-d.d.ts.map +1 -0
  344. package/dist/__tests__/visibility-resolver.unit.test.d.ts +2 -0
  345. package/dist/__tests__/visibility-resolver.unit.test.d.ts.map +1 -0
  346. package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts +2 -0
  347. package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts.map +1 -0
  348. package/dist/__tests__/vocabulary.unit.test.d.ts +2 -0
  349. package/dist/__tests__/vocabulary.unit.test.d.ts.map +1 -0
  350. package/dist/assets/__tests__/asset-decoders.unit.test.d.ts +2 -0
  351. package/dist/assets/__tests__/asset-decoders.unit.test.d.ts.map +1 -0
  352. package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts +2 -0
  353. package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts.map +1 -0
  354. package/dist/assets/__tests__/render-asset-port.unit.test.d.ts +2 -0
  355. package/dist/assets/__tests__/render-asset-port.unit.test.d.ts.map +1 -0
  356. package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts +2 -0
  357. package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts.map +1 -0
  358. package/dist/assets/asset-decoders.d.ts +5 -0
  359. package/dist/assets/asset-decoders.d.ts.map +1 -0
  360. package/dist/assets/render-asset-port.d.ts +17 -0
  361. package/dist/assets/render-asset-port.d.ts.map +1 -0
  362. package/dist/assets/resolve-render-asset.d.ts +6 -0
  363. package/dist/assets/resolve-render-asset.d.ts.map +1 -0
  364. package/dist/authoring.d.ts +12 -0
  365. package/dist/authoring.d.ts.map +1 -0
  366. package/dist/authoring.mjs +5 -0
  367. package/dist/authoring.mjs.map +1 -0
  368. package/dist/chunk-33UF5SAO.mjs +7397 -0
  369. package/dist/chunk-33UF5SAO.mjs.map +1 -0
  370. package/dist/chunk-A5QCJSNL.mjs +29913 -0
  371. package/dist/chunk-A5QCJSNL.mjs.map +1 -0
  372. package/dist/chunk-JMSB7AR4.mjs +3 -0
  373. package/dist/chunk-JMSB7AR4.mjs.map +1 -0
  374. package/dist/chunk-LXNGO6AO.mjs +569 -0
  375. package/dist/chunk-LXNGO6AO.mjs.map +1 -0
  376. package/dist/chunk-QRXPSX4X.mjs +659 -0
  377. package/dist/chunk-QRXPSX4X.mjs.map +1 -0
  378. package/dist/chunk-YAKEQPWO.mjs +1439 -0
  379. package/dist/chunk-YAKEQPWO.mjs.map +1 -0
  380. package/dist/cluster-binner.d.ts +152 -0
  381. package/dist/cluster-binner.d.ts.map +1 -0
  382. package/dist/components/__tests__/atmosphere-red.test.d.ts +2 -0
  383. package/dist/components/__tests__/atmosphere-red.test.d.ts.map +1 -0
  384. package/dist/components/__tests__/atmosphere.test.d.ts +2 -0
  385. package/dist/components/__tests__/atmosphere.test.d.ts.map +1 -0
  386. package/dist/components/__tests__/fog.test-d.d.ts +2 -0
  387. package/dist/components/__tests__/fog.test-d.d.ts.map +1 -0
  388. package/dist/components/__tests__/fog.test.d.ts +2 -0
  389. package/dist/components/__tests__/fog.test.d.ts.map +1 -0
  390. package/dist/components/__tests__/schema-parity.unit.test.d.ts +2 -0
  391. package/dist/components/__tests__/schema-parity.unit.test.d.ts.map +1 -0
  392. package/dist/components/__tests__/visibility-schema.unit.test.d.ts +2 -0
  393. package/dist/components/__tests__/visibility-schema.unit.test.d.ts.map +1 -0
  394. package/dist/components/atmosphere.d.ts +18 -0
  395. package/dist/components/atmosphere.d.ts.map +1 -0
  396. package/dist/components/camera.d.ts +311 -0
  397. package/dist/components/camera.d.ts.map +1 -0
  398. package/dist/components/directional-light.d.ts +76 -0
  399. package/dist/components/directional-light.d.ts.map +1 -0
  400. package/dist/components/environment.d.ts +116 -0
  401. package/dist/components/environment.d.ts.map +1 -0
  402. package/dist/components/glyph-text.d.ts +26 -0
  403. package/dist/components/glyph-text.d.ts.map +1 -0
  404. package/dist/components/index.d.ts +22 -0
  405. package/dist/components/index.d.ts.map +1 -0
  406. package/dist/components/instances.d.ts +41 -0
  407. package/dist/components/instances.d.ts.map +1 -0
  408. package/dist/components/layer.d.ts +34 -0
  409. package/dist/components/layer.d.ts.map +1 -0
  410. package/dist/components/light-helpers.d.ts +53 -0
  411. package/dist/components/light-helpers.d.ts.map +1 -0
  412. package/dist/components/mesh-filter.d.ts +24 -0
  413. package/dist/components/mesh-filter.d.ts.map +1 -0
  414. package/dist/components/mesh-renderer.d.ts +33 -0
  415. package/dist/components/mesh-renderer.d.ts.map +1 -0
  416. package/dist/components/point-light-shadow.d.ts +27 -0
  417. package/dist/components/point-light-shadow.d.ts.map +1 -0
  418. package/dist/components/point-light.d.ts +35 -0
  419. package/dist/components/point-light.d.ts.map +1 -0
  420. package/dist/components/post-process-params.d.ts +5 -0
  421. package/dist/components/post-process-params.d.ts.map +1 -0
  422. package/dist/components/scene-instance.d.ts +140 -0
  423. package/dist/components/scene-instance.d.ts.map +1 -0
  424. package/dist/components/sort-key.d.ts +44 -0
  425. package/dist/components/sort-key.d.ts.map +1 -0
  426. package/dist/components/spot-light.d.ts +81 -0
  427. package/dist/components/spot-light.d.ts.map +1 -0
  428. package/dist/components/sprite-animation.d.ts +75 -0
  429. package/dist/components/sprite-animation.d.ts.map +1 -0
  430. package/dist/components/sprite-instances.d.ts +51 -0
  431. package/dist/components/sprite-instances.d.ts.map +1 -0
  432. package/dist/components/sprite-playback-mode.d.ts +37 -0
  433. package/dist/components/sprite-playback-mode.d.ts.map +1 -0
  434. package/dist/components/sprite-region-override.d.ts +47 -0
  435. package/dist/components/sprite-region-override.d.ts.map +1 -0
  436. package/dist/components/tile-layer.d.ts +101 -0
  437. package/dist/components/tile-layer.d.ts.map +1 -0
  438. package/dist/components/tilemap.d.ts +25 -0
  439. package/dist/components/tilemap.d.ts.map +1 -0
  440. package/dist/components/visibility.d.ts +22 -0
  441. package/dist/components/visibility.d.ts.map +1 -0
  442. package/dist/construct-renderer.d.ts +2 -0
  443. package/dist/construct-renderer.d.ts.map +1 -0
  444. package/dist/construct-renderer.mjs +6 -0
  445. package/dist/construct-renderer.mjs.map +1 -0
  446. package/dist/debug-draw-glue.d.ts +56 -0
  447. package/dist/debug-draw-glue.d.ts.map +1 -0
  448. package/dist/deferred-lighting.d.ts +13 -0
  449. package/dist/deferred-lighting.d.ts.map +1 -0
  450. package/dist/dynamic-texture-store.d.ts +42 -0
  451. package/dist/dynamic-texture-store.d.ts.map +1 -0
  452. package/dist/engine-metrics.d.ts +23 -0
  453. package/dist/engine-metrics.d.ts.map +1 -0
  454. package/dist/environment/__tests__/failure-injection.test.d.ts +2 -0
  455. package/dist/environment/__tests__/failure-injection.test.d.ts.map +1 -0
  456. package/dist/environment/__tests__/generation-red.test.d.ts +2 -0
  457. package/dist/environment/__tests__/generation-red.test.d.ts.map +1 -0
  458. package/dist/environment/__tests__/generation.test.d.ts +2 -0
  459. package/dist/environment/__tests__/generation.test.d.ts.map +1 -0
  460. package/dist/environment/__tests__/graph-transaction.test.d.ts +2 -0
  461. package/dist/environment/__tests__/graph-transaction.test.d.ts.map +1 -0
  462. package/dist/environment/__tests__/inspection-red.test.d.ts +2 -0
  463. package/dist/environment/__tests__/inspection-red.test.d.ts.map +1 -0
  464. package/dist/environment/__tests__/lifecycle-evidence.test.d.ts +2 -0
  465. package/dist/environment/__tests__/lifecycle-evidence.test.d.ts.map +1 -0
  466. package/dist/environment/__tests__/pipeline-topology.test.d.ts +2 -0
  467. package/dist/environment/__tests__/pipeline-topology.test.d.ts.map +1 -0
  468. package/dist/environment/__tests__/readiness.test.d.ts +2 -0
  469. package/dist/environment/__tests__/readiness.test.d.ts.map +1 -0
  470. package/dist/environment/__tests__/recovery.test.d.ts +2 -0
  471. package/dist/environment/__tests__/recovery.test.d.ts.map +1 -0
  472. package/dist/environment/__tests__/resize-dispose.test.d.ts +2 -0
  473. package/dist/environment/__tests__/resize-dispose.test.d.ts.map +1 -0
  474. package/dist/environment/__tests__/signature-red.test.d.ts +2 -0
  475. package/dist/environment/__tests__/signature-red.test.d.ts.map +1 -0
  476. package/dist/environment/__tests__/signature.test.d.ts +2 -0
  477. package/dist/environment/__tests__/signature.test.d.ts.map +1 -0
  478. package/dist/environment/descriptors.d.ts +2 -0
  479. package/dist/environment/descriptors.d.ts.map +1 -0
  480. package/dist/environment/extracted-environment.d.ts +53 -0
  481. package/dist/environment/extracted-environment.d.ts.map +1 -0
  482. package/dist/environment/generation.d.ts +62 -0
  483. package/dist/environment/generation.d.ts.map +1 -0
  484. package/dist/environment/gpu-bundle.d.ts +23 -0
  485. package/dist/environment/gpu-bundle.d.ts.map +1 -0
  486. package/dist/environment/graph.d.ts +108 -0
  487. package/dist/environment/graph.d.ts.map +1 -0
  488. package/dist/environment/inspection.d.ts +48 -0
  489. package/dist/environment/inspection.d.ts.map +1 -0
  490. package/dist/environment/lifecycle.d.ts +22 -0
  491. package/dist/environment/lifecycle.d.ts.map +1 -0
  492. package/dist/environment/readiness.d.ts +29 -0
  493. package/dist/environment/readiness.d.ts.map +1 -0
  494. package/dist/environment/signature.d.ts +70 -0
  495. package/dist/environment/signature.d.ts.map +1 -0
  496. package/dist/errors/ecs-validation.d.ts +3 -0
  497. package/dist/errors/ecs-validation.d.ts.map +1 -0
  498. package/dist/errors/index.d.ts +4 -0
  499. package/dist/errors/index.d.ts.map +1 -0
  500. package/dist/errors/recover.d.ts +78 -0
  501. package/dist/errors/recover.d.ts.map +1 -0
  502. package/dist/errors/render.d.ts +633 -0
  503. package/dist/errors/render.d.ts.map +1 -0
  504. package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts +2 -0
  505. package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts.map +1 -0
  506. package/dist/extract/__tests__/environment-source.test.d.ts +2 -0
  507. package/dist/extract/__tests__/environment-source.test.d.ts.map +1 -0
  508. package/dist/extract/__tests__/schema-readers.unit.test.d.ts +2 -0
  509. package/dist/extract/__tests__/schema-readers.unit.test.d.ts.map +1 -0
  510. package/dist/extract/directional-csm.d.ts +129 -0
  511. package/dist/extract/directional-csm.d.ts.map +1 -0
  512. package/dist/extract/index.d.ts +5 -0
  513. package/dist/extract/index.d.ts.map +1 -0
  514. package/dist/extract/material-interface.d.ts +56 -0
  515. package/dist/extract/material-interface.d.ts.map +1 -0
  516. package/dist/extract/schema-readers.d.ts +20 -0
  517. package/dist/extract/schema-readers.d.ts.map +1 -0
  518. package/dist/extract/visibility.d.ts +26 -0
  519. package/dist/extract/visibility.d.ts.map +1 -0
  520. package/dist/features/graph-contribution.d.ts +64 -0
  521. package/dist/features/graph-contribution.d.ts.map +1 -0
  522. package/dist/features/host.d.ts +100 -0
  523. package/dist/features/host.d.ts.map +1 -0
  524. package/dist/features/index.d.ts +21 -0
  525. package/dist/features/index.d.ts.map +1 -0
  526. package/dist/features/morph/index.d.ts +3 -0
  527. package/dist/features/morph/index.d.ts.map +1 -0
  528. package/dist/features/morph/morph-bounds.d.ts +42 -0
  529. package/dist/features/morph/morph-bounds.d.ts.map +1 -0
  530. package/dist/features/morph/morph-feature.d.ts +45 -0
  531. package/dist/features/morph/morph-feature.d.ts.map +1 -0
  532. package/dist/features/prepared-gpu-work.d.ts +113 -0
  533. package/dist/features/prepared-gpu-work.d.ts.map +1 -0
  534. package/dist/features/prepared-graphics-store.d.ts +65 -0
  535. package/dist/features/prepared-graphics-store.d.ts.map +1 -0
  536. package/dist/features/prepared-graphics.d.ts +225 -0
  537. package/dist/features/prepared-graphics.d.ts.map +1 -0
  538. package/dist/features/render-graph-compute.d.ts +13 -0
  539. package/dist/features/render-graph-compute.d.ts.map +1 -0
  540. package/dist/features/render-graph-contribution.d.ts +15 -0
  541. package/dist/features/render-graph-contribution.d.ts.map +1 -0
  542. package/dist/features/render-graph-raster.d.ts +34 -0
  543. package/dist/features/render-graph-raster.d.ts.map +1 -0
  544. package/dist/features/render-graph-resources.d.ts +11 -0
  545. package/dist/features/render-graph-resources.d.ts.map +1 -0
  546. package/dist/features/scene-temporal.d.ts +45 -0
  547. package/dist/features/scene-temporal.d.ts.map +1 -0
  548. package/dist/features/taa-resolve.d.ts +21 -0
  549. package/dist/features/taa-resolve.d.ts.map +1 -0
  550. package/dist/features/targets.d.ts +32 -0
  551. package/dist/features/targets.d.ts.map +1 -0
  552. package/dist/features/types.d.ts +247 -0
  553. package/dist/features/types.d.ts.map +1 -0
  554. package/dist/frame-chain.d.ts +14 -0
  555. package/dist/frame-chain.d.ts.map +1 -0
  556. package/dist/fullscreen-post-process-pass.d.ts +178 -0
  557. package/dist/fullscreen-post-process-pass.d.ts.map +1 -0
  558. package/dist/glyph-text-layout-system.d.ts +18 -0
  559. package/dist/glyph-text-layout-system.d.ts.map +1 -0
  560. package/dist/gpu-driven/batch-topology.d.ts +124 -0
  561. package/dist/gpu-driven/batch-topology.d.ts.map +1 -0
  562. package/dist/gpu-driven/production-raster.d.ts +150 -0
  563. package/dist/gpu-driven/production-raster.d.ts.map +1 -0
  564. package/dist/gpu-driven/view-gpu.d.ts +141 -0
  565. package/dist/gpu-driven/view-gpu.d.ts.map +1 -0
  566. package/dist/gpu-driven/view-reference.d.ts +15 -0
  567. package/dist/gpu-driven/view-reference.d.ts.map +1 -0
  568. package/dist/gpu-resource-store.d.ts +294 -0
  569. package/dist/gpu-resource-store.d.ts.map +1 -0
  570. package/dist/gpu-resource.d.ts +73 -0
  571. package/dist/gpu-resource.d.ts.map +1 -0
  572. package/dist/gpu-scene-schema.d.ts +171 -0
  573. package/dist/gpu-scene-schema.d.ts.map +1 -0
  574. package/dist/gpu-scene.d.ts +81 -0
  575. package/dist/gpu-scene.d.ts.map +1 -0
  576. package/dist/gpu-stage.d.ts +4 -0
  577. package/dist/gpu-stage.d.ts.map +1 -0
  578. package/dist/gpu-texture-usage.d.ts +6 -0
  579. package/dist/gpu-texture-usage.d.ts.map +1 -0
  580. package/dist/gpu-usage.d.ts +9 -0
  581. package/dist/gpu-usage.d.ts.map +1 -0
  582. package/dist/hdrp-buffers.d.ts +213 -0
  583. package/dist/hdrp-buffers.d.ts.map +1 -0
  584. package/dist/hdrp-cluster-membership.d.ts +2 -0
  585. package/dist/hdrp-cluster-membership.d.ts.map +1 -0
  586. package/dist/hdrp-pipeline.d.ts +36 -0
  587. package/dist/hdrp-pipeline.d.ts.map +1 -0
  588. package/dist/ibl/IblPipelineCache.d.ts +274 -0
  589. package/dist/ibl/IblPipelineCache.d.ts.map +1 -0
  590. package/dist/ibl/cubemap-projection.d.ts +23 -0
  591. package/dist/ibl/cubemap-projection.d.ts.map +1 -0
  592. package/dist/ibl/face-uniforms.d.ts +65 -0
  593. package/dist/ibl/face-uniforms.d.ts.map +1 -0
  594. package/dist/ibl/skylight-bind-group.d.ts +130 -0
  595. package/dist/ibl/skylight-bind-group.d.ts.map +1 -0
  596. package/dist/index.d.ts +57 -0
  597. package/dist/index.d.ts.map +1 -0
  598. package/dist/index.mjs +5 -0
  599. package/dist/index.mjs.map +1 -0
  600. package/dist/instance-buffer-cache.d.ts +59 -0
  601. package/dist/instance-buffer-cache.d.ts.map +1 -0
  602. package/dist/internal.d.ts +74 -0
  603. package/dist/internal.d.ts.map +1 -0
  604. package/dist/internal.mjs +45 -0
  605. package/dist/internal.mjs.map +1 -0
  606. package/dist/lifecycle.d.ts +28 -0
  607. package/dist/lifecycle.d.ts.map +1 -0
  608. package/dist/light-buffer-layout.d.ts +164 -0
  609. package/dist/light-buffer-layout.d.ts.map +1 -0
  610. package/dist/materials.d.ts +50 -0
  611. package/dist/materials.d.ts.map +1 -0
  612. package/dist/mesh-material-bindings.d.ts +44 -0
  613. package/dist/mesh-material-bindings.d.ts.map +1 -0
  614. package/dist/mesh-update-errors.d.ts +71 -0
  615. package/dist/mesh-update-errors.d.ts.map +1 -0
  616. package/dist/mipmap-generator.d.ts +39 -0
  617. package/dist/mipmap-generator.d.ts.map +1 -0
  618. package/dist/param-schema-projection-census.d.ts +18 -0
  619. package/dist/param-schema-projection-census.d.ts.map +1 -0
  620. package/dist/pbr-pipeline.d.ts +253 -0
  621. package/dist/pbr-pipeline.d.ts.map +1 -0
  622. package/dist/persistent-render-scene.d.ts +158 -0
  623. package/dist/persistent-render-scene.d.ts.map +1 -0
  624. package/dist/pipeline/index.d.ts +11 -0
  625. package/dist/pipeline/index.d.ts.map +1 -0
  626. package/dist/pipeline-builder.d.ts +122 -0
  627. package/dist/pipeline-builder.d.ts.map +1 -0
  628. package/dist/pipeline-errors.d.ts +110 -0
  629. package/dist/pipeline-errors.d.ts.map +1 -0
  630. package/dist/pipeline-spec.d.ts +506 -0
  631. package/dist/pipeline-spec.d.ts.map +1 -0
  632. package/dist/plugin.d.ts +17 -0
  633. package/dist/plugin.d.ts.map +1 -0
  634. package/dist/post-process-errors.d.ts +182 -0
  635. package/dist/post-process-errors.d.ts.map +1 -0
  636. package/dist/prepare/__tests__/schema-readers.unit.test.d.ts +2 -0
  637. package/dist/prepare/__tests__/schema-readers.unit.test.d.ts.map +1 -0
  638. package/dist/prepare/index.d.ts +4 -0
  639. package/dist/prepare/index.d.ts.map +1 -0
  640. package/dist/prepare/prepared-graphics-resolver.d.ts +62 -0
  641. package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -0
  642. package/dist/prepare/schema-readers.d.ts +11 -0
  643. package/dist/prepare/schema-readers.d.ts.map +1 -0
  644. package/dist/record/__tests__/environment-record.test.d.ts +2 -0
  645. package/dist/record/__tests__/environment-record.test.d.ts.map +1 -0
  646. package/dist/record/__tests__/frame-targets.unit.test.d.ts +2 -0
  647. package/dist/record/__tests__/frame-targets.unit.test.d.ts.map +1 -0
  648. package/dist/record/__tests__/material-bg-cache.unit.test.d.ts +2 -0
  649. package/dist/record/__tests__/material-bg-cache.unit.test.d.ts.map +1 -0
  650. package/dist/record/__tests__/material-slot-plan.unit.test.d.ts +2 -0
  651. package/dist/record/__tests__/material-slot-plan.unit.test.d.ts.map +1 -0
  652. package/dist/record/__tests__/membership-timing.unit.test.d.ts +2 -0
  653. package/dist/record/__tests__/membership-timing.unit.test.d.ts.map +1 -0
  654. package/dist/record/__tests__/render-submission.integration.test.d.ts +2 -0
  655. package/dist/record/__tests__/render-submission.integration.test.d.ts.map +1 -0
  656. package/dist/record/__tests__/render-submission.perf.test.d.ts +2 -0
  657. package/dist/record/__tests__/render-submission.perf.test.d.ts.map +1 -0
  658. package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts +2 -0
  659. package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts.map +1 -0
  660. package/dist/record/__tests__/video-texture-view.unit.test.d.ts +2 -0
  661. package/dist/record/__tests__/video-texture-view.unit.test.d.ts.map +1 -0
  662. package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts +2 -0
  663. package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts.map +1 -0
  664. package/dist/record/frame-lighting.d.ts +187 -0
  665. package/dist/record/frame-lighting.d.ts.map +1 -0
  666. package/dist/record/frame-observation.d.ts +38 -0
  667. package/dist/record/frame-observation.d.ts.map +1 -0
  668. package/dist/record/frame-snapshot.d.ts +429 -0
  669. package/dist/record/frame-snapshot.d.ts.map +1 -0
  670. package/dist/record/frame-targets.d.ts +53 -0
  671. package/dist/record/frame-targets.d.ts.map +1 -0
  672. package/dist/record/frame.d.ts +59 -0
  673. package/dist/record/frame.d.ts.map +1 -0
  674. package/dist/record/helpers.d.ts +101 -0
  675. package/dist/record/helpers.d.ts.map +1 -0
  676. package/dist/record/index.d.ts +15 -0
  677. package/dist/record/index.d.ts.map +1 -0
  678. package/dist/record/main-pass-geometry.d.ts +20 -0
  679. package/dist/record/main-pass-geometry.d.ts.map +1 -0
  680. package/dist/record/main-pass-material.d.ts +173 -0
  681. package/dist/record/main-pass-material.d.ts.map +1 -0
  682. package/dist/record/main-pass-skin.d.ts +46 -0
  683. package/dist/record/main-pass-skin.d.ts.map +1 -0
  684. package/dist/record/main-pass-sprite-draws.d.ts +18 -0
  685. package/dist/record/main-pass-sprite-draws.d.ts.map +1 -0
  686. package/dist/record/main-pass-sprite.d.ts +69 -0
  687. package/dist/record/main-pass-sprite.d.ts.map +1 -0
  688. package/dist/record/main-pass.d.ts +20 -0
  689. package/dist/record/main-pass.d.ts.map +1 -0
  690. package/dist/record/material-payload.d.ts +43 -0
  691. package/dist/record/material-payload.d.ts.map +1 -0
  692. package/dist/record/material-slot-plan.d.ts +26 -0
  693. package/dist/record/material-slot-plan.d.ts.map +1 -0
  694. package/dist/record/membership-timing.d.ts +232 -0
  695. package/dist/record/membership-timing.d.ts.map +1 -0
  696. package/dist/record/mesh-ssbo.d.ts +173 -0
  697. package/dist/record/mesh-ssbo.d.ts.map +1 -0
  698. package/dist/record/shadow-caster-uniform.d.ts +8 -0
  699. package/dist/record/shadow-caster-uniform.d.ts.map +1 -0
  700. package/dist/record/shadow-pass.d.ts +125 -0
  701. package/dist/record/shadow-pass.d.ts.map +1 -0
  702. package/dist/record/shadow-submit-mode.d.ts +66 -0
  703. package/dist/record/shadow-submit-mode.d.ts.map +1 -0
  704. package/dist/record/skybox-post-pass.d.ts +33 -0
  705. package/dist/record/skybox-post-pass.d.ts.map +1 -0
  706. package/dist/record/typed-frame-graph.d.ts +13 -0
  707. package/dist/record/typed-frame-graph.d.ts.map +1 -0
  708. package/dist/record/view-ubo.d.ts +39 -0
  709. package/dist/record/view-ubo.d.ts.map +1 -0
  710. package/dist/render-data.d.ts +143 -0
  711. package/dist/render-data.d.ts.map +1 -0
  712. package/dist/render-dispatch-membership.d.ts +47 -0
  713. package/dist/render-dispatch-membership.d.ts.map +1 -0
  714. package/dist/render-graph-primitives.d.ts +424 -0
  715. package/dist/render-graph-primitives.d.ts.map +1 -0
  716. package/dist/render-pipeline-context.d.ts +289 -0
  717. package/dist/render-pipeline-context.d.ts.map +1 -0
  718. package/dist/render-pipeline-target.d.ts +16 -0
  719. package/dist/render-pipeline-target.d.ts.map +1 -0
  720. package/dist/render-pipeline.d.ts +149 -0
  721. package/dist/render-pipeline.d.ts.map +1 -0
  722. package/dist/render-scene-projection.d.ts +174 -0
  723. package/dist/render-scene-projection.d.ts.map +1 -0
  724. package/dist/render-system-extract.d.ts +1096 -0
  725. package/dist/render-system-extract.d.ts.map +1 -0
  726. package/dist/render-system-fold.d.ts +266 -0
  727. package/dist/render-system-fold.d.ts.map +1 -0
  728. package/dist/render-system.d.ts +814 -0
  729. package/dist/render-system.d.ts.map +1 -0
  730. package/dist/renderer/asset-service.d.ts +10 -0
  731. package/dist/renderer/asset-service.d.ts.map +1 -0
  732. package/dist/renderer/backend-selection.d.ts +26 -0
  733. package/dist/renderer/backend-selection.d.ts.map +1 -0
  734. package/dist/renderer/environment-classify.d.ts +6 -0
  735. package/dist/renderer/environment-classify.d.ts.map +1 -0
  736. package/dist/renderer/environment-error.d.ts +13 -0
  737. package/dist/renderer/environment-error.d.ts.map +1 -0
  738. package/dist/renderer/material/assembly.d.ts +22 -0
  739. package/dist/renderer/material/assembly.d.ts.map +1 -0
  740. package/dist/renderer/material/pipeline-projection.d.ts +91 -0
  741. package/dist/renderer/material/pipeline-projection.d.ts.map +1 -0
  742. package/dist/renderer/renderer-factory.d.ts +283 -0
  743. package/dist/renderer/renderer-factory.d.ts.map +1 -0
  744. package/dist/renderer.d.ts +771 -0
  745. package/dist/renderer.d.ts.map +1 -0
  746. package/dist/scene-instances/post-spawn-resolve-joints.d.ts +33 -0
  747. package/dist/scene-instances/post-spawn-resolve-joints.d.ts.map +1 -0
  748. package/dist/scene-utils/collect-subtree.d.ts +11 -0
  749. package/dist/scene-utils/collect-subtree.d.ts.map +1 -0
  750. package/dist/shadow-atlas.d.ts +117 -0
  751. package/dist/shadow-atlas.d.ts.map +1 -0
  752. package/dist/ssao-buffers.d.ts +31 -0
  753. package/dist/ssao-buffers.d.ts.map +1 -0
  754. package/dist/ssao-config.d.ts +28 -0
  755. package/dist/ssao-config.d.ts.map +1 -0
  756. package/dist/ssao-data.d.ts +34 -0
  757. package/dist/ssao-data.d.ts.map +1 -0
  758. package/dist/surface-format.d.ts +10 -0
  759. package/dist/surface-format.d.ts.map +1 -0
  760. package/dist/systems/active-camera.d.ts +53 -0
  761. package/dist/systems/active-camera.d.ts.map +1 -0
  762. package/dist/systems/pass-selector.d.ts +24 -0
  763. package/dist/systems/pass-selector.d.ts.map +1 -0
  764. package/dist/systems/skin-palette-allocator.d.ts +51 -0
  765. package/dist/systems/skin-palette-allocator.d.ts.map +1 -0
  766. package/dist/systems/transparent-sort-config.d.ts +91 -0
  767. package/dist/systems/transparent-sort-config.d.ts.map +1 -0
  768. package/dist/taa-history-store.d.ts +88 -0
  769. package/dist/taa-history-store.d.ts.map +1 -0
  770. package/dist/temporal-coverage.d.ts +35 -0
  771. package/dist/temporal-coverage.d.ts.map +1 -0
  772. package/dist/temporal-frame-transaction.d.ts +92 -0
  773. package/dist/temporal-frame-transaction.d.ts.map +1 -0
  774. package/dist/temporal-inspection.d.ts +57 -0
  775. package/dist/temporal-inspection.d.ts.map +1 -0
  776. package/dist/temporal-view.d.ts +43 -0
  777. package/dist/temporal-view.d.ts.map +1 -0
  778. package/dist/tilemap/resolve-tileset-runtime.d.ts +23 -0
  779. package/dist/tilemap/resolve-tileset-runtime.d.ts.map +1 -0
  780. package/dist/tilemap-chunk-extract-system.d.ts +142 -0
  781. package/dist/tilemap-chunk-extract-system.d.ts.map +1 -0
  782. package/dist/typed-render-graph-primitives.d.ts +59 -0
  783. package/dist/typed-render-graph-primitives.d.ts.map +1 -0
  784. package/dist/typed-shadow-passes.d.ts +11 -0
  785. package/dist/typed-shadow-passes.d.ts.map +1 -0
  786. package/dist/urp-pipeline.d.ts +4 -0
  787. package/dist/urp-pipeline.d.ts.map +1 -0
  788. package/package.json +94 -0
  789. package/src/__tests__/analytic-sky-contract.test.ts +27 -0
  790. package/src/__tests__/analytic-sky-falsify-carriers.mjs +43 -0
  791. package/src/__tests__/analytic-sky-falsify.test.ts +94 -0
  792. package/src/__tests__/assets-runtime-handoff.integration.test.ts +36 -0
  793. package/src/__tests__/authoring-path.unit.test.ts +14 -0
  794. package/src/__tests__/backend-selection-rhi-capture.test-d.ts +21 -0
  795. package/src/__tests__/backend-selection.integration.test.ts +11 -0
  796. package/src/__tests__/callback-inference.test-d.ts +5 -0
  797. package/src/__tests__/camera-temporal.test-d.ts +8 -0
  798. package/src/__tests__/camera-temporal.test.ts +188 -0
  799. package/src/__tests__/cluster-binner.test.ts +272 -0
  800. package/src/__tests__/cluster-grid-default-surface.unit.test.ts +17 -0
  801. package/src/__tests__/construct-renderer-identity.unit.test.ts +10 -0
  802. package/src/__tests__/direct-extract-consumer-contract.test-d.ts +34 -0
  803. package/src/__tests__/direct-light-snapshot.unit.test.ts +71 -0
  804. package/src/__tests__/directional-shadow-probe-atlas-layout.unit.test.ts +18 -0
  805. package/src/__tests__/environment-inspection.test.ts +45 -0
  806. package/src/__tests__/factory-contract.integration.test.ts +331 -0
  807. package/src/__tests__/fallback-row-stride-surface.unit.test.ts +18 -0
  808. package/src/__tests__/fog-ai-user.fixture.ts +350 -0
  809. package/src/__tests__/fog-custom-render-feature.fixture.ts +33 -0
  810. package/src/__tests__/fog-custom-render-feature.integration.test.ts +76 -0
  811. package/src/__tests__/fog-inspection.integration.test.ts +127 -0
  812. package/src/__tests__/fog-owner-state.integration.test.ts +112 -0
  813. package/src/__tests__/fog-pipeline-topology.integration.test.ts +93 -0
  814. package/src/__tests__/fog-public-surface.integration.test.ts +60 -0
  815. package/src/__tests__/fog-ray-contract.integration.test.ts +73 -0
  816. package/src/__tests__/fog-source-absence.integration.test.ts +51 -0
  817. package/src/__tests__/fog-temporal.integration.test.ts +115 -0
  818. package/src/__tests__/frame-chain.unit.test.ts +26 -0
  819. package/src/__tests__/frame-observation.contract.test.ts +103 -0
  820. package/src/__tests__/glyph-text-layout-recovery.unit.test.ts +172 -0
  821. package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +347 -0
  822. package/src/__tests__/gpu-driven-indirect-raster.browser.test.ts +12 -0
  823. package/src/__tests__/gpu-driven-indirect-raster.dawn.test.ts +16 -0
  824. package/src/__tests__/gpu-driven-production.integration.test.ts +609 -0
  825. package/src/__tests__/gpu-driven-scaling.unit.test.ts +90 -0
  826. package/src/__tests__/gpu-driven-view-gpu-evidence.ts +192 -0
  827. package/src/__tests__/gpu-driven-view-graph.integration.test.ts +128 -0
  828. package/src/__tests__/gpu-driven-view.browser.test.ts +19 -0
  829. package/src/__tests__/gpu-driven-view.dawn.test.ts +17 -0
  830. package/src/__tests__/gpu-driven-view.unit.test.ts +455 -0
  831. package/src/__tests__/gpu-resource-store-stride.unit.test.ts +59 -0
  832. package/src/__tests__/gpu-scene-field-type-owner.test-d.ts +27 -0
  833. package/src/__tests__/gpu-scene-render-graph-gpu.ts +309 -0
  834. package/src/__tests__/gpu-scene-render-graph.browser.test.ts +19 -0
  835. package/src/__tests__/gpu-scene-render-graph.dawn.test.ts +19 -0
  836. package/src/__tests__/gpu-scene-schema.unit.test.ts +16 -0
  837. package/src/__tests__/gpu-scene.dawn.test.ts +209 -0
  838. package/src/__tests__/gpu-scene.unit.test.ts +161 -0
  839. package/src/__tests__/hdrp-pipeline.unit.test.ts +100 -0
  840. package/src/__tests__/ibl/ibl-fallback.unit.test.ts +23 -0
  841. package/src/__tests__/infinite-grid-no-vertex-probe.unit.test.ts +124 -0
  842. package/src/__tests__/injection-kind-owner.test-d.ts +14 -0
  843. package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +719 -0
  844. package/src/__tests__/light-buffer-layout.unit.test.ts +85 -0
  845. package/src/__tests__/material-contract-inventory.unit.test.ts +24 -0
  846. package/src/__tests__/material-cooked-projection.unit.test.ts +177 -0
  847. package/src/__tests__/material-derived-error-stop-draw.integration.test.ts +69 -0
  848. package/src/__tests__/material-derived-payload.integration.test.ts +164 -0
  849. package/src/__tests__/material-snapshot-mutation.integration.test.ts +58 -0
  850. package/src/__tests__/material-static-dynamic-route.unit.test.ts +113 -0
  851. package/src/__tests__/material-stride-surface.unit.test.ts +32 -0
  852. package/src/__tests__/materials.unit.test.ts +25 -0
  853. package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +107 -0
  854. package/src/__tests__/mesh-material-bindings.unit.test.ts +89 -0
  855. package/src/__tests__/mesh-stride-surface.unit.test.ts +16 -0
  856. package/src/__tests__/morph-culling-reentry.dawn.test.ts +166 -0
  857. package/src/__tests__/morph-feature-gpu-work.integration.test.ts +78 -0
  858. package/src/__tests__/morph-visual-evidence.integration.test.ts +66 -0
  859. package/src/__tests__/nineslice-handle-surface.unit.test.ts +14 -0
  860. package/src/__tests__/param-schema-projection-census.unit.test.ts +40 -0
  861. package/src/__tests__/persistent-render-scene.unit.test.ts +1311 -0
  862. package/src/__tests__/pipeline-error-policy-owner.unit.test.ts +167 -0
  863. package/src/__tests__/pipeline-pass-trace.test.ts +92 -0
  864. package/src/__tests__/pipeline-stage-owner.test-d.ts +13 -0
  865. package/src/__tests__/plugin.test.ts +25 -0
  866. package/src/__tests__/post-process-error-policy-owner.unit.test.ts +208 -0
  867. package/src/__tests__/prepared-buffer-kind-owner.test-d.ts +29 -0
  868. package/src/__tests__/prepared-graphics-backend-matrix.unit.test.ts +129 -0
  869. package/src/__tests__/prepared-graphics-capability.unit.test.ts +140 -0
  870. package/src/__tests__/prepared-graphics-generation.unit.test.ts +175 -0
  871. package/src/__tests__/prepared-graphics-lifecycle.unit.test.ts +206 -0
  872. package/src/__tests__/prepared-graphics-pipeline-warmup.unit.test.ts +29 -0
  873. package/src/__tests__/prepared-graphics-resolver-recording.unit.test.ts +180 -0
  874. package/src/__tests__/prepared-graphics-resolver.unit.test.ts +287 -0
  875. package/src/__tests__/prepared-graphics-snapshot.unit.test.ts +105 -0
  876. package/src/__tests__/prepared-graphics-store.unit.test.ts +154 -0
  877. package/src/__tests__/prepared-graphics-validation.unit.test.ts +176 -0
  878. package/src/__tests__/profiler-default-off.test.ts +22 -0
  879. package/src/__tests__/profiler-phase-catalog.test.ts +66 -0
  880. package/src/__tests__/profiler-phase-integration.test.ts +70 -0
  881. package/src/__tests__/profiler-phase-token.test.ts +84 -0
  882. package/src/__tests__/public-pipeline-id.test-d.ts +6 -0
  883. package/src/__tests__/public-surface.test-d.ts +32 -0
  884. package/src/__tests__/recover-error-policy-owner.unit.test.ts +127 -0
  885. package/src/__tests__/render-dispatch-membership.unit.test.ts +117 -0
  886. package/src/__tests__/render-error-code-owner.test-d.ts +115 -0
  887. package/src/__tests__/render-error-detail-ssot.test-d.ts +234 -0
  888. package/src/__tests__/render-error-exhaustive.test-d.ts +84 -0
  889. package/src/__tests__/render-feature-assembly.test-d.ts +51 -0
  890. package/src/__tests__/render-feature-construction.unit.test.ts +124 -0
  891. package/src/__tests__/render-feature-context.test-d.ts +81 -0
  892. package/src/__tests__/render-feature-contract.test-d.ts +58 -0
  893. package/src/__tests__/render-feature-diagnostics.unit.test.ts +151 -0
  894. package/src/__tests__/render-feature-docs.unit.test.ts +88 -0
  895. package/src/__tests__/render-feature-error-code-owner.test-d.ts +27 -0
  896. package/src/__tests__/render-feature-errors.unit.test.ts +47 -0
  897. package/src/__tests__/render-feature-gpu-buffer-usage-owner.test-d.ts +46 -0
  898. package/src/__tests__/render-feature-gpu-work.integration.test.ts +377 -0
  899. package/src/__tests__/render-feature-graph.integration.test.ts +205 -0
  900. package/src/__tests__/render-feature-graphics-staging.unit.test.ts +200 -0
  901. package/src/__tests__/render-feature-order.unit.test.ts +66 -0
  902. package/src/__tests__/render-feature-prepared-diagnostics.unit.test.ts +101 -0
  903. package/src/__tests__/render-feature-prepared-errors.test-d.ts +82 -0
  904. package/src/__tests__/render-feature-prepared-graphics-docs.unit.test.ts +141 -0
  905. package/src/__tests__/render-feature-prepared-graphics-isolation.unit.test.ts +122 -0
  906. package/src/__tests__/render-feature-prepared-graphics-negative.test-d.ts +59 -0
  907. package/src/__tests__/render-feature-prepared-graphics-recording.unit.test.ts +107 -0
  908. package/src/__tests__/render-feature-prepared-graphics.test-d.ts +96 -0
  909. package/src/__tests__/render-feature-prepared-graphics.unit.test.ts +121 -0
  910. package/src/__tests__/render-feature-public-surface.test-d.ts +75 -0
  911. package/src/__tests__/render-feature-retry.unit.test.ts +128 -0
  912. package/src/__tests__/render-feature-scheduling.unit.test.ts +122 -0
  913. package/src/__tests__/render-feature-stage-failed-policy-owner.unit.test.ts +146 -0
  914. package/src/__tests__/render-feature-stage-fault-recovery.unit.test.ts +236 -0
  915. package/src/__tests__/render-feature-staging.unit.test.ts +94 -0
  916. package/src/__tests__/render-feature-visibility-context.test-d.ts +38 -0
  917. package/src/__tests__/render-feature-visibility-context.unit.test.ts +38 -0
  918. package/src/__tests__/render-feature-zero-work.unit.test.ts +82 -0
  919. package/src/__tests__/render-graph-compute-raster-gpu.ts +342 -0
  920. package/src/__tests__/render-graph-compute-raster.browser.test.ts +16 -0
  921. package/src/__tests__/render-graph-compute-raster.dawn.test.ts +22 -0
  922. package/src/__tests__/render-graph-hzb-gpu.ts +239 -0
  923. package/src/__tests__/render-graph-hzb.browser.test.ts +16 -0
  924. package/src/__tests__/render-graph-hzb.dawn.test.ts +23 -0
  925. package/src/__tests__/render-graph-primitives.unit.test.ts +22 -0
  926. package/src/__tests__/render-graph-storage-indirect-gpu.ts +162 -0
  927. package/src/__tests__/render-graph-storage-indirect.browser.test.ts +21 -0
  928. package/src/__tests__/render-graph-storage-indirect.dawn.test.ts +28 -0
  929. package/src/__tests__/render-scene-projection.unit.test.ts +206 -0
  930. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +125 -0
  931. package/src/__tests__/renderer-lifecycle.integration.test.ts +10 -0
  932. package/src/__tests__/renderer-render-scene-public.test-d.ts +27 -0
  933. package/src/__tests__/rhi-backend-package-boundary.unit.test.ts +11 -0
  934. package/src/__tests__/scene-temporal-coverage.unit.test.ts +259 -0
  935. package/src/__tests__/scriptable-pack-consumer.test-d.ts +14 -0
  936. package/src/__tests__/shader-stage-surface.unit.test.ts +38 -0
  937. package/src/__tests__/ssao-kernel-surface.unit.test.ts +15 -0
  938. package/src/__tests__/sun-snapshot-consumers.test.ts +35 -0
  939. package/src/__tests__/surface-backend-kind-owner.test-d.ts +42 -0
  940. package/src/__tests__/surface-configuration.unit.test.ts +92 -0
  941. package/src/__tests__/taa-history-store.unit.test.ts +196 -0
  942. package/src/__tests__/temporal-frame-transaction.integration.test.ts +537 -0
  943. package/src/__tests__/temporal-inspection.unit.test.ts +138 -0
  944. package/src/__tests__/texture-usage-surface.unit.test.ts +61 -0
  945. package/src/__tests__/typed-pipeline-topology.unit.test.ts +389 -0
  946. package/src/__tests__/urp-pipeline-targets.unit.test.ts +52 -0
  947. package/src/__tests__/urp-pipeline.unit.test.ts +14 -0
  948. package/src/__tests__/vertex-color-pipeline.unit.test.ts +124 -0
  949. package/src/__tests__/vertex-layout-consumer.unit.test.ts +25 -0
  950. package/src/__tests__/visibility-diagnostics.integration.test.ts +66 -0
  951. package/src/__tests__/visibility-extract.integration.test.ts +89 -0
  952. package/src/__tests__/visibility-extract.perf.test.ts +96 -0
  953. package/src/__tests__/visibility-feature-dedup.integration.test.ts +57 -0
  954. package/src/__tests__/visibility-hidden-report.unit.test.ts +37 -0
  955. package/src/__tests__/visibility-instances.integration.test.ts +50 -0
  956. package/src/__tests__/visibility-multi-world.integration.test.ts +54 -0
  957. package/src/__tests__/visibility-producer-matrix.integration.test.ts +191 -0
  958. package/src/__tests__/visibility-producer-matrix.unit.test.ts +96 -0
  959. package/src/__tests__/visibility-public-surface.test-d.ts +26 -0
  960. package/src/__tests__/visibility-resolver.unit.test.ts +84 -0
  961. package/src/__tests__/visibility-snapshot-contract.unit.test.ts +59 -0
  962. package/src/__tests__/vocabulary.unit.test.ts +21 -0
  963. package/src/assets/__tests__/asset-decoders.unit.test.ts +92 -0
  964. package/src/assets/__tests__/mipmap-generator.unit.test.ts +52 -0
  965. package/src/assets/__tests__/render-asset-port.unit.test.ts +54 -0
  966. package/src/assets/__tests__/resolve-render-asset.unit.test.ts +47 -0
  967. package/src/assets/asset-decoders.ts +158 -0
  968. package/src/assets/render-asset-port.ts +44 -0
  969. package/src/assets/resolve-render-asset.ts +13 -0
  970. package/src/authoring.ts +24 -0
  971. package/src/cluster-binner.ts +700 -0
  972. package/src/components/__tests__/atmosphere-red.test.ts +51 -0
  973. package/src/components/__tests__/atmosphere.test.ts +79 -0
  974. package/src/components/__tests__/fog.test-d.ts +49 -0
  975. package/src/components/__tests__/fog.test.ts +60 -0
  976. package/src/components/__tests__/schema-parity.unit.test.ts +25 -0
  977. package/src/components/__tests__/visibility-schema.unit.test.ts +35 -0
  978. package/src/components/atmosphere.ts +64 -0
  979. package/src/components/camera.ts +512 -0
  980. package/src/components/directional-light.ts +120 -0
  981. package/src/components/environment.ts +206 -0
  982. package/src/components/glyph-text.ts +63 -0
  983. package/src/components/index.ts +49 -0
  984. package/src/components/instances.ts +207 -0
  985. package/src/components/layer.ts +69 -0
  986. package/src/components/light-helpers.ts +188 -0
  987. package/src/components/mesh-filter.ts +59 -0
  988. package/src/components/mesh-renderer.ts +61 -0
  989. package/src/components/point-light-shadow.ts +43 -0
  990. package/src/components/point-light.ts +65 -0
  991. package/src/components/post-process-params.ts +35 -0
  992. package/src/components/scene-instance.ts +193 -0
  993. package/src/components/sort-key.ts +75 -0
  994. package/src/components/spot-light.ts +124 -0
  995. package/src/components/sprite-animation.ts +169 -0
  996. package/src/components/sprite-instances.ts +179 -0
  997. package/src/components/sprite-playback-mode.ts +73 -0
  998. package/src/components/sprite-region-override.ts +106 -0
  999. package/src/components/tile-layer.ts +161 -0
  1000. package/src/components/tilemap.ts +48 -0
  1001. package/src/components/visibility.ts +53 -0
  1002. package/src/construct-renderer.ts +4 -0
  1003. package/src/debug-draw-glue.ts +169 -0
  1004. package/src/deferred-lighting.ts +92 -0
  1005. package/src/dynamic-texture-store.ts +111 -0
  1006. package/src/engine-metrics.ts +89 -0
  1007. package/src/environment/README.md +76 -0
  1008. package/src/environment/__tests__/failure-injection.test.ts +50 -0
  1009. package/src/environment/__tests__/generation-red.test.ts +64 -0
  1010. package/src/environment/__tests__/generation.test.ts +37 -0
  1011. package/src/environment/__tests__/graph-transaction.test.ts +85 -0
  1012. package/src/environment/__tests__/inspection-red.test.ts +53 -0
  1013. package/src/environment/__tests__/lifecycle-evidence.test.ts +40 -0
  1014. package/src/environment/__tests__/pipeline-topology.test.ts +33 -0
  1015. package/src/environment/__tests__/readiness.test.ts +42 -0
  1016. package/src/environment/__tests__/recovery.test.ts +62 -0
  1017. package/src/environment/__tests__/resize-dispose.test.ts +30 -0
  1018. package/src/environment/__tests__/signature-red.test.ts +45 -0
  1019. package/src/environment/__tests__/signature.test.ts +60 -0
  1020. package/src/environment/descriptors.ts +7 -0
  1021. package/src/environment/extracted-environment.ts +239 -0
  1022. package/src/environment/generation.ts +158 -0
  1023. package/src/environment/gpu-bundle.ts +144 -0
  1024. package/src/environment/graph.ts +588 -0
  1025. package/src/environment/inspection.ts +107 -0
  1026. package/src/environment/lifecycle.ts +124 -0
  1027. package/src/environment/readiness.ts +76 -0
  1028. package/src/environment/signature.ts +185 -0
  1029. package/src/errors/ecs-validation.ts +16 -0
  1030. package/src/errors/index.ts +3 -0
  1031. package/src/errors/recover.ts +119 -0
  1032. package/src/errors/render.ts +1244 -0
  1033. package/src/extract/__tests__/directional-csm-domain.unit.test.ts +391 -0
  1034. package/src/extract/__tests__/environment-source.test.ts +105 -0
  1035. package/src/extract/__tests__/schema-readers.unit.test.ts +16 -0
  1036. package/src/extract/directional-csm.ts +959 -0
  1037. package/src/extract/index.ts +10 -0
  1038. package/src/extract/material-interface.ts +604 -0
  1039. package/src/extract/schema-readers.ts +27 -0
  1040. package/src/extract/visibility.ts +120 -0
  1041. package/src/features/graph-contribution.ts +577 -0
  1042. package/src/features/host.ts +1097 -0
  1043. package/src/features/index.ts +100 -0
  1044. package/src/features/morph/index.ts +24 -0
  1045. package/src/features/morph/morph-bounds.ts +123 -0
  1046. package/src/features/morph/morph-feature.ts +287 -0
  1047. package/src/features/prepared-gpu-work.ts +902 -0
  1048. package/src/features/prepared-graphics-store.ts +435 -0
  1049. package/src/features/prepared-graphics.ts +479 -0
  1050. package/src/features/render-graph-compute.ts +60 -0
  1051. package/src/features/render-graph-contribution.ts +95 -0
  1052. package/src/features/render-graph-raster.ts +308 -0
  1053. package/src/features/render-graph-resources.ts +36 -0
  1054. package/src/features/scene-temporal.ts +274 -0
  1055. package/src/features/taa-resolve.ts +244 -0
  1056. package/src/features/targets.ts +83 -0
  1057. package/src/features/types.ts +291 -0
  1058. package/src/frame-chain.ts +21 -0
  1059. package/src/fullscreen-post-process-pass.ts +406 -0
  1060. package/src/glyph-text-layout-system.ts +447 -0
  1061. package/src/gpu-driven/batch-topology.ts +423 -0
  1062. package/src/gpu-driven/production-raster.ts +1705 -0
  1063. package/src/gpu-driven/view-gpu.ts +849 -0
  1064. package/src/gpu-driven/view-reference.ts +110 -0
  1065. package/src/gpu-resource-store.ts +1921 -0
  1066. package/src/gpu-resource.ts +159 -0
  1067. package/src/gpu-scene-schema.ts +224 -0
  1068. package/src/gpu-scene.ts +855 -0
  1069. package/src/gpu-stage.ts +9 -0
  1070. package/src/gpu-texture-usage.ts +12 -0
  1071. package/src/gpu-usage.ts +14 -0
  1072. package/src/hdrp-buffers.ts +689 -0
  1073. package/src/hdrp-cluster-membership.ts +70 -0
  1074. package/src/hdrp-pipeline.ts +525 -0
  1075. package/src/ibl/IblPipelineCache.ts +1246 -0
  1076. package/src/ibl/cubemap-projection.ts +60 -0
  1077. package/src/ibl/face-uniforms.ts +150 -0
  1078. package/src/ibl/skylight-bind-group.ts +513 -0
  1079. package/src/index.ts +271 -0
  1080. package/src/instance-buffer-cache.ts +123 -0
  1081. package/src/internal.ts +88 -0
  1082. package/src/lifecycle.ts +123 -0
  1083. package/src/light-buffer-layout.ts +346 -0
  1084. package/src/materials.ts +236 -0
  1085. package/src/mesh-material-bindings.ts +104 -0
  1086. package/src/mesh-update-errors.ts +113 -0
  1087. package/src/mipmap-generator.ts +244 -0
  1088. package/src/param-schema-projection-census.ts +73 -0
  1089. package/src/pbr-pipeline.ts +749 -0
  1090. package/src/persistent-render-scene.ts +1752 -0
  1091. package/src/pipeline/index.ts +40 -0
  1092. package/src/pipeline-builder.ts +386 -0
  1093. package/src/pipeline-errors.ts +172 -0
  1094. package/src/pipeline-spec.ts +1768 -0
  1095. package/src/plugin.ts +137 -0
  1096. package/src/post-process-errors.ts +304 -0
  1097. package/src/prepare/__tests__/schema-readers.unit.test.ts +16 -0
  1098. package/src/prepare/index.ts +8 -0
  1099. package/src/prepare/prepared-graphics-resolver.ts +455 -0
  1100. package/src/prepare/schema-readers.ts +20 -0
  1101. package/src/record/__tests__/environment-record.test.ts +35 -0
  1102. package/src/record/__tests__/frame-targets.unit.test.ts +54 -0
  1103. package/src/record/__tests__/material-bg-cache.unit.test.ts +41 -0
  1104. package/src/record/__tests__/material-slot-plan.unit.test.ts +76 -0
  1105. package/src/record/__tests__/membership-timing.unit.test.ts +524 -0
  1106. package/src/record/__tests__/render-submission.integration.test.ts +76 -0
  1107. package/src/record/__tests__/render-submission.perf.test.ts +141 -0
  1108. package/src/record/__tests__/shadow-submit-mode.unit.test.ts +88 -0
  1109. package/src/record/__tests__/video-texture-view.unit.test.ts +90 -0
  1110. package/src/record/__tests__/view-ubo-layout.unit.test.ts +101 -0
  1111. package/src/record/frame-lighting.ts +1183 -0
  1112. package/src/record/frame-observation.ts +122 -0
  1113. package/src/record/frame-snapshot.ts +515 -0
  1114. package/src/record/frame-targets.ts +372 -0
  1115. package/src/record/frame.ts +1874 -0
  1116. package/src/record/helpers.ts +289 -0
  1117. package/src/record/index.ts +15 -0
  1118. package/src/record/main-pass-geometry.ts +1014 -0
  1119. package/src/record/main-pass-material.ts +716 -0
  1120. package/src/record/main-pass-skin.ts +51 -0
  1121. package/src/record/main-pass-sprite-draws.ts +1056 -0
  1122. package/src/record/main-pass-sprite.ts +166 -0
  1123. package/src/record/main-pass.ts +588 -0
  1124. package/src/record/material-payload.ts +292 -0
  1125. package/src/record/material-slot-plan.ts +68 -0
  1126. package/src/record/membership-timing.ts +1012 -0
  1127. package/src/record/mesh-ssbo.ts +406 -0
  1128. package/src/record/shadow-caster-uniform.ts +37 -0
  1129. package/src/record/shadow-pass.ts +2387 -0
  1130. package/src/record/shadow-submit-mode.ts +277 -0
  1131. package/src/record/skybox-post-pass.ts +594 -0
  1132. package/src/record/typed-frame-graph.ts +499 -0
  1133. package/src/record/view-ubo.ts +206 -0
  1134. package/src/render-data.ts +385 -0
  1135. package/src/render-dispatch-membership.ts +155 -0
  1136. package/src/render-graph-primitives.ts +1586 -0
  1137. package/src/render-pipeline-context.ts +332 -0
  1138. package/src/render-pipeline-target.ts +96 -0
  1139. package/src/render-pipeline.ts +343 -0
  1140. package/src/render-scene-projection.ts +1738 -0
  1141. package/src/render-system-extract.ts +5203 -0
  1142. package/src/render-system-fold.ts +531 -0
  1143. package/src/render-system.ts +3258 -0
  1144. package/src/renderer/asset-service.ts +32 -0
  1145. package/src/renderer/backend-selection.ts +121 -0
  1146. package/src/renderer/environment-classify.ts +30 -0
  1147. package/src/renderer/environment-error.ts +19 -0
  1148. package/src/renderer/material/assembly.ts +53 -0
  1149. package/src/renderer/material/pipeline-projection.ts +140 -0
  1150. package/src/renderer/renderer-factory.ts +9062 -0
  1151. package/src/renderer.ts +940 -0
  1152. package/src/scene-instances/post-spawn-resolve-joints.ts +168 -0
  1153. package/src/scene-utils/collect-subtree.ts +40 -0
  1154. package/src/shadow-atlas.ts +244 -0
  1155. package/src/ssao-buffers.ts +175 -0
  1156. package/src/ssao-config.ts +61 -0
  1157. package/src/ssao-data.ts +106 -0
  1158. package/src/surface-format.ts +37 -0
  1159. package/src/systems/active-camera.ts +116 -0
  1160. package/src/systems/pass-selector.ts +49 -0
  1161. package/src/systems/skin-palette-allocator.ts +294 -0
  1162. package/src/systems/transparent-sort-config.ts +211 -0
  1163. package/src/taa-history-store.ts +429 -0
  1164. package/src/temporal-coverage.ts +106 -0
  1165. package/src/temporal-frame-transaction.ts +301 -0
  1166. package/src/temporal-inspection.ts +194 -0
  1167. package/src/temporal-view.ts +174 -0
  1168. package/src/tilemap/resolve-tileset-runtime.ts +72 -0
  1169. package/src/tilemap-chunk-extract-system.ts +1307 -0
  1170. package/src/typed-render-graph-primitives.ts +530 -0
  1171. package/src/typed-shadow-passes.ts +195 -0
  1172. package/src/urp-pipeline.ts +340 -0
@@ -0,0 +1,1096 @@
1
+ import type { EntityHandle, World } from '@forgeax/engine-ecs';
2
+ import { type Mat4, type Vec3 } from '@forgeax/engine-math';
3
+ import { type SceneHierarchySnapshot } from '@forgeax/engine-scene';
4
+ import type { Handle, MaterialAsset, MaterialError, MaterialPass, MaterialRenderState, MaterialTextureCoordinates, ParamSchemaEntry, PrimitiveTopology } from '@forgeax/engine-types';
5
+ import { type Result } from '@forgeax/engine-types';
6
+ import type { RenderAssetPort } from './assets/render-asset-port';
7
+ import { type Antialias, type BloomEnabled, type Tonemap } from './components';
8
+ import { type ExtractedEnvironment } from './environment/extracted-environment';
9
+ import { FogOwnerConflictError, FogParametersInvalidError, type RenderError } from './errors/render';
10
+ import { type DirectionalCsmConfig, type DirectionalCsmResult } from './extract/directional-csm';
11
+ import { type DerivedMaterialSlotProjection } from './extract/material-interface';
12
+ import { type ParamSchemaProjectionCensus } from './param-schema-projection-census';
13
+ import { type RenderCandidateDomain, type RenderDispatchMembership } from './render-dispatch-membership';
14
+ export { type CascadeVolume, type CascadeVolumeSet, CascadeVolumeSetBuilder, type CsmCameraData, computeDirectionalCsm, type DirectionalCsmConfig, type DirectionalCsmResult, directionalCascadeAtlasSize, directionalCascadeRasterViewport, pssmSplit, } from './extract/directional-csm';
15
+ import { type VisibilitySnapshot } from './extract/visibility';
16
+ import type { RenderFeatureHiddenEntityReport, RenderFeatureWorldVisibilitySnapshot } from './features/types';
17
+ import type { RenderSceneFactInput } from './gpu-scene-schema';
18
+ import { type MeshMaterialBindingDiagnostic, type MeshMaterialBindingSource } from './mesh-material-bindings';
19
+ import type { SkinPaletteAllocator } from './systems/skin-palette-allocator';
20
+ export interface CameraSnapshot {
21
+ /** Renderer-local World attachment identity. */
22
+ readonly worldId: number;
23
+ /** Packed ECS entity handle; its high bits retain the entity generation. */
24
+ readonly entityKey: number;
25
+ /** World-space camera translation (mat4.getTranslation of Transform.world). */
26
+ readonly position: Vec3;
27
+ /**
28
+ * Resolved world-space camera mat4 (column-major 16 floats), copied from the
29
+ * entity's `Transform.world` view. The record stage derives the view matrix
30
+ * as `mat4.invert(world)` (feat-20260601 D-3: read world mat4 -> invert; no
31
+ * recompose from decomposed TRS).
32
+ */
33
+ readonly world: Float32Array;
34
+ readonly fov: number;
35
+ readonly aspect: number;
36
+ readonly near: number;
37
+ readonly far: number;
38
+ /**
39
+ * Camera projection variant (`'perspective'` | `'orthographic'`),
40
+ * surfaced through the closed string-literal union narrowed from the
41
+ * Camera schema's `projection` f32 discriminator. Drives the CSM
42
+ * frustum-corner builder in render-system-extract: perspective uses
43
+ * mat4.perspective(fov, aspect, ...); orthographic uses mat4.ortho
44
+ * (left, right, bottom, top, ...). Without this discrimination an
45
+ * orthographic camera (fov=0) would feed a degenerate matrix into
46
+ * the CSM AABB-fit and the shadow atlas would never be written
47
+ * (feat-20260613 M6 / w20 fix).
48
+ */
49
+ readonly projection: 'perspective' | 'orthographic';
50
+ /** Orthographic left frustum plane (only consumed when projection === 'orthographic'). */
51
+ readonly orthoLeft: number;
52
+ /** Orthographic right frustum plane. */
53
+ readonly orthoRight: number;
54
+ /** Orthographic bottom frustum plane. */
55
+ readonly orthoBottom: number;
56
+ /** Orthographic top frustum plane. */
57
+ readonly orthoTop: number;
58
+ /**
59
+ * feat-20260519-tonemap-reinhard-mvp / M3 / T-M3.1: tone-map mode
60
+ * surfaced through the closed string-literal union (`tonemapFromF32`
61
+ * narrows the schema's `f32` discriminator). The record stage branches
62
+ * on this field to pick the geometry pipeline target format
63
+ * (`bgra8unorm-srgb` for `'none'` / `'rgba16float'` for
64
+ * `'reinhard-extended'`) and to decide whether to emit the post-process
65
+ * tonemap fullscreen pass.
66
+ */
67
+ readonly tonemap: Tonemap;
68
+ /** Linear pre-multiplier applied before the luminance compute (T-M3.3). */
69
+ readonly exposure: number;
70
+ /** Bright-end break point Lw for the extended Reinhard curve (T-M3.3). */
71
+ readonly whitePoint: number;
72
+ /**
73
+ * feat-20260528-fxaa-post-processing / w3: anti-alias mode surfaced
74
+ * through the closed string-literal union (antialiasFromF32 narrows
75
+ * the schema's f32 discriminator). The record stage branches on this
76
+ * field to decide whether to emit the FXAA post-process pass.
77
+ */
78
+ readonly antialias: Antialias;
79
+ /** Explicit authoring fence for discontinuous view changes. */
80
+ readonly historyVersion: number;
81
+ /**
82
+ * feat-20260531-bloom-first-declarative-render-graph-pass / w4: bloom
83
+ * enabled discriminator surfaced through the closed string-literal union
84
+ * (bloomEnabledFromF32 narrows the schema's f32 discriminator). The record
85
+ * stage branches on this field to decide whether to emit the bloom
86
+ * post-process pipeline.
87
+ */
88
+ readonly bloom: BloomEnabled;
89
+ /** HDR luminance threshold for bright-pass extraction (D-3 default 1.0). */
90
+ readonly bloomThreshold: number;
91
+ /** Multiplier applied to the blurred bloom contribution in composite (D-3 default 1.0). */
92
+ readonly bloomIntensity: number;
93
+ /** Gaussian blur kernel radius, clamped [1.0, 4.0] in shader (D-3 default 4.0). */
94
+ readonly bloomBlurRadius: number;
95
+ /**
96
+ * feat-20260709 M3 / D-3: clear-color RGBA sourced from the Camera entity's
97
+ * inline `array<f32,4>` column (first-archetype-hit per OOS-2). Collapsed
98
+ * from the feat-20260608 clearR/G/B/A snapshot quartet into one field aligned
99
+ * with the light snapshot shape. AI users override per-camera by setting
100
+ * `clearColor` when spawning the Camera entity; default is opaque black
101
+ * `[0, 0, 0, 1]` (D-5). The record stage reads these values verbatim into
102
+ * the LoadOp::Clear color slot.
103
+ */
104
+ readonly clearColor: readonly [number, number, number, number];
105
+ }
106
+ export type RenderVisibilityViewKind = 'main' | 'cascade';
107
+ /**
108
+ * One of the four CPU visibility views. Cascade membership is copied from the
109
+ * canonical CascadeVolumeSet; this descriptor never derives a second volume.
110
+ */
111
+ export interface RenderVisibilityViewDescriptor {
112
+ readonly viewId: string;
113
+ readonly kind: RenderVisibilityViewKind;
114
+ readonly cascadeIndex: number | undefined;
115
+ readonly planes: Float32Array;
116
+ /** Conservative world AABB used by the persistent spatial owner. */
117
+ readonly broadphaseWorldAabb?: Float32Array | undefined;
118
+ /** Canonical raster matrix for a cascade; absent for the main view. */
119
+ readonly lightViewProj?: Float32Array | undefined;
120
+ readonly casterCandidateIndices: ReadonlySet<number>;
121
+ readonly volumeRevision: number | undefined;
122
+ readonly spatialIndexRevision: number | undefined;
123
+ }
124
+ /** Build the main camera plus exactly three CSM view descriptors. */
125
+ export declare function buildRenderVisibilityViewDescriptors(input: {
126
+ readonly camera: CameraSnapshot | undefined;
127
+ readonly directionalCsm: DirectionalCsmResult | undefined;
128
+ readonly spatialIndexRevision?: number | undefined;
129
+ }): readonly RenderVisibilityViewDescriptor[];
130
+ /**
131
+ * DirectionalLightSnapshot — sun-like infinite light variant of the
132
+ * `LightSnapshot` discriminated union (M2 / w16 / AC-03). Host pre-multiplies
133
+ * `color * intensity` so the shader sees the radiance term directly (charter
134
+ * P4 host-side parity); `direction` stays in raw outgoing-vector form so the
135
+ * shader can negate it once for BRDF (`let l = normalize(-light.direction)`).
136
+ *
137
+ * Plan-strategy D-S1 (3) (LightSnapshot to GPU buffer bucket 1:1 mapping).
138
+ */
139
+ export interface DirectionalLightSnapshot {
140
+ readonly kind: 'directional';
141
+ readonly direction: Vec3;
142
+ readonly color: Vec3;
143
+ readonly intensity: number;
144
+ }
145
+ /**
146
+ * PointLightSnapshot — omnidirectional point variant. `position` from the
147
+ * companion Transform; `invRangeSquared = 1 / range^2` host-folded via
148
+ * `computeInvRangeSquared` (range = +Infinity -> 0; range = 0 -> 1e8 NaN
149
+ * protection per D-S5).
150
+ */
151
+ export interface PointLightSnapshot {
152
+ readonly kind: 'point';
153
+ readonly position: Vec3;
154
+ readonly color: Vec3;
155
+ readonly intensity: number;
156
+ readonly invRangeSquared: number;
157
+ /**
158
+ * feat-20260612-point-light-shadows-urp-hdrp M1 / T-M1-8 + M4 / T-M4-4:
159
+ * cube_array atlas layer index for this light's shadow map (0..3 for shadow
160
+ * casters; sentinel `-1` for non-shadow lights). Default `-1` per
161
+ * plan-strategy §D-2 — record stage / shader skips shadow sampling when the
162
+ * lane equals the sentinel. Joined with `pointShadow[]` by entity at the
163
+ * end of extract; HDRP record stage threads `shadowAtlasLayer + shadowNear +
164
+ * shadowFar` through `packLightSlot` as the §D-8 pad-lane payload.
165
+ */
166
+ readonly shadowAtlasLayer?: number;
167
+ /**
168
+ * Per-face perspective near plane (matches `PointLightShadow.nearPlane`).
169
+ * Used by HDRP `evalPointShadowed` for depth-ref reconstruction; rides
170
+ * `LightSlot.kind_and_pad.z` (byte 56..60) on the std430 std layout.
171
+ */
172
+ readonly shadowNear?: number;
173
+ /**
174
+ * Per-face perspective far plane (matches `PointLightShadow.farPlane`).
175
+ * Rides `LightSlot.kind_and_pad.w` (byte 60..64).
176
+ */
177
+ readonly shadowFar?: number;
178
+ }
179
+ /**
180
+ * PointShadowSnapshot — extract-stage view of one shadow-casting point light
181
+ * (feat-20260612-point-light-shadows-urp-hdrp M1 / T-M1-7).
182
+ *
183
+ * `entity` is the spawning entity (joins PointLight + PointLightShadow on the
184
+ * same archetype); `position` is the light world-space position resolved from
185
+ * the companion Transform (mirrors PointLightSnapshot.position).
186
+ * `shadowMatrices` is the 96-float packed mat4[6] table (column-major,
187
+ * 6 mat4 * 16 floats = 384 bytes) ready for UBO upload.
188
+ *
189
+ * Plan-strategy §D-3: the record stage allocates a dynamic-offset uniform
190
+ * buffer (384 B per-light, aligned to minUniformBufferOffsetAlignment, WebGPU
191
+ * min 256 -> 512 B stride). Extract owns the host-side `Float32Array(96)`;
192
+ * record owns the GPU `RhiBuffer` lifetime.
193
+ *
194
+ * `mapSize` / `nearPlane` / `farPlane` ride here so record stage can size the
195
+ * cube atlas faces and feed shader the proj constants without re-querying ECS.
196
+ * `shadowAtlasLayer` is assigned by extract in spawn order (0 .. cap-1) so the
197
+ * downstream LightSlot / packPointLight packers carry the layer index in
198
+ * pointPadW (T-M1-8 will rename to shadowAtlasLayer).
199
+ */
200
+ export interface PointShadowSnapshot {
201
+ /** Spawning entity index (joins PointLight + PointLightShadow + Transform). */
202
+ readonly entity: number;
203
+ /** World-space light position (sourced from companion Transform). */
204
+ readonly position: Vec3;
205
+ /** PointLightShadow.mapSize (per-face cube square dimension; 512 default). */
206
+ readonly mapSize: number;
207
+ readonly nearPlane: number;
208
+ readonly farPlane: number;
209
+ /**
210
+ * Atlas layer assigned by extract in spawn order (0..cap-1, where cap=4
211
+ * matches PointLightShadow cardinality). Sentinel -1 is reserved by the
212
+ * shader-side LightSlot for no-shadow lights (T-M1-8).
213
+ */
214
+ readonly shadowAtlasLayer: number;
215
+ /**
216
+ * 6 view-proj mat4 in face order [+X, -X, +Y, -Y, +Z, -Z] packed into one
217
+ * Float32Array(96). 16 floats per face = 64 B; 6 * 64 = 384 B raw. The
218
+ * record stage pads each slot to 512 B (256 alignment) when packing into
219
+ * the per-light dynamic-offset UBO (plan-strategy §D-3).
220
+ */
221
+ readonly shadowMatrices: Float32Array;
222
+ }
223
+ /**
224
+ * SpotLightSnapshot — cone-restricted variant. `position` from companion
225
+ * Transform; `direction` raw outgoing-vector; `cosInner` / `cosOuter` host
226
+ * pre-converted via `degToCos` so the shader sees only cosines (D-S2).
227
+ *
228
+ * feat-20260625-spot-light-shadow-mapping M1 w5: added shadow fields.
229
+ * castShadow (bool) gates shadow projection; lightViewProj is the perspective
230
+ * light-view-projection matrix computed in extract (undefined when castShadow
231
+ * is false, dir degenerates, or the light is clipped). shadowAtlasTile
232
+ * (i32 sentinel -1) is the allocated tile index 0..3 or -1 for unassigned
233
+ * (plan-strategy D-4). mapSize / nearPlane / farPlane are the source
234
+ * component shadow parameters carried through to the record stage.
235
+ */
236
+ export interface SpotLightSnapshot {
237
+ readonly kind: 'spot';
238
+ /** ECS entity handle in the source World; diagnostic identity only. */
239
+ readonly entity: number;
240
+ readonly position: Vec3;
241
+ readonly direction: Vec3;
242
+ readonly color: Vec3;
243
+ readonly intensity: number;
244
+ readonly invRangeSquared: number;
245
+ readonly cosInner: number;
246
+ readonly cosOuter: number;
247
+ readonly castShadow: boolean;
248
+ readonly lightViewProj: Float32Array | undefined;
249
+ readonly mapSize: number;
250
+ readonly nearPlane: number;
251
+ readonly farPlane: number;
252
+ readonly shadowAtlasTile: number;
253
+ }
254
+ /**
255
+ * LightSnapshot — discriminated union of the three KHR_lights_punctual
256
+ * variants. AI users + the record stage perform an exhaustive switch on
257
+ * `kind`; missing arms are caught at compile time (no `default`,
258
+ * `assertNever`-style guards). Plan-strategy R-10.
259
+ */
260
+ export type LightSnapshot = DirectionalLightSnapshot | PointLightSnapshot | SpotLightSnapshot;
261
+ /**
262
+ * ExtractedLights — three-bucket output of the extractFrame three-query
263
+ * union (M2 / w16 / AC-03). Plan-strategy section 3.1 EXT node:
264
+ * - `directional` — at most one (record-stage N>1 fail-fast lands in M3)
265
+ * - `point[]` — first-slice cap of 4 enforced at record stage (M3)
266
+ * - `spot[]` — first-slice cap of 4 enforced at record stage (M3)
267
+ * `directionalCount` exposes the raw count of DirectionalLight entities the
268
+ * extract observed (so the record stage can fire `render-system-multi-light`
269
+ * when N>1 without re-running the query). M3 / w19 will widen this with
270
+ * pointCount / spotCount fields once the matching record-time fail-fast
271
+ * lands; for M2 the field stays directional-only to keep AC-06 (a) intact.
272
+ */
273
+ export interface ExtractedLights {
274
+ readonly directional: DirectionalLightSnapshot | undefined;
275
+ readonly directionalCount: number;
276
+ readonly point: readonly PointLightSnapshot[];
277
+ readonly spot: readonly SpotLightSnapshot[];
278
+ /**
279
+ * feat-20260613-csm-cascaded-shadow-maps M2 / w9: per-cascade light-view-
280
+ * projection matrices (one per cascade, length 4 pre-allocated). Each matrix
281
+ * is a column-major 16-float mat4 with atlas tile UV inset baked in
282
+ * (plan-strategy D-3). cascadeCount < 4: unused slots are zero matrices.
283
+ * Undefined when castShadow=false or no directional light.
284
+ */
285
+ readonly lightViewProj: readonly Float32Array[] | undefined;
286
+ /**
287
+ * feat-20260613-csm-cascaded-shadow-maps M2 / w9: view-space z depths
288
+ * of the PSSM split planes (length 4, Float32Array). cascadeCount < 4:
289
+ * unused slots are 0.0f. Undefined when castShadow=false or no directional
290
+ * light.
291
+ */
292
+ readonly splitPlanes: Float32Array | undefined;
293
+ /**
294
+ * feat-20260613-csm-cascaded-shadow-maps M2 / w9: effective cascade count
295
+ * from the DirectionalLight component (1..4). Undefined when castShadow=false
296
+ * or no directional light.
297
+ */
298
+ readonly cascadeCount: number | undefined;
299
+ /**
300
+ * feat-20260613-csm-cascaded-shadow-maps M2 / w9: cascade blend width
301
+ * from the DirectionalLight component (0..0.5). Undefined when castShadow=false
302
+ * or no directional light.
303
+ */
304
+ readonly cascadeBlend: number | undefined;
305
+ /**
306
+ * feat-20260520-directional-light-shadow-mapping M1c / w8:
307
+ * shadowMapSize from DirectionalLight.mapSize. Drives shadow RT
308
+ * lazy-allocate (idempotency: same size -> no rebuild). Undefined when
309
+ * castShadow=false or no directional light.
310
+ */
311
+ readonly shadowMapSize: number | undefined;
312
+ /**
313
+ * feat-20260621-merge-directionallightshadow-into-directionallight M2:
314
+ * depthBias from the merged DirectionalLight (constant shadow-bias floor).
315
+ * Populated when castShadow=true on the first-hit directional light;
316
+ * undefined otherwise.
317
+ */
318
+ readonly depthBias: number | undefined;
319
+ /**
320
+ * feat-20260621-merge-directionallightshadow-into-directionallight M2:
321
+ * normalBias from the merged DirectionalLight (slope-based shadow-bias
322
+ * coefficient).
323
+ * Populated when castShadow=true on the first-hit directional light;
324
+ * undefined otherwise.
325
+ */
326
+ readonly normalBias: number | undefined;
327
+ /**
328
+ * feat-20260621-merge-directionallightshadow-into-directionallight M2:
329
+ * pcfKernelSize from the merged DirectionalLight (PCF kernel width, odd>=1).
330
+ * Populated when castShadow=true on the first-hit directional light;
331
+ * undefined otherwise.
332
+ */
333
+ readonly pcfKernelSize: number | undefined;
334
+ /**
335
+ * feat-20260612-point-light-shadows-urp-hdrp M1 / T-M1-7:
336
+ * shadow-casting point lights (PointLight + PointLightShadow + Transform
337
+ * archetype join). Each entry carries the per-light 6-face VP matrices and
338
+ * the assigned cube_array atlas layer (0..3 in spawn order; sentinel -1 is
339
+ * reserved by the shader-side LightSlot for no-shadow point lights).
340
+ *
341
+ * Empty array when no PointLightShadow components exist (zero-cost gate per
342
+ * AC-09; record stage skips atlas allocation + shadow pass dispatch).
343
+ */
344
+ readonly pointShadow: readonly PointShadowSnapshot[];
345
+ /**
346
+ * bug-20260710-editor-cross-world-shadow: the RAW directional-shadow config
347
+ * (cascadeCount / splitLambda / cascadeBlend / mapSize / shadowDistance) of
348
+ * the first-hit castShadow DirectionalLight, carried unconditionally of
349
+ * whether this world had a camera. The {@link extractFrames} merge layer
350
+ * re-runs {@link computeDirectionalCsm} with this config + the surfaced
351
+ * camera so directional shadows work when the light and camera live in
352
+ * DIFFERENT worlds (editor editorWorld/sceneWorld super-composite). Undefined
353
+ * when castShadow=false or no directional light. The `lightViewProj` /
354
+ * `splitPlanes` fields above remain the *computed* per-world outputs (correct
355
+ * for single-world; recomputed at merge for cross-world).
356
+ */
357
+ readonly directionalCsmConfig: DirectionalCsmConfig | undefined;
358
+ /**
359
+ * bug-20260710-editor-cross-world-shadow: the light-direction of the
360
+ * first-hit castShadow DirectionalLight, carried so the merge layer can
361
+ * rebuild the light-view matrix. Redundant with `directional.direction` but
362
+ * kept explicit so the CSM recompute reads a single config bundle. Undefined
363
+ * when castShadow=false or no directional light.
364
+ */
365
+ readonly directionalCsmDirection: Vec3 | undefined;
366
+ /** Canonical receiver/caster plan consumed by persistent scene and record. */
367
+ readonly directionalCsm?: DirectionalCsmResult;
368
+ /** Internal compatibility projection; the plan above remains canonical. */
369
+ readonly cascades?: DirectionalCsmResult['cascades'];
370
+ }
371
+ /**
372
+ * SkylightSnapshot -- extract-stage view of one Skylight entity
373
+ * (feat-20260520-skylight-ibl-cubemap M4 / t26).
374
+ *
375
+ * `equirectHandle` carries the packed u32 handle for
376
+ * `Handle<EquirectAsset, 'shared'>`; the record stage drives the internal
377
+ * lazy cubemap projection from it and resolves the projected GPU cubemap via
378
+ * `GpuResourceStore.getCubemapGpuView(...)` and related helpers
379
+ * (feat-20260630 M3 / w16-w18). The snapshot carries NO projection status
380
+ * field: the status truth lives in the store's CubemapGpuEntry (D-3 SSOT);
381
+ * record queries it once per frame.
382
+ *
383
+ * `intensity` defaults to 1.0 via the Skylight component token defaults
384
+ * (plan-strategy D-6: Skylight data flows through existing extract->record
385
+ * pipeline; no independent ECS system).
386
+ */
387
+ export interface SkylightSnapshot {
388
+ readonly equirectHandle: number;
389
+ readonly color: readonly [number, number, number];
390
+ readonly intensity: number;
391
+ /** Environment-space quaternion [x, y, z, w], identity by default. */
392
+ readonly rotation: readonly [number, number, number, number];
393
+ readonly entityHandle: number;
394
+ }
395
+ /** Retained scene-radiance Fog facts; parameters remain outside inspection. */
396
+ export interface FogSnapshot {
397
+ readonly color: readonly [number, number, number];
398
+ readonly density: number;
399
+ readonly heightFalloff: number;
400
+ readonly maxOpacity: number;
401
+ readonly revision: number;
402
+ }
403
+ /** Internal owner facts needed to publish a Fog snapshot transactionally. */
404
+ export interface FogSelection {
405
+ readonly snapshot: FogSnapshot | undefined;
406
+ readonly resourceOwner: number;
407
+ readonly entity: EntityHandle | undefined;
408
+ }
409
+ export type FogSelectionError = Extract<RenderError, FogOwnerConflictError | FogParametersInvalidError>;
410
+ export type FogSelectionResult = Result<FogSelection, FogSelectionError>;
411
+ /** Select and validate the single Fog authoring entity from resourceOwner. */
412
+ export declare function selectFog(world: World | undefined, resourceOwner: number): FogSelectionResult;
413
+ /**
414
+ * SkyboxSnapshot -- extract-stage view of one SkyboxBackground entity
415
+ * (feat-20260531-skybox-env-background M2 / w5).
416
+ *
417
+ * `equirectHandle` carries the packed u32 handle for
418
+ * `Handle<EquirectAsset, 'shared'>`; the record stage resolves the projected
419
+ * GPU cubemap via `GpuResourceStore.getCubemapGpuView(...)`.
420
+ *
421
+ * `mode` carries the raw `f32` column value (`SKYBOX_MODE_CUBEMAP = 0`).
422
+ * First hit wins per plan-strategy D-6; multi-entity once-warn in record stage.
423
+ */
424
+ export interface SkyboxSnapshot {
425
+ readonly equirectHandle: number;
426
+ readonly mode: number;
427
+ /** Environment-space quaternion [x, y, z, w], identity by default. */
428
+ readonly rotation: readonly [number, number, number, number];
429
+ readonly entityHandle: number;
430
+ }
431
+ export interface RenderableSnapshot {
432
+ readonly assetHandle: number;
433
+ readonly transform: TransformSnapshot;
434
+ /**
435
+ * Bounds-only transform derived from authored local TRS when the resolved
436
+ * world column is still its identity default. This preserves the producer
437
+ * bounds source for direct extract-before-propagate paths without changing
438
+ * the render SSOT, which remains `transform.world`.
439
+ */
440
+ readonly boundsWorld?: Float32Array;
441
+ /** Candidate-domain copy of all instance transforms, retained before cull. */
442
+ readonly candidateInstanceTransforms?: Float32Array;
443
+ /** Finite producer-owned local bounds retained for persistent CPU view work. */
444
+ readonly localAabb?: Float32Array;
445
+ /**
446
+ * Optional authoring/pack-owned scene facts. The projection supplies
447
+ * explicit `unknown` defaults when this field is absent; it never infers
448
+ * staticness or shadow eligibility from frame-local behavior.
449
+ */
450
+ readonly sceneFact?: RenderSceneFactInput;
451
+ /**
452
+ * Forward raster item facts consumed by the first GPU-driven rigid lane.
453
+ * Each entry carries its source submesh, pass identity, and resolved queue.
454
+ */
455
+ readonly gpuDrivenDraws?: readonly GpuDrivenDrawSnapshot[];
456
+ /**
457
+ * feat-20260608 M5 amend / w11-a: the entity's representative (first)
458
+ * material snapshot, kept as a same-name shorthand for `materials[0]`.
459
+ * Per-entity dispatch (shading model routing, sprite-vs-mesh split, the
460
+ * D-1/D-3 pipeline-tag pick) is uniform across the entity's submeshes
461
+ * today, so the existing 20+ `entry.source.material.X` consumers in the
462
+ * record stage stay unchanged. Per-submesh material data (baseColor /
463
+ * UBO payload / paramSnapshot) lives in `materials[i]`.
464
+ */
465
+ readonly material: MaterialSnapshot;
466
+ /**
467
+ * feat-20260608 M5 amend / w11-a: per-submesh MaterialSnapshot[]
468
+ * positionally aligned with `MeshAsset.submeshes[]` (plan §3.2 sequence
469
+ * step 6 + AC-08). Length always equals the entity's submesh count once
470
+ * the extract stage's count-mismatch validator (M2 / w12) has filtered
471
+ * misaligned spawns. The record stage reads `materials[i]` to upload the
472
+ * i-th material UBO slot before drawing the i-th submesh.
473
+ *
474
+ * Backward-compat: `materials[0] === material` (the legacy mid-grey
475
+ * default-material case-B path also routes through `materials = [default]`,
476
+ * keeping the legacy single-mesh-no-material spawn shape working without
477
+ * a special branch in record).
478
+ */
479
+ readonly materials: readonly MaterialSnapshot[];
480
+ /** Per-slot provenance trace from the shared mesh-material resolver. */
481
+ readonly materialBindingSources: readonly MeshMaterialBindingSource[];
482
+ /** Active structured override diagnostics for this renderable. */
483
+ readonly materialBindingDiagnostics?: readonly MeshMaterialBindingDiagnostic[];
484
+ /**
485
+ * feat-20260708-composited-multi-world-rendering M1 / D-1: the worldId
486
+ * of the world this renderable was extracted from. Defaults to 0 in
487
+ * single-world path (extractFrame always assigns 0). The merge layer
488
+ * (extractFrames in M2) stamps the correct worldId per world before
489
+ * the record stage consumes it. Combined with `entityKey` via
490
+ * `worldEntityKey(worldId, entityKey)` to form per-entity cache keys.
491
+ *
492
+ * Never rewrite `entityKey` itself — consumers that need the real
493
+ * entity handle (video provider, etc.) read the bare `entityKey`.
494
+ */
495
+ readonly worldId: number;
496
+ /**
497
+ * feat-20260531-per-frame-bind-group-cache M1 / w3: packed Entity u32
498
+ * (encodeEntity(indexSlot, generation)) surface'd from the extract
499
+ * stage. Stable per-entity identity for the record stage cache keys
500
+ * (material / instances / per-frame clean-up) without re-querying the
501
+ * World (charter P5 Pipeline Isolation: record stage only consumes
502
+ * snapshot POD). Reuses the encodeEntity calculation already performed
503
+ * at :1293 for the Instances path, and now also computed for plain
504
+ * (non-Instances) renderables.
505
+ *
506
+ * Never rewrite this field — cache keys use `worldEntityKey(worldId, entityKey)`,
507
+ * not the bare entityKey alone (D-1).
508
+ */
509
+ readonly entityKey: number;
510
+ /** Stable pre-main-cull candidate index used by the directional CSM plan. */
511
+ readonly candidateIndex?: number;
512
+ /**
513
+ * feat-20260514 M3 (w15): when the entity carries an `Instances` component
514
+ * the extract stage materialises a fresh `Float32Array` snapshot of the
515
+ * packed mat4 transforms (16 f32 per instance, stride 16) plus a stable
516
+ * `cacheKey` (the entity's packed u32) and the `archVersion` (used by the
517
+ * record stage to invalidate its per-entity GPU buffer cache when the
518
+ * archetype storage grew). Absent (`undefined`) means the record stage
519
+ * falls back to the shared 1-element identity-mat4 storage buffer +
520
+ * `drawIndexed(.., 1, ..)`.
521
+ */
522
+ readonly instances?: InstancesSnapshot;
523
+ /**
524
+ * feat-20260625-sprite-instances-and-tilemap-terrain-static-batch M3 / w10
525
+ * (plan-strategy D-1 + D-9): when the entity carries a `SpriteInstances`
526
+ * component the extract stage materialises a paired snapshot — packed mat4
527
+ * `transforms` (16 f32, stride 16) + per-instance UV `regions` (4 f32,
528
+ * stride 4) — plus the same cache fingerprint pair (`cacheKey` = entity
529
+ * packed u32, `archVersion` = archetype version stamp at snapshot time).
530
+ * The record stage interleaves the two arrays into an 80B-per-instance
531
+ * single GPU buffer routed through `@group(3) @binding(0)` (BGL unchanged,
532
+ * D-1). Absent (`undefined`) means the entity is not a `SpriteInstances`
533
+ * carrier; the record stage falls back to its existing sprite path
534
+ * (material UBO region + identity-instance buffer).
535
+ *
536
+ * Three structured `EcsError` codes fire at extract entry and skip the
537
+ * renderable on violation (charter P3 explicit failure):
538
+ * - `'sprite-instances-mutually-exclusive-with-instances'`
539
+ * - `'sprite-instances-requires-sprite-shading-model'`
540
+ * - `'sprite-instances-count-mismatch'`
541
+ */
542
+ readonly spriteInstances?: SpriteInstancesSnapshot;
543
+ /**
544
+ * feat-20260523-skin-skeleton-animation M2 / T-21: when the entity carries
545
+ * a `Skin` component the extract stage populates this field with the
546
+ * skin palette slice metadata. The record stage uses this to route the
547
+ * draw to `forgeax::pbr-skin` pipeline + set the palette dynamic offset.
548
+ * Absent (`undefined`) means the entity is not skinned.
549
+ */
550
+ readonly skin?: SkinPaletteSlice;
551
+ /** Current morph producer weights; previous values come from the submitted projection epoch. */
552
+ readonly morphWeights?: Float32Array;
553
+ /** Previous facts from the renderer's last successful submission epoch. */
554
+ readonly temporal?: RenderableTemporalSnapshot;
555
+ }
556
+ export type RenderablePreviousSource = 'last-submitted' | 'current-seed';
557
+ export type RenderableReactiveReason = 'new-slot' | 'generation-reuse' | 'reentered' | 'geometry-revision' | 'material-revision' | 'skinning-deformation' | 'morph-deformation';
558
+ export interface RenderableTemporalSnapshot {
559
+ readonly previousEpoch: number | undefined;
560
+ readonly previousSource: RenderablePreviousSource;
561
+ readonly reactive: boolean;
562
+ readonly reactiveReasons: readonly RenderableReactiveReason[];
563
+ readonly previousTransform: TransformSnapshot;
564
+ readonly previousInstances: InstancesSnapshot | undefined;
565
+ readonly previousSkin: SkinPaletteSlice | undefined;
566
+ readonly previousMorphWeights: Float32Array | undefined;
567
+ }
568
+ export interface GpuDrivenDrawSnapshot {
569
+ /** Index into the resolved mesh submesh array. */
570
+ readonly submeshIndex: number;
571
+ /** Index of the corresponding material pass in the resolved pass list. */
572
+ readonly passIndex: number;
573
+ /** Effective queue copied from that pass; always resolved at extract time. */
574
+ readonly queue: number;
575
+ readonly kind: 'indexed' | 'non-indexed';
576
+ readonly first: number;
577
+ readonly count: number;
578
+ readonly baseVertex: number;
579
+ readonly materialSlot: number;
580
+ readonly topology: PrimitiveTopology;
581
+ readonly pipelineClass: string;
582
+ readonly materialResourceClass: string;
583
+ }
584
+ /**
585
+ * feat-20260523-skin-skeleton-animation M2 / T-21 + T-24:
586
+ * per-draw palette slice metadata. Joint count + byte offset into the
587
+ * shared skin palette storage buffer.
588
+ *
589
+ * plan-strategy D-10: SkinPaletteSlice naming mirroring Bevy SkinByteOffset
590
+ * but with forgeax vocabulary (byteOffset not offset, jointCount not joint_count).
591
+ */
592
+ export interface SkinPaletteSlice {
593
+ readonly jointCount: number;
594
+ /** CPU snapshot of the exact palette written for this extract epoch. */
595
+ readonly jointMatrices: Float32Array;
596
+ /**
597
+ * Byte offset INTO `buffer` for this slice. On the storage path the
598
+ * allocator returns one shared buffer + a per-entity cursor offset; on
599
+ * the uniform fallback path each slice owns its own GPU buffer (cap
600
+ * `maxUniformBufferBindingSize` 16 KiB cannot host shared dynOffset
601
+ * windows for >1 entity), so `byteOffset === 0` for every slice and
602
+ * `buffer` is the per-slice handle. Record stage reads both fields and
603
+ * does not branch on the path -- BG cache key includes `buffer`, so
604
+ * two paths converge at the same code.
605
+ */
606
+ readonly byteOffset: number;
607
+ /**
608
+ * Per-slice GPU buffer handle. M6: feat-20260612 collapsed the prior
609
+ * shared-buffer assumption (record-stage read `pipelineState
610
+ * .skinPaletteAllocator.buffer`) into a per-slice carrier so the
611
+ * uniform fallback path can return a per-entity buffer without
612
+ * branching the record stage.
613
+ */
614
+ readonly buffer: import('@forgeax/engine-rhi').Buffer;
615
+ /** Previous successful-submit palette, paired with {@link buffer}. */
616
+ readonly previousBuffer?: import('@forgeax/engine-rhi').Buffer | undefined;
617
+ }
618
+ export interface InstancesSnapshot {
619
+ /** Packed column-major mat4 transforms (16 f32 per instance). */
620
+ readonly transforms: Float32Array;
621
+ /** Number of instances (transforms.length / 16). */
622
+ readonly instanceCount: number;
623
+ /** Stable per-entity GPU buffer cache key (the packed Entity u32). */
624
+ readonly cacheKey: number;
625
+ /**
626
+ * Archetype version stamp at snapshot time. The record stage compares this
627
+ * against its cached version per cacheKey; a bump means the underlying
628
+ * BufferPool slot may have grown / been reallocated, forcing a fresh
629
+ * `device.createBuffer + queue.writeBuffer` round.
630
+ */
631
+ readonly archVersion: number;
632
+ }
633
+ /**
634
+ * feat-20260625-sprite-instances-and-tilemap-terrain-static-batch M3 / w10:
635
+ * extract-stage view of a `SpriteInstances` carrier (2D peer of
636
+ * `InstancesSnapshot`).
637
+ *
638
+ * Field shapes mirror `InstancesSnapshot` so the record-stage cache protocol
639
+ * (`(cacheKey, archVersion, byteLength)` fingerprint triple) is reused
640
+ * verbatim. The byte length consumed at upload time is the sum
641
+ * `transforms.byteLength + regions.byteLength` (= 80*N for N instances,
642
+ * plan-strategy D-1 interleaved single-buffer); the record stage builds the
643
+ * 80B/instance interleaved buffer once per (entity, archVersion, byteLength)
644
+ * fingerprint change.
645
+ */
646
+ export interface SpriteInstancesSnapshot {
647
+ /** Packed column-major mat4 transforms (16 f32 per instance, stride 16). */
648
+ readonly transforms: Float32Array;
649
+ /** Per-instance UV vec4 regions (4 f32 per instance, stride 4). */
650
+ readonly regions: Float32Array;
651
+ /**
652
+ * Number of instances. Derived from `transforms.length / 16` (equivalently
653
+ * `regions.length / 4`); the extract-entry validator guarantees the two
654
+ * derivations agree, otherwise it fires
655
+ * `'sprite-instances-count-mismatch'` and skips the renderable.
656
+ */
657
+ readonly instanceCount: number;
658
+ /** Stable per-entity GPU buffer cache key (the packed Entity u32, D-9). */
659
+ readonly cacheKey: number;
660
+ /** Archetype version stamp at snapshot time (cache invalidation fingerprint). */
661
+ readonly archVersion: number;
662
+ }
663
+ /**
664
+ * TransformSnapshot: extract-stage view of one entity's resolved world
665
+ * transform (feat-20260601 D-3). Holds the single `world` mat4 (column-major
666
+ * 16 floats, copied from the entity's `Transform.world` view written by
667
+ * propagateTransforms). The record stage copies these 16 floats straight into
668
+ * the mesh SSBO slot (zero `mat4.compose`); position / scale consumers derive
669
+ * from the mat4 via `mat4.getTranslation` / basis-column lengths.
670
+ */
671
+ export interface TransformSnapshot {
672
+ readonly world: Float32Array;
673
+ }
674
+ /**
675
+ * MaterialSnapshot: extract-stage view of one entity's material asset (M2 / w6
676
+ * of feat-20260517-merge-mesh-renderer-material-renderer; plan-strategy section 2.3).
677
+ *
678
+ * Adds optional `baseColorTexture` + `sampler` slots (consumed by the record
679
+ * stage's textured-material code path; M3 / w10 dropped the cast-over-firstMaterial
680
+ * pattern in favour of direct snapshot field reads).
681
+ *
682
+ * feat-20260522-learn-render-3-1-sponza-model-loading-with-multi-l M4 extends
683
+ * the snapshot with `metallicRoughnessTexture` and `normalTexture`
684
+ * so the record stage can wire PBR texture bindings 4 and 6
685
+ * from real GPU views instead of placeholder 1x1 white / flat-normal views.
686
+ *
687
+ * Bounded scope: the snapshot tracks only what the record stage actually
688
+ * consumes today (charter proposition 5 consistent abstraction; YAGNI for
689
+ * future-proof field bloat). Future MaterialAsset extensions (emissive / etc)
690
+ * drive snapshot extensions when the record stage starts consuming them, not
691
+ * vice-versa.
692
+ *
693
+ * tweak-20260701 M1: `shadingModel` field removed — shader identity via
694
+ * {@link materialShaderId} is the single source of truth for material dispatch.
695
+ */
696
+ export interface MaterialSnapshot {
697
+ readonly baseColor: Vec3;
698
+ readonly metallic: number;
699
+ readonly roughness: number;
700
+ readonly clearcoat?: number | undefined;
701
+ readonly clearcoatRoughness?: number | undefined;
702
+ /** Authored Standard PBR specular tint in linear runtime color space. */
703
+ readonly specularTint?: readonly [number, number, number] | undefined;
704
+ /**
705
+ * Schema-driven material shader identifier (feat-20260523 M4-T05).
706
+ * Populated when the material asset uses the schema-driven path
707
+ * (payload.materialShader set). Undefined for unlit/sprite legacy
708
+ * materials and for case-B defaultMaterialSnapshot.
709
+ *
710
+ * The record stage uses this as the pipeline cache key first-level
711
+ * discriminator (M4-T06).
712
+ */
713
+ readonly materialShaderId?: string | undefined;
714
+ /** Canonical RenderAssetPort GUID used to join the production readiness tuple. */
715
+ readonly materialGuid?: string | undefined;
716
+ /**
717
+ * Stable source handle for the material asset. Record uses this only for
718
+ * same-frame assembly reuse; GPU bind-group validity still comes from the
719
+ * resource-identity cache.
720
+ */
721
+ readonly materialHandle?: number | undefined;
722
+ /** Whether the resolved material owns a ShadowCaster pass. */
723
+ readonly shadowCaster?: boolean | undefined;
724
+ /**
725
+ * The selected forward-pass state for this exact material. A mesh can bind
726
+ * different materials to its submeshes, so pipeline selection must read the
727
+ * state from the submesh snapshot rather than the entity's first material.
728
+ */
729
+ readonly renderState?: MaterialRenderState | undefined;
730
+ /**
731
+ * Schema-driven parameter snapshot (feat-20260523 M4-T05).
732
+ * Populated alongside materialShaderId. Maps param name to its
733
+ * runtime-resolved value: number for scalar params, number[] for
734
+ * vec/color params, string (GUID) for texture2d/sampler params.
735
+ */
736
+ readonly paramSnapshot?: Readonly<Record<string, number | number[] | string>> | undefined;
737
+ /** Effective MaterialAsset parameter contract used to lay out this snapshot. */
738
+ readonly materialParamSchema?: readonly ParamSchemaEntry[] | undefined;
739
+ /** Typed per-slot projection produced from the effective root schema. */
740
+ readonly derivedMaterialSlot?: DerivedMaterialSlotProjection | undefined;
741
+ /** Structured extract failure that the record stage must propagate and stop. */
742
+ readonly derivedMaterialError?: MaterialError | undefined;
743
+ /** Authored per-slot UV set and KHR texture transform metadata. */
744
+ readonly textureCoordinates?: ReadonlyMap<string, MaterialTextureCoordinates> | undefined;
745
+ /**
746
+ * User-region texture handles keyed by paramSchema field name
747
+ * (feat-20260621-learn-render-5-5-parallax M2 / w7). The SSOT carrier for
748
+ * EVERY texture the shader's `derive(paramSchema).textureFieldNames`
749
+ * declares — `baseColorTexture` / `metallicRoughnessTexture` /
750
+ * `normalTexture` for built-in standard-PBR, plus any custom field such as
751
+ * `heightTexture` (LO 5.5 parallax). The record stage iterates this map to
752
+ * assemble the user-region bind group per the per-shader BGL (w8), so a 4th
753
+ * (or Nth) texture flows end-to-end without a hardcoded field list.
754
+ *
755
+ * Populated by iterating `textureFieldNames`; absent keys mean the
756
+ * paramValue was missing / mis-typed (record falls back to default white).
757
+ * `emissiveTexture` / `occlusionTexture` are NOT here — they live in the
758
+ * engine-injection lightmap region (their named fields below feed
759
+ * `appendInjection('lightmap')`, not the user-region).
760
+ */
761
+ readonly textureHandles?: ReadonlyMap<string, Handle<'TextureAsset', 'shared'>> | undefined;
762
+ /**
763
+ * User-region texture field names whose paramValue resolved to a VideoAsset
764
+ * (kind `'video'`) rather than a static TextureAsset
765
+ * (feat-20260623-world-space-video-asset M4 / w14, D-5). The video GUID
766
+ * occupies the same texture2d values slot a static texture would (P4:
767
+ * one binding shape), but extract routes it here instead of `textureHandles`
768
+ * so the record stage pulls the current-frame view from the transient
769
+ * DynamicTextureStore (D-3) instead of `GpuResourceStore.ensureResident`
770
+ * (which has no `video` arm; AC-08). Each entry also carries the resolved
771
+ * clip handle so the record stage can key the per-frame upload.
772
+ *
773
+ * Producer/consumer split (charter P5 / AC-07 gate): extract owns the
774
+ * asset->snapshot translation; record consumes this POD field only — it never
775
+ * reaches back into the MaterialAsset to learn a field is video-sourced.
776
+ */
777
+ readonly videoTextureFields?: ReadonlyMap<string, Handle<'VideoAsset', 'shared'>> | undefined;
778
+ /** Authored sampler handles keyed by their matching texture parameter. */
779
+ readonly samplerHandles?: ReadonlyMap<string, Handle<'SamplerAsset', 'shared'>> | undefined;
780
+ readonly baseColorTexture?: Handle<'TextureAsset', 'shared'> | undefined;
781
+ /**
782
+ * PBR metallic-roughness texture handle (present for PBR/sprite/skin
783
+ * shaders). Undefined for the default-unlit shader
784
+ * (materialShaderId === 'forgeax::default-unlit'). The record stage reads
785
+ * this to write GPU view at material bind-group binding 4, falling
786
+ * back to a 1x1 white placeholder when undefined.
787
+ *
788
+ * feat-20260522-learn-render-3-1-sponza-model-loading-with-multi-l M4:
789
+ * field added so the record stage can wire real metallic-roughness
790
+ * textures from Sponza glTF materials (M3 writes the handle into
791
+ * SchemaDrivenMaterialAsset values; M4 extract carries it through to the snapshot).
792
+ */
793
+ readonly metallicRoughnessTexture?: Handle<'TextureAsset', 'shared'> | undefined;
794
+ /**
795
+ * PBR tangent-space normal texture handle (present for PBR/sprite/skin
796
+ * shaders). Undefined for the default-unlit shader
797
+ * (materialShaderId === 'forgeax::default-unlit'). The record stage reads
798
+ * this to write GPU view at material bind-group binding 6, falling
799
+ * back to a (0.5,0.5,1.0) flat-normal placeholder when undefined.
800
+ *
801
+ * feat-20260522-learn-render-3-1-sponza-model-loading-with-multi-l M4:
802
+ * field added symmetrically with metallicRoughnessTexture so the record
803
+ * stage can wire real normal textures from Sponza glTF materials.
804
+ */
805
+ readonly normalTexture?: Handle<'TextureAsset', 'shared'> | undefined;
806
+ /** Scalar applied to tangent-space normal XY after the normal texture sample. */
807
+ readonly normalScale?: number | undefined;
808
+ readonly emissive?: readonly [number, number, number] | undefined;
809
+ readonly emissiveIntensity?: number | undefined;
810
+ readonly emissiveTexture?: Handle<'TextureAsset', 'shared'> | undefined;
811
+ readonly occlusionTexture?: Handle<'TextureAsset', 'shared'> | undefined;
812
+ readonly occlusionStrength?: number | undefined;
813
+ /**
814
+ * Transparent composition flag derived from the first pass's
815
+ * `renderState.blend` presence on the underlying
816
+ * {@link MaterialPass} (feat-20260626-collapse M2: blend
817
+ * presence is the SSOT after `MaterialPass.transparent` was
818
+ * dropped in M1).
819
+ *
820
+ * The record stage reads this to drive both the LDR split-pass
821
+ * decision and the premultiplied-alpha blend resolution on the
822
+ * generic materialShaderId pipeline path — shader-agnostic, decoupled
823
+ * from the legacy `shadingModel` discriminant (feat-20260625 M2 D-3,
824
+ * finalised in w15; `shadingModel` field removed in tweak-20260701 M1).
825
+ *
826
+ * Extract derives this from the first pass's `renderState.blend !==
827
+ * undefined` (post-feat-20260626-collapse: blend presence is the
828
+ * single SSOT for "this material is transparent on the geometry
829
+ * pipeline cache key"). Multi-pass materials whose mix of opaque +
830
+ * transparent passes need finer routing should split into separate
831
+ * MaterialAsset entries (the normal forgeax pattern).
832
+ *
833
+ * Type is `boolean | undefined` (derived): `undefined` means "no
834
+ * passes / unknown"; consumers must read `=== true` / `!== true` to
835
+ * stay correct under both populated and absent cases.
836
+ */
837
+ readonly transparent?: boolean | undefined;
838
+ }
839
+ interface MaterialCacheChainIdentity {
840
+ readonly asset: MaterialAsset;
841
+ readonly parentGuid: string | undefined;
842
+ }
843
+ export interface MaterialSnapshotCacheEntry {
844
+ readonly snapshot: MaterialSnapshot;
845
+ readonly passes: readonly MaterialPass[];
846
+ /** Root/chain identities are present only on cross-frame-safe entries. */
847
+ readonly chain?: readonly MaterialCacheChainIdentity[];
848
+ /** RenderAssetPort epoch at which the root/parent chain was last validated. */
849
+ readonly catalogEpoch?: number;
850
+ /** True only when every object reachable from the authored chain is frozen. */
851
+ readonly crossFrameSafe: boolean;
852
+ }
853
+ export type MaterialSnapshotCache = Map<number, MaterialSnapshotCacheEntry>;
854
+ export type MaterialSnapshotCachesByWorld = WeakMap<World, MaterialSnapshotCache>;
855
+ export interface DispatchEntry {
856
+ readonly entityIndex: number;
857
+ readonly materialHandle: number;
858
+ readonly renderableIndex: number;
859
+ readonly passIndex: number;
860
+ readonly queue: number;
861
+ /**
862
+ * Signed i32 from the entity's {@link Layer} component value (default 0 for
863
+ * entities without a Layer). Primary sort key for the transparent-dispatch
864
+ * sort in {@link render-system.ts}: lower value = drawn first (behind).
865
+ */
866
+ readonly layer: number;
867
+ readonly tags: Record<string, string>;
868
+ readonly renderState: MaterialRenderState | undefined;
869
+ readonly defines: Record<string, string> | undefined;
870
+ readonly vertexEntry: string | undefined;
871
+ readonly fragmentEntry: string | undefined;
872
+ readonly materialShaderId: string | undefined;
873
+ readonly paramSnapshot: Readonly<Record<string, number | number[] | string>> | undefined;
874
+ /**
875
+ * Stencil reference value from {@link MaterialPass.stencilReference}
876
+ * (draw-call dynamic state). Folded during extract for per-draw consumption
877
+ * in the record stage. `undefined` when the pass does not set a reference
878
+ * value (record stage falls back to WebGPU default 0).
879
+ */
880
+ readonly stencilReference?: number;
881
+ }
882
+ /**
883
+ * Stable-sort dispatch entries by `queue` value ascending.
884
+ * Returns a new sorted array (does not mutate the input).
885
+ * Same-queue entries preserve insertion order (AC-11 stable-order guarantee).
886
+ */
887
+ export declare function sortDispatchByQueue<E extends {
888
+ readonly queue: number;
889
+ }>(entries: readonly E[]): E[];
890
+ export interface ExtractedFrame {
891
+ readonly cameras: CameraSnapshot[];
892
+ readonly lights: ExtractedLights;
893
+ readonly renderables: RenderableSnapshot[];
894
+ /** Author-visible snapshots retained before the main-view frustum cull. */
895
+ readonly candidateRenderables?: readonly RenderableSnapshot[];
896
+ /** Pass dispatch for the same pre-main-cull candidate domain. */
897
+ readonly candidateDispatch?: readonly DispatchEntry[];
898
+ /** Shared membership owner for the candidate dispatch domain. */
899
+ readonly candidateDispatchMembership?: RenderDispatchMembership;
900
+ /** Shared immutable candidate array/dispatch/index owner. */
901
+ readonly candidateDomain?: RenderCandidateDomain;
902
+ /** Resource-owner Fog snapshot retained for direct extract consumers. */
903
+ readonly fog?: FogSnapshot | undefined;
904
+ /**
905
+ * Single dispatch list sorted by queue value (ascending, stable sort).
906
+ * Replaces the old opaqueDispatch / transparentDispatch / overlayDispatch
907
+ * three-bucket model per plan-strategy D-3.
908
+ */
909
+ readonly dispatch: DispatchEntry[];
910
+ readonly environment: ExtractedEnvironment;
911
+ /**
912
+ * feat-20260528-frustum-culling M3 / w11: frustum culling statistics
913
+ * collected during the extract phase. `total` is the count of entities
914
+ * that reached the culling decision point; `culled` is the count of
915
+ * those that were removed from renderables by frustum culling.
916
+ */
917
+ readonly frustumStats: {
918
+ readonly culled: number;
919
+ readonly total: number;
920
+ };
921
+ /** Candidate entities rejected by author visibility before resource parsing. */
922
+ readonly visibilityStats: {
923
+ readonly explicitlyHidden: number;
924
+ };
925
+ /**
926
+ * Per-frame post-process params snapshot collected from PostProcessParams
927
+ * entities (D-1: data-driven params channel). Maps shader id to the
928
+ * raw data bytes (Uint8Array = FieldValueType<'buffer'>). Last-one-wins
929
+ * when multiple entities bear the same shader id.
930
+ * Empty map when no PostProcessParams entities exist.
931
+ */
932
+ readonly postProcessParams: ReadonlyMap<string, Uint8Array>;
933
+ /** Visibility snapshots prepared for each contributing World. */
934
+ readonly visibilitySnapshots: readonly VisibilitySnapshot[];
935
+ /** World-labelled snapshots passed to generic RenderFeature extraction. */
936
+ readonly featureVisibilitySnapshots: readonly RenderFeatureWorldVisibilitySnapshot[];
937
+ /** Built-in hidden candidates, retained for host-side producer deduplication. */
938
+ readonly hiddenEntityReports: readonly RenderFeatureHiddenEntityReport[];
939
+ }
940
+ /**
941
+ * Transparent-bucket dispatch entry — extends the dispatch snapshot with
942
+ * per-entity sort inputs precomputed at extract time.
943
+ *
944
+ * Field semantics:
945
+ * - `layer` — primary sort key (signed i32 from `Layer.value`; default 0
946
+ * for entities without a Layer component).
947
+ * - `posX` / `posY` / `posZ` — world position from the entity's Transform.
948
+ * - `pivotY` / `sizeY` — sprite's Y-axis foot offset inputs. `pivotY =
949
+ * SpriteMaterialAsset.pivot[1]` (default 0.5); `sizeY` = Transform's
950
+ * world scale Y (sprite quad's world-space height in unit-quad world
951
+ * space — the unit quad is 1x1 so `Transform.scaleY` directly maps to
952
+ * world height). The foot-Y formula `posY - pivotY * sizeY` is the
953
+ * SSOT for the JRPG Y-sort path (mode=1, requirements §AC-10).
954
+ * - `sortKey` — optional per-entity override from `SortKey.value`. When
955
+ * present, `transparentSortEntries` uses it INSTEAD of the mode formula
956
+ * for this entry (still gated by `layer` as the primary key).
957
+ *
958
+ * Plan-strategy §3.3 interface example + §AC-10 sort path + §AC-19
959
+ * derivation row 13 (this is the true new POD shape `@new-surface`; not a
960
+ * mere rename of an existing snapshot).
961
+ */
962
+ export interface TransparentEntry {
963
+ readonly entityIndex: number;
964
+ readonly materialHandle: number;
965
+ readonly layer: number;
966
+ readonly posX: number;
967
+ readonly posY: number;
968
+ readonly posZ: number;
969
+ readonly pivotY: number;
970
+ readonly sizeY: number;
971
+ readonly sortKey?: number | undefined;
972
+ /**
973
+ * Index into the parallel `ExtractedFrame.renderables[]` array. M-3 /
974
+ * w25 record stage uses this to look up the `RenderableSnapshot`
975
+ * (Transform + mesh + material snapshot) belonging to this transparent
976
+ * entry after `transparentSortEntries` reorders the bucket. Optional
977
+ * for test fixtures that construct TransparentEntry literals by hand
978
+ * (w16 sort tests bypass renderables[] correlation); the real extract
979
+ * path always sets a non-negative integer index here.
980
+ */
981
+ readonly renderableIndex?: number | undefined;
982
+ }
983
+ export declare const resolveMaterialSnapshot: (handleRaw: number, world: World, assets: RenderAssetPort, gpuStore?: import("./gpu-resource-store").GpuResourceStore, materialSnapshotCache?: MaterialSnapshotCache, persistentMaterialSnapshotCache?: MaterialSnapshotCache, paramSchemaProjectionCensus?: ParamSchemaProjectionCensus) => MaterialSnapshot;
984
+ export declare function refreshRenderableMaterialSnapshot(renderable: RenderableSnapshot, materialHandle: number, world: World, assets: RenderAssetPort, gpuStore?: import('./gpu-resource-store').GpuResourceStore, persistentMaterialSnapshotCache?: MaterialSnapshotCache, paramSchemaProjectionCensus?: ParamSchemaProjectionCensus): RenderableSnapshot | undefined;
985
+ /**
986
+ * feat-20260612-skin-palette-per-frame-upload M2 / m2-6: narrow per-frame
987
+ * pipeline surface consumed by `extractFrame`. Today only `skinPaletteAllocator`
988
+ * crosses the seam (the allocator owns the per-frame palette buffer + cursor;
989
+ * extract calls `resetForFrame` at frame entry then `allocateSlice` +
990
+ * `writeJointPalette` per skinned entity). Kept narrow on purpose — extract
991
+ * does NOT see the rest of `PipelineState` to avoid a circular import via
992
+ * `render-system.ts`.
993
+ */
994
+ export interface ExtractPipelineSurface {
995
+ readonly skinPaletteAllocator: SkinPaletteAllocator | null;
996
+ }
997
+ /**
998
+ * Build 6 face view-proj matrices for an omnidirectional shadow caster
999
+ * (point-light cube map). Returns 6 mat4 (column-major 16-float each) in face
1000
+ * order [+X, -X, +Y, -Y, +Z, -Z] matching WebGPU cube layer convention.
1001
+ *
1002
+ * Each matrix is `proj * view` where:
1003
+ * - `view = lookAt(lightPos, lightPos + faceLook[i], faceUp[i])`
1004
+ * - `proj = perspective(PI/2, 1, near, far)` (WebGPU [0, 1] NDC short name)
1005
+ *
1006
+ * The returned `Mat4[]` length is always exactly 6. Caller can flatten into a
1007
+ * 96-float (6 mat4) Float32Array for UBO upload (T-M1-7).
1008
+ *
1009
+ * @param lightPos world-space position of the point light (from companion Transform)
1010
+ * @param near near plane distance (PointLightShadow.nearPlane)
1011
+ * @param far far plane distance (PointLightShadow.farPlane)
1012
+ */
1013
+ export declare function buildPointShadowMatrices(lightPos: Vec3, near: number, far: number): Mat4[];
1014
+ /**
1015
+ * feat-20260709-editor-world-partition M1 / w4 (AC-08, plan-strategy §2 D-3):
1016
+ * the owner index that previously served BOTH cameras and singleton render
1017
+ * resources (skylight / skybox / postProcessParams) is split into two
1018
+ * independent indices. `cameraOwner` selects the world whose cameras are
1019
+ * surfaced; `resourceOwner` selects the world whose singleton resources are
1020
+ * surfaced. A single number is accepted as the backward-compatible legacy form
1021
+ * where `cameraOwner === resourceOwner === owner` (single-world callers +
1022
+ * frame-loop stay byte-identical; the hard `{ owner }` cutover lands in M2).
1023
+ */
1024
+ export interface ExtractFramesOwner {
1025
+ readonly cameraOwner: number;
1026
+ readonly resourceOwner: number;
1027
+ }
1028
+ export interface PreparedExtractContext {
1029
+ /** Renderer-local identity of the World whose singleton resources are read. */
1030
+ readonly worldId?: number | undefined;
1031
+ readonly assets: RenderAssetPort | null | undefined;
1032
+ readonly pipelineState: ExtractPipelineSurface | null | undefined;
1033
+ readonly gpuStore: import('./gpu-resource-store').GpuResourceStore | undefined;
1034
+ readonly materialSnapshotCache: MaterialSnapshotCache | undefined;
1035
+ readonly cull: 'self' | 'none' | 'external';
1036
+ readonly cullCameras: readonly CameraSnapshot[] | undefined;
1037
+ readonly hierarchy: SceneHierarchySnapshot;
1038
+ readonly visibility: VisibilitySnapshot;
1039
+ /** @internal Debug-only ParamSchema compatibility census. */
1040
+ readonly paramSchemaProjectionCensus?: ParamSchemaProjectionCensus | undefined;
1041
+ /** @internal Refresh only compact lighting resources over an existing frame. */
1042
+ readonly resourceRefreshBase?: ExtractedFrame;
1043
+ /**
1044
+ * @internal Restrict the MeshRenderer row source to known entities. The
1045
+ * query is addressed through Query.at(), so this path does not iterate the
1046
+ * world's renderable tables. Resource queries remain unchanged.
1047
+ */
1048
+ readonly targetRenderableEntities?: readonly EntityHandle[];
1049
+ }
1050
+ export declare function extractCameraSnapshots(world: World): CameraSnapshot[];
1051
+ export declare function refreshExtractedFrameCameras(world: World, frame: ExtractedFrame): ExtractedFrame;
1052
+ /**
1053
+ * Refresh only the resource-owned PostProcessParams map after an ECS journal
1054
+ * update. Post-process parameter entities are not render-domain slots; making
1055
+ * their transient byte payload visible must not rebuild candidates, dispatch,
1056
+ * topology, or the GPU scene.
1057
+ */
1058
+ export declare function refreshExtractedFramePostProcessParams(world: World, frame: ExtractedFrame): ExtractedFrame;
1059
+ export declare function prepareExtractContext(world: World, options?: {
1060
+ readonly worldId?: number;
1061
+ readonly assets?: RenderAssetPort | null;
1062
+ readonly pipelineState?: ExtractPipelineSurface | null;
1063
+ readonly gpuStore?: import('./gpu-resource-store').GpuResourceStore;
1064
+ readonly materialSnapshotCache?: MaterialSnapshotCache;
1065
+ readonly cull?: 'self' | 'none' | 'external';
1066
+ readonly cullCameras?: readonly CameraSnapshot[];
1067
+ readonly paramSchemaProjectionCensus?: ParamSchemaProjectionCensus;
1068
+ }): PreparedExtractContext;
1069
+ export declare function extractFrames(worlds: readonly World[], owner: number | ExtractFramesOwner, assets?: RenderAssetPort | null, pipelineState?: ExtractPipelineSurface | null, gpuStore?: import('./gpu-resource-store').GpuResourceStore, materialSnapshotCachesByWorld?: MaterialSnapshotCachesByWorld, options?: {
1070
+ readonly cull?: 'normal' | 'none';
1071
+ readonly paramSchemaProjectionCensus?: ParamSchemaProjectionCensus;
1072
+ }): ExtractedFrame;
1073
+ export declare function extractFrame(world: World, context: PreparedExtractContext): ExtractedFrame;
1074
+ /**
1075
+ * Extract the complete render-domain facts for one known entity.
1076
+ *
1077
+ * This deliberately reuses extractFrame's MeshRenderer row body instead of
1078
+ * maintaining a second material/skin/sprite implementation. Query.at() makes
1079
+ * the row source identity-addressed; callers must supply a visibility snapshot
1080
+ * appropriate for the current persistent owner and must keep hierarchy-affecting
1081
+ * changes on the conservative rebuild lane.
1082
+ */
1083
+ export interface ExtractedRenderableEntity {
1084
+ readonly snapshot: RenderableSnapshot;
1085
+ readonly candidateDispatch: readonly DispatchEntry[];
1086
+ }
1087
+ export declare function extractRenderableEntity(world: World, entity: EntityHandle, context: PreparedExtractContext): ExtractedRenderableEntity | undefined;
1088
+ /**
1089
+ * Refresh only light, shadow, sky, and post-process resources over an existing
1090
+ * persistent frame. The resource path intentionally skips hierarchy,
1091
+ * renderable, material, cull, dispatch, and candidate-domain extraction.
1092
+ */
1093
+ export declare function refreshExtractedFrameLights(world: World, frame: ExtractedFrame): ExtractedFrame;
1094
+ export declare function defaultTransformSnapshot(): TransformSnapshot;
1095
+ export declare function defaultMaterialSnapshot(materialHandle?: number): MaterialSnapshot;
1096
+ //# sourceMappingURL=render-system-extract.d.ts.map