@forgeax/engine-render 0.1.4 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (979) hide show
  1. package/README.md +268 -640
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts +2 -0
  4. package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts.map +1 -0
  5. package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts +2 -0
  6. package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts.map +1 -0
  7. package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts +2 -0
  8. package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts.map +1 -0
  9. package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts.map +1 -1
  10. package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts +6 -0
  11. package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts.map +1 -1
  12. package/dist/{gpu-driven/view-reference.d.ts → __tests__/gpu-driven-view-reference.d.ts} +4 -4
  13. package/dist/__tests__/gpu-driven-view-reference.d.ts.map +1 -0
  14. package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts.map +1 -1
  15. package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts +2 -0
  16. package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts.map +1 -0
  17. package/dist/__tests__/morph-feature-plan.unit.test.d.ts +2 -0
  18. package/dist/__tests__/morph-feature-plan.unit.test.d.ts.map +1 -0
  19. package/dist/__tests__/render-feature-plan.test-d.d.ts +2 -0
  20. package/dist/__tests__/render-feature-plan.test-d.d.ts.map +1 -0
  21. package/dist/__tests__/render-feature-plan.unit.test.d.ts +2 -0
  22. package/dist/__tests__/render-feature-plan.unit.test.d.ts.map +1 -0
  23. package/dist/__tests__/ssao-config.unit.test.d.ts +2 -0
  24. package/dist/__tests__/ssao-config.unit.test.d.ts.map +1 -0
  25. package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts +2 -0
  26. package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts.map +1 -0
  27. package/dist/__tests__/standard-descriptors.test-d.d.ts +2 -0
  28. package/dist/__tests__/standard-descriptors.test-d.d.ts.map +1 -0
  29. package/dist/__tests__/standard-pipeline.dawn.test.d.ts +2 -0
  30. package/dist/__tests__/standard-pipeline.dawn.test.d.ts.map +1 -0
  31. package/dist/__tests__/standard-pipeline.integration.test.d.ts +2 -0
  32. package/dist/__tests__/standard-pipeline.integration.test.d.ts.map +1 -0
  33. package/dist/__tests__/standard-profile-oracle.unit.test.d.ts +2 -0
  34. package/dist/__tests__/standard-profile-oracle.unit.test.d.ts.map +1 -0
  35. package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts +2 -0
  36. package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts.map +1 -0
  37. package/dist/{renderer/backend-selection.d.ts → assembly/backend-contract.d.ts} +15 -4
  38. package/dist/assembly/backend-contract.d.ts.map +1 -0
  39. package/dist/assembly/factory.d.ts +214 -0
  40. package/dist/assembly/factory.d.ts.map +1 -0
  41. package/dist/assembly/host-contract.d.ts +84 -0
  42. package/dist/assembly/host-contract.d.ts.map +1 -0
  43. package/dist/{renderer → assembly}/material/assembly.d.ts +0 -1
  44. package/dist/{renderer → assembly}/material/assembly.d.ts.map +1 -1
  45. package/dist/assembly/material/pipeline-projection.d.ts +30 -0
  46. package/dist/assembly/material/pipeline-projection.d.ts.map +1 -0
  47. package/dist/authoring.d.ts +11 -11
  48. package/dist/authoring.d.ts.map +1 -1
  49. package/dist/authoring.mjs +25 -3
  50. package/dist/authoring.mjs.map +1 -1
  51. package/dist/chunk-CQXZC5XI.mjs +182 -0
  52. package/dist/chunk-CQXZC5XI.mjs.map +1 -0
  53. package/dist/chunk-HCOGPHKS.mjs +93 -0
  54. package/dist/chunk-HCOGPHKS.mjs.map +1 -0
  55. package/dist/chunk-YEJIUW7D.mjs +1152 -0
  56. package/dist/chunk-YEJIUW7D.mjs.map +1 -0
  57. package/dist/components/__tests__/points-lines-admission.unit.test.d.ts +2 -0
  58. package/dist/components/__tests__/points-lines-admission.unit.test.d.ts.map +1 -0
  59. package/dist/components/__tests__/points-lines-schema.unit.test.d.ts +2 -0
  60. package/dist/components/__tests__/points-lines-schema.unit.test.d.ts.map +1 -0
  61. package/dist/components/__tests__/schema-contract.unit.test.d.ts +2 -0
  62. package/dist/components/__tests__/schema-contract.unit.test.d.ts.map +1 -0
  63. package/dist/components/glyph-text.d.ts +1 -1
  64. package/dist/components/glyph-text.d.ts.map +1 -1
  65. package/dist/components/index.d.ts +4 -2
  66. package/dist/components/index.d.ts.map +1 -1
  67. package/dist/components/instances.d.ts +1 -1
  68. package/dist/components/instances.d.ts.map +1 -1
  69. package/dist/components/light-helpers.d.ts +1 -1
  70. package/dist/components/light-helpers.d.ts.map +1 -1
  71. package/dist/components/lines.d.ts +5 -0
  72. package/dist/components/lines.d.ts.map +1 -0
  73. package/dist/components/mesh-filter.d.ts +7 -7
  74. package/dist/components/mesh-filter.d.ts.map +1 -1
  75. package/dist/components/points.d.ts +15 -0
  76. package/dist/components/points.d.ts.map +1 -0
  77. package/dist/components/scene-instance.d.ts +11 -11
  78. package/dist/components/skybox-background.d.ts +56 -0
  79. package/dist/components/skybox-background.d.ts.map +1 -0
  80. package/dist/components/skylight.d.ts +55 -0
  81. package/dist/components/skylight.d.ts.map +1 -0
  82. package/dist/components/sprite-animation.d.ts +2 -3
  83. package/dist/components/sprite-animation.d.ts.map +1 -1
  84. package/dist/components/sprite-instances.d.ts +1 -1
  85. package/dist/components/sprite-playback-mode.d.ts +6 -1
  86. package/dist/components/sprite-playback-mode.d.ts.map +1 -1
  87. package/dist/components/sprite-region-override.d.ts +2 -3
  88. package/dist/components/sprite-region-override.d.ts.map +1 -1
  89. package/dist/components/tile-layer.d.ts +5 -0
  90. package/dist/components/tile-layer.d.ts.map +1 -1
  91. package/dist/construct-renderer.d.ts +18 -1
  92. package/dist/construct-renderer.d.ts.map +1 -1
  93. package/dist/construct-renderer.mjs +27463 -4
  94. package/dist/construct-renderer.mjs.map +1 -1
  95. package/dist/debug-draw-glue.d.ts +2 -53
  96. package/dist/debug-draw-glue.d.ts.map +1 -1
  97. package/dist/device/device-scope.d.ts +83 -0
  98. package/dist/device/device-scope.d.ts.map +1 -0
  99. package/dist/{gpu-resource-store.d.ts → device/gpu-residency.d.ts} +91 -48
  100. package/dist/device/gpu-residency.d.ts.map +1 -0
  101. package/dist/device/resource-types.d.ts +8 -0
  102. package/dist/device/resource-types.d.ts.map +1 -0
  103. package/dist/engine-metrics.d.ts +2 -2
  104. package/dist/engine-metrics.d.ts.map +1 -1
  105. package/dist/errors/recover.d.ts +28 -1
  106. package/dist/errors/recover.d.ts.map +1 -1
  107. package/dist/errors/render.d.ts +320 -248
  108. package/dist/errors/render.d.ts.map +1 -1
  109. package/dist/features/fullscreen.d.ts +19 -0
  110. package/dist/features/fullscreen.d.ts.map +1 -0
  111. package/dist/features/host.d.ts +32 -26
  112. package/dist/features/host.d.ts.map +1 -1
  113. package/dist/features/morph/morph-feature.d.ts +39 -5
  114. package/dist/features/morph/morph-feature.d.ts.map +1 -1
  115. package/dist/features/plan.d.ts +182 -0
  116. package/dist/features/plan.d.ts.map +1 -0
  117. package/dist/features/prepared-gpu-work.d.ts +21 -17
  118. package/dist/features/prepared-gpu-work.d.ts.map +1 -1
  119. package/dist/features/prepared-graphics-store.d.ts +2 -1
  120. package/dist/features/prepared-graphics-store.d.ts.map +1 -1
  121. package/dist/features/prepared-graphics.d.ts +11 -21
  122. package/dist/features/prepared-graphics.d.ts.map +1 -1
  123. package/dist/features/render-graph-compute.d.ts +2 -2
  124. package/dist/features/render-graph-compute.d.ts.map +1 -1
  125. package/dist/features/render-graph-contribution.d.ts +4 -7
  126. package/dist/features/render-graph-contribution.d.ts.map +1 -1
  127. package/dist/features/render-graph-raster.d.ts +7 -3
  128. package/dist/features/render-graph-raster.d.ts.map +1 -1
  129. package/dist/features/render-graph-resources.d.ts +6 -6
  130. package/dist/features/render-graph-resources.d.ts.map +1 -1
  131. package/dist/features/targets.d.ts +5 -5
  132. package/dist/features/targets.d.ts.map +1 -1
  133. package/dist/features/types.d.ts +11 -190
  134. package/dist/features/types.d.ts.map +1 -1
  135. package/dist/features/vocabulary.d.ts +14 -0
  136. package/dist/features/vocabulary.d.ts.map +1 -0
  137. package/dist/fullscreen-post-process-pass.d.ts +4 -25
  138. package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
  139. package/dist/glyph-text-layout-system.d.ts +3 -2
  140. package/dist/glyph-text-layout-system.d.ts.map +1 -1
  141. package/dist/gpu-driven/batch-topology.d.ts +6 -75
  142. package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
  143. package/dist/gpu-driven/production-raster.d.ts +13 -112
  144. package/dist/gpu-driven/production-raster.d.ts.map +1 -1
  145. package/dist/gpu-driven/view-gpu.d.ts +10 -66
  146. package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
  147. package/dist/gpu-resource.d.ts +3 -3
  148. package/dist/gpu-scene-schema.d.ts +1 -94
  149. package/dist/gpu-scene-schema.d.ts.map +1 -1
  150. package/dist/gpu-scene.d.ts +7 -33
  151. package/dist/gpu-scene.d.ts.map +1 -1
  152. package/dist/hdrp-buffers.d.ts +3 -53
  153. package/dist/hdrp-buffers.d.ts.map +1 -1
  154. package/dist/ibl/IblPipelineCache.d.ts +74 -180
  155. package/dist/ibl/IblPipelineCache.d.ts.map +1 -1
  156. package/dist/ibl/skylight-bind-group.d.ts +1 -1
  157. package/dist/index.d.ts +17 -43
  158. package/dist/index.d.ts.map +1 -1
  159. package/dist/index.mjs +167 -3
  160. package/dist/index.mjs.map +1 -1
  161. package/dist/inspection-types.d.ts +72 -0
  162. package/dist/inspection-types.d.ts.map +1 -0
  163. package/dist/instance-buffer-cache.d.ts +1 -4
  164. package/dist/instance-buffer-cache.d.ts.map +1 -1
  165. package/dist/internal.d.ts +1 -73
  166. package/dist/internal.d.ts.map +1 -1
  167. package/dist/internal.mjs +1 -43
  168. package/dist/internal.mjs.map +1 -1
  169. package/dist/lifecycle.d.ts +36 -2
  170. package/dist/lifecycle.d.ts.map +1 -1
  171. package/dist/materials.d.ts +0 -3
  172. package/dist/materials.d.ts.map +1 -1
  173. package/dist/mesh-material-bindings.d.ts +0 -1
  174. package/dist/mesh-material-bindings.d.ts.map +1 -1
  175. package/dist/pbr-pipeline.d.ts +77 -29
  176. package/dist/pbr-pipeline.d.ts.map +1 -1
  177. package/dist/pipeline/standard-forward-lane.d.ts +5 -0
  178. package/dist/pipeline/standard-forward-lane.d.ts.map +1 -0
  179. package/dist/pipeline/standard-pipeline.d.ts +31 -0
  180. package/dist/pipeline/standard-pipeline.d.ts.map +1 -0
  181. package/dist/pipeline/standard-profile.d.ts +40 -0
  182. package/dist/pipeline/standard-profile.d.ts.map +1 -0
  183. package/dist/pipeline-builder.d.ts +3 -3
  184. package/dist/pipeline-builder.d.ts.map +1 -1
  185. package/dist/pipeline-spec-types.d.ts +24 -0
  186. package/dist/pipeline-spec-types.d.ts.map +1 -0
  187. package/dist/pipeline-spec.d.ts +16 -155
  188. package/dist/pipeline-spec.d.ts.map +1 -1
  189. package/dist/plugin.d.ts +1 -14
  190. package/dist/plugin.d.ts.map +1 -1
  191. package/dist/points-lines/__tests__/bounds.unit.test.d.ts +2 -0
  192. package/dist/points-lines/__tests__/bounds.unit.test.d.ts.map +1 -0
  193. package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts +2 -0
  194. package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts.map +1 -0
  195. package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts +2 -0
  196. package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts.map +1 -0
  197. package/dist/points-lines/__tests__/inspection.unit.test.d.ts +2 -0
  198. package/dist/points-lines/__tests__/inspection.unit.test.d.ts.map +1 -0
  199. package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts +2 -0
  200. package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts.map +1 -0
  201. package/dist/points-lines/__tests__/points-lines.bench.d.ts +2 -0
  202. package/dist/points-lines/__tests__/points-lines.bench.d.ts.map +1 -0
  203. package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts +2 -0
  204. package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts.map +1 -0
  205. package/dist/points-lines/__tests__/snapshot.unit.test.d.ts +2 -0
  206. package/dist/points-lines/__tests__/snapshot.unit.test.d.ts.map +1 -0
  207. package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts +2 -0
  208. package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts.map +1 -0
  209. package/dist/points-lines/admission.d.ts +36 -0
  210. package/dist/points-lines/admission.d.ts.map +1 -0
  211. package/dist/points-lines/bounds.d.ts +8 -0
  212. package/dist/points-lines/bounds.d.ts.map +1 -0
  213. package/dist/points-lines/expansion-cache.d.ts +28 -0
  214. package/dist/points-lines/expansion-cache.d.ts.map +1 -0
  215. package/dist/points-lines/inspection.d.ts +53 -0
  216. package/dist/points-lines/inspection.d.ts.map +1 -0
  217. package/dist/points-lines/prepare.d.ts +67 -0
  218. package/dist/points-lines/prepare.d.ts.map +1 -0
  219. package/dist/points-lines/record.d.ts +60 -0
  220. package/dist/points-lines/record.d.ts.map +1 -0
  221. package/dist/points-lines/snapshot.d.ts +49 -0
  222. package/dist/points-lines/snapshot.d.ts.map +1 -0
  223. package/dist/post-process-errors.d.ts +18 -18
  224. package/dist/post-process-errors.d.ts.map +1 -1
  225. package/dist/prepare/prepared-graphics-resolver.d.ts +2 -5
  226. package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -1
  227. package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts +2 -0
  228. package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts.map +1 -0
  229. package/dist/record/frame-lighting.d.ts +7 -73
  230. package/dist/record/frame-lighting.d.ts.map +1 -1
  231. package/dist/record/frame-snapshot.d.ts +44 -44
  232. package/dist/record/frame-snapshot.d.ts.map +1 -1
  233. package/dist/record/frame-targets.d.ts +5 -38
  234. package/dist/record/frame-targets.d.ts.map +1 -1
  235. package/dist/record/frame.d.ts +64 -52
  236. package/dist/record/frame.d.ts.map +1 -1
  237. package/dist/record/helpers.d.ts +3 -2
  238. package/dist/record/helpers.d.ts.map +1 -1
  239. package/dist/record/main-pass-geometry.d.ts +12 -4
  240. package/dist/record/main-pass-geometry.d.ts.map +1 -1
  241. package/dist/record/main-pass-material.d.ts +90 -59
  242. package/dist/record/main-pass-material.d.ts.map +1 -1
  243. package/dist/record/main-pass-sprite-draws.d.ts +28 -3
  244. package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
  245. package/dist/record/main-pass.d.ts +1 -1
  246. package/dist/record/main-pass.d.ts.map +1 -1
  247. package/dist/record/mesh-ssbo.d.ts +276 -3
  248. package/dist/record/mesh-ssbo.d.ts.map +1 -1
  249. package/dist/record/render-context.d.ts +252 -0
  250. package/dist/record/render-context.d.ts.map +1 -0
  251. package/dist/record/shadow-pass.d.ts +15 -88
  252. package/dist/record/shadow-pass.d.ts.map +1 -1
  253. package/dist/record/skybox-post-pass.d.ts +1 -1
  254. package/dist/record/skybox-post-pass.d.ts.map +1 -1
  255. package/dist/record/typed-frame-graph.d.ts +29 -7
  256. package/dist/record/typed-frame-graph.d.ts.map +1 -1
  257. package/dist/record/view-ubo.d.ts +9 -3
  258. package/dist/record/view-ubo.d.ts.map +1 -1
  259. package/dist/render-contract.d.ts +424 -0
  260. package/dist/render-contract.d.ts.map +1 -0
  261. package/dist/render-data.d.ts.map +1 -1
  262. package/dist/render-graph-primitives.d.ts +14 -362
  263. package/dist/render-graph-primitives.d.ts.map +1 -1
  264. package/dist/render-pipeline.d.ts +25 -64
  265. package/dist/render-pipeline.d.ts.map +1 -1
  266. package/dist/render-system-extract.d.ts +110 -338
  267. package/dist/render-system-extract.d.ts.map +1 -1
  268. package/dist/render-system.d.ts +24 -713
  269. package/dist/render-system.d.ts.map +1 -1
  270. package/dist/scene/render-scene-types.d.ts +61 -0
  271. package/dist/scene/render-scene-types.d.ts.map +1 -0
  272. package/dist/scene/render-scene.d.ts +112 -0
  273. package/dist/scene/render-scene.d.ts.map +1 -0
  274. package/dist/scene-instances/post-spawn-resolve-joints.d.ts +2 -5
  275. package/dist/scene-instances/post-spawn-resolve-joints.d.ts.map +1 -1
  276. package/dist/ssao-buffers.d.ts +22 -3
  277. package/dist/ssao-buffers.d.ts.map +1 -1
  278. package/dist/systems/skin-palette-allocator.d.ts +2 -4
  279. package/dist/systems/skin-palette-allocator.d.ts.map +1 -1
  280. package/dist/systems/skin-palette-types.d.ts +14 -0
  281. package/dist/systems/skin-palette-types.d.ts.map +1 -0
  282. package/dist/systems/transparent-sort-config.d.ts +23 -2
  283. package/dist/systems/transparent-sort-config.d.ts.map +1 -1
  284. package/dist/tilemap-chunk-extract-system.d.ts +4 -3
  285. package/dist/tilemap-chunk-extract-system.d.ts.map +1 -1
  286. package/dist/typed-render-graph-primitives.d.ts +2 -4
  287. package/dist/typed-render-graph-primitives.d.ts.map +1 -1
  288. package/dist/typed-shadow-passes.d.ts +3 -3
  289. package/dist/typed-shadow-passes.d.ts.map +1 -1
  290. package/package.json +23 -23
  291. package/src/__tests__/authoring-path.unit.test.ts +9 -0
  292. package/src/__tests__/backend-selection-rhi-capture.test-d.ts +1 -1
  293. package/src/__tests__/callback-inference.test-d.ts +6 -3
  294. package/src/__tests__/cluster-grid-default-surface.unit.test.ts +7 -4
  295. package/src/__tests__/construct-renderer-identity.unit.test.ts +15 -2
  296. package/src/__tests__/device-scope-lifecycle.unit.test.ts +151 -0
  297. package/src/__tests__/device-scope-stale-matrix.unit.test.ts +42 -0
  298. package/src/__tests__/direct-extract-consumer-contract.test-d.ts +8 -19
  299. package/src/__tests__/direct-light-snapshot.unit.test.ts +3 -13
  300. package/src/__tests__/factory-contract.integration.test.ts +158 -209
  301. package/src/__tests__/fallback-row-stride-surface.unit.test.ts +1 -4
  302. package/src/__tests__/frame-observation.contract.test.ts +17 -8
  303. package/src/__tests__/fullscreen-feature-plan.unit.test.ts +32 -0
  304. package/src/__tests__/glyph-text-layout-recovery.unit.test.ts +6 -11
  305. package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +21 -18
  306. package/src/__tests__/gpu-driven-production.integration.test.ts +32 -205
  307. package/src/__tests__/gpu-driven-scaling.unit.test.ts +4 -7
  308. package/src/__tests__/gpu-driven-view-gpu-evidence.ts +87 -8
  309. package/src/__tests__/gpu-driven-view-graph.integration.test.ts +170 -8
  310. package/src/{gpu-driven/view-reference.ts → __tests__/gpu-driven-view-reference.ts} +4 -3
  311. package/src/__tests__/gpu-driven-view.browser.test.ts +12 -1
  312. package/src/__tests__/gpu-driven-view.dawn.test.ts +12 -1
  313. package/src/__tests__/gpu-driven-view.unit.test.ts +11 -267
  314. package/src/__tests__/gpu-resource-store-stride.unit.test.ts +3 -3
  315. package/src/__tests__/gpu-scene-render-graph-gpu.ts +2 -3
  316. package/src/__tests__/gpu-scene.dawn.test.ts +2 -6
  317. package/src/__tests__/gpu-scene.unit.test.ts +10 -24
  318. package/src/__tests__/ibl/face-uniforms.unit.test.ts +46 -0
  319. package/src/__tests__/infinite-grid-no-vertex-probe.unit.test.ts +34 -66
  320. package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +14 -5
  321. package/src/__tests__/light-buffer-layout.unit.test.ts +4 -49
  322. package/src/__tests__/material-cooked-projection.unit.test.ts +31 -58
  323. package/src/__tests__/material-snapshot-mutation.integration.test.ts +10 -15
  324. package/src/__tests__/material-static-dynamic-route.unit.test.ts +31 -50
  325. package/src/__tests__/material-stride-surface.unit.test.ts +2 -2
  326. package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +7 -8
  327. package/src/__tests__/morph-culling-reentry.dawn.test.ts +29 -38
  328. package/src/__tests__/morph-feature-gpu-work.integration.test.ts +45 -43
  329. package/src/__tests__/morph-feature-plan.unit.test.ts +53 -0
  330. package/src/__tests__/morph-visual-evidence.integration.test.ts +47 -33
  331. package/src/__tests__/nineslice-handle-surface.unit.test.ts +11 -6
  332. package/src/__tests__/post-process-error-policy-owner.unit.test.ts +6 -13
  333. package/src/__tests__/prepared-graphics-capability.unit.test.ts +6 -81
  334. package/src/__tests__/prepared-graphics-generation.unit.test.ts +3 -17
  335. package/src/__tests__/prepared-graphics-lifecycle.unit.test.ts +6 -74
  336. package/src/__tests__/prepared-graphics-resolver.unit.test.ts +1 -3
  337. package/src/__tests__/prepared-graphics-snapshot.unit.test.ts +2 -2
  338. package/src/__tests__/profiler-default-off.test.ts +1 -1
  339. package/src/__tests__/profiler-phase-catalog.test.ts +2 -2
  340. package/src/__tests__/profiler-phase-integration.test.ts +5 -13
  341. package/src/__tests__/profiler-phase-token.test.ts +3 -8
  342. package/src/__tests__/public-surface.test-d.ts +65 -3
  343. package/src/__tests__/recover-error-policy-owner.unit.test.ts +1 -21
  344. package/src/__tests__/render-error-code-owner.test-d.ts +24 -23
  345. package/src/__tests__/render-error-detail-ssot.test-d.ts +0 -95
  346. package/src/__tests__/render-error-exhaustive.test-d.ts +27 -1
  347. package/src/__tests__/render-feature-assembly.test-d.ts +8 -16
  348. package/src/__tests__/render-feature-context.test-d.ts +16 -40
  349. package/src/__tests__/render-feature-contract.test-d.ts +9 -18
  350. package/src/__tests__/render-feature-diagnostics.unit.test.ts +6 -8
  351. package/src/__tests__/render-feature-docs.unit.test.ts +8 -7
  352. package/src/__tests__/render-feature-gpu-work.integration.test.ts +14 -75
  353. package/src/__tests__/render-feature-plan.test-d.ts +161 -0
  354. package/src/__tests__/render-feature-plan.unit.test.ts +170 -0
  355. package/src/__tests__/render-feature-prepared-diagnostics.unit.test.ts +8 -19
  356. package/src/__tests__/render-feature-prepared-errors.test-d.ts +3 -6
  357. package/src/__tests__/render-feature-prepared-graphics-docs.unit.test.ts +10 -71
  358. package/src/__tests__/render-feature-prepared-graphics-isolation.unit.test.ts +11 -61
  359. package/src/__tests__/render-feature-prepared-graphics-negative.test-d.ts +20 -43
  360. package/src/__tests__/render-feature-prepared-graphics.test-d.ts +56 -78
  361. package/src/__tests__/render-feature-public-surface.test-d.ts +6 -24
  362. package/src/__tests__/render-feature-retry.unit.test.ts +7 -48
  363. package/src/__tests__/render-feature-scheduling.unit.test.ts +15 -27
  364. package/src/__tests__/render-feature-stage-failed-policy-owner.unit.test.ts +0 -9
  365. package/src/__tests__/render-feature-stage-fault-recovery.unit.test.ts +19 -109
  366. package/src/__tests__/render-feature-visibility-context.test-d.ts +1 -6
  367. package/src/__tests__/render-feature-visibility-context.unit.test.ts +1 -2
  368. package/src/__tests__/render-feature-zero-work.unit.test.ts +14 -20
  369. package/src/__tests__/render-scene-projection.unit.test.ts +73 -111
  370. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +82 -95
  371. package/src/__tests__/renderer-lifecycle.integration.test.ts +49 -1
  372. package/src/__tests__/shader-stage-surface.unit.test.ts +14 -9
  373. package/src/__tests__/ssao-config.unit.test.ts +36 -0
  374. package/src/__tests__/ssao-kernel-surface.unit.test.ts +4 -5
  375. package/src/__tests__/standard-clustered-pipeline.unit.test.ts +28 -0
  376. package/src/__tests__/standard-descriptors.test-d.ts +22 -0
  377. package/src/__tests__/standard-pipeline.dawn.test.ts +61 -0
  378. package/src/__tests__/standard-pipeline.integration.test.ts +124 -0
  379. package/src/__tests__/standard-profile-oracle.unit.test.ts +62 -0
  380. package/src/__tests__/surface-configuration.unit.test.ts +1 -2
  381. package/src/__tests__/texture-usage-surface.unit.test.ts +3 -6
  382. package/src/__tests__/typed-pipeline-topology.unit.test.ts +40 -206
  383. package/src/__tests__/urp-pipeline-targets.unit.test.ts +1 -11
  384. package/src/__tests__/urp-pipeline.unit.test.ts +2 -2
  385. package/src/__tests__/vertex-color-pipeline.unit.test.ts +10 -2
  386. package/src/__tests__/vertex-layout-consumer.unit.test.ts +1 -1
  387. package/src/__tests__/visibility-diagnostics.integration.test.ts +7 -11
  388. package/src/__tests__/visibility-extract.integration.test.ts +20 -11
  389. package/src/__tests__/visibility-extract.perf.test.ts +66 -32
  390. package/src/__tests__/visibility-feature-dedup.integration.test.ts +2 -4
  391. package/src/__tests__/visibility-hidden-report.unit.test.ts +1 -2
  392. package/src/__tests__/visibility-instances.integration.test.ts +7 -11
  393. package/src/__tests__/visibility-multi-world.integration.test.ts +38 -6
  394. package/src/__tests__/visibility-producer-matrix.integration.test.ts +18 -41
  395. package/src/__tests__/visibility-public-surface.test-d.ts +10 -9
  396. package/src/__tests__/visibility-resolver.unit.test.ts +2 -1
  397. package/src/__tests__/visibility-resource-short-circuit.unit.test.ts +80 -0
  398. package/src/__tests__/visibility-snapshot-contract.unit.test.ts +2 -1
  399. package/src/__tests__/vocabulary.unit.test.ts +1 -1
  400. package/src/assembly/backend-contract.ts +57 -0
  401. package/src/{renderer/renderer-factory.ts → assembly/factory.ts} +1741 -2699
  402. package/src/assembly/host-contract.ts +101 -0
  403. package/src/{renderer → assembly}/material/assembly.ts +2 -7
  404. package/src/assembly/material/pipeline-projection.ts +63 -0
  405. package/src/authoring.ts +15 -22
  406. package/src/components/__tests__/points-lines-admission.unit.test.ts +219 -0
  407. package/src/components/__tests__/points-lines-schema.unit.test.ts +56 -0
  408. package/src/components/__tests__/schema-contract.unit.test.ts +10 -0
  409. package/src/components/glyph-text.ts +3 -2
  410. package/src/components/index.ts +14 -9
  411. package/src/components/instances.ts +4 -5
  412. package/src/components/light-helpers.ts +1 -1
  413. package/src/components/lines.ts +18 -0
  414. package/src/components/mesh-filter.ts +11 -10
  415. package/src/components/points.ts +40 -0
  416. package/src/components/post-process-params.ts +3 -3
  417. package/src/components/scene-instance.ts +12 -12
  418. package/src/components/skybox-background.ts +103 -0
  419. package/src/components/{environment.ts → skylight.ts} +2 -110
  420. package/src/components/sprite-animation.ts +3 -4
  421. package/src/components/sprite-instances.ts +2 -2
  422. package/src/components/sprite-playback-mode.ts +7 -1
  423. package/src/components/sprite-region-override.ts +2 -3
  424. package/src/components/tile-layer.ts +8 -2
  425. package/src/construct-renderer.ts +67 -4
  426. package/src/debug-draw-glue.ts +8 -129
  427. package/src/device/device-scope.ts +306 -0
  428. package/src/{gpu-resource-store.ts → device/gpu-residency.ts} +540 -639
  429. package/src/device/resource-types.ts +20 -0
  430. package/src/engine-metrics.ts +12 -19
  431. package/src/errors/recover.ts +45 -3
  432. package/src/errors/render.ts +469 -429
  433. package/src/features/fullscreen.ts +46 -0
  434. package/src/features/host.ts +575 -309
  435. package/src/features/morph/morph-feature.ts +195 -105
  436. package/src/features/plan.ts +447 -0
  437. package/src/features/prepared-gpu-work.ts +72 -15
  438. package/src/features/prepared-graphics-store.ts +20 -6
  439. package/src/features/prepared-graphics.ts +12 -71
  440. package/src/features/render-graph-compute.ts +14 -5
  441. package/src/features/render-graph-contribution.ts +43 -63
  442. package/src/features/render-graph-raster.ts +32 -8
  443. package/src/features/render-graph-resources.ts +25 -23
  444. package/src/features/targets.ts +8 -21
  445. package/src/features/types.ts +39 -227
  446. package/src/features/vocabulary.ts +24 -0
  447. package/src/fullscreen-post-process-pass.ts +14 -57
  448. package/src/glyph-text-layout-system.ts +70 -96
  449. package/src/gpu-driven/batch-topology.ts +24 -202
  450. package/src/gpu-driven/production-raster.ts +99 -1109
  451. package/src/gpu-driven/view-gpu.ts +46 -192
  452. package/src/gpu-resource.ts +4 -4
  453. package/src/gpu-scene-schema.ts +11 -99
  454. package/src/gpu-scene.ts +231 -364
  455. package/src/hdrp-buffers.ts +12 -221
  456. package/src/ibl/IblPipelineCache.ts +471 -711
  457. package/src/ibl/skylight-bind-group.ts +4 -4
  458. package/src/index.ts +75 -217
  459. package/src/inspection-types.ts +80 -0
  460. package/src/instance-buffer-cache.ts +1 -29
  461. package/src/internal.ts +6 -85
  462. package/src/lifecycle.ts +64 -19
  463. package/src/materials.ts +7 -29
  464. package/src/mesh-material-bindings.ts +0 -1
  465. package/src/pbr-pipeline.ts +441 -53
  466. package/src/{urp-pipeline.ts → pipeline/standard-forward-lane.ts} +38 -149
  467. package/src/{hdrp-pipeline.ts → pipeline/standard-pipeline.ts} +221 -191
  468. package/src/pipeline/standard-profile.ts +65 -0
  469. package/src/pipeline-builder.ts +60 -64
  470. package/src/pipeline-spec-types.ts +28 -0
  471. package/src/pipeline-spec.ts +72 -609
  472. package/src/plugin.ts +7 -75
  473. package/src/points-lines/__tests__/bounds.unit.test.ts +21 -0
  474. package/src/points-lines/__tests__/cache-recovery.unit.test.ts +157 -0
  475. package/src/points-lines/__tests__/inspection-lanes.integration.test.ts +146 -0
  476. package/src/points-lines/__tests__/inspection.unit.test.ts +173 -0
  477. package/src/points-lines/__tests__/lane-structural.integration.test.ts +122 -0
  478. package/src/points-lines/__tests__/points-lines.bench.ts +400 -0
  479. package/src/points-lines/__tests__/raster-lane.integration.test.ts +44 -0
  480. package/src/points-lines/__tests__/snapshot.unit.test.ts +101 -0
  481. package/src/points-lines/__tests__/view-ubo.unit.test.ts +73 -0
  482. package/src/points-lines/admission.ts +238 -0
  483. package/src/points-lines/bounds.ts +23 -0
  484. package/src/points-lines/expansion-cache.ts +215 -0
  485. package/src/points-lines/inspection.ts +97 -0
  486. package/src/points-lines/prepare.ts +177 -0
  487. package/src/points-lines/record.ts +125 -0
  488. package/src/points-lines/snapshot.ts +130 -0
  489. package/src/post-process-errors.ts +31 -33
  490. package/src/prepare/prepared-graphics-resolver.ts +5 -4
  491. package/src/record/__tests__/material-slot-plan.unit.test.ts +1 -33
  492. package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +41 -0
  493. package/src/record/__tests__/video-texture-view.unit.test.ts +1 -1
  494. package/src/record/frame-lighting.ts +88 -197
  495. package/src/record/frame-snapshot.ts +45 -60
  496. package/src/record/frame-targets.ts +8 -243
  497. package/src/record/frame.ts +521 -797
  498. package/src/record/helpers.ts +6 -11
  499. package/src/record/main-pass-geometry.ts +198 -147
  500. package/src/record/main-pass-material.ts +517 -190
  501. package/src/record/main-pass-sprite-draws.ts +199 -118
  502. package/src/record/main-pass.ts +166 -144
  503. package/src/record/mesh-ssbo.ts +517 -38
  504. package/src/record/render-context.ts +384 -0
  505. package/src/record/shadow-pass.ts +154 -1843
  506. package/src/record/skybox-post-pass.ts +14 -15
  507. package/src/record/typed-frame-graph.ts +224 -262
  508. package/src/record/view-ubo.ts +53 -37
  509. package/src/render-contract.ts +582 -0
  510. package/src/render-data.ts +3 -3
  511. package/src/render-graph-primitives.ts +76 -851
  512. package/src/render-pipeline.ts +104 -188
  513. package/src/render-system-extract.ts +1114 -1732
  514. package/src/render-system.ts +614 -1939
  515. package/src/scene/render-scene-types.ts +67 -0
  516. package/src/scene/render-scene.ts +1087 -0
  517. package/src/scene-instances/post-spawn-resolve-joints.ts +4 -7
  518. package/src/ssao-buffers.ts +167 -8
  519. package/src/systems/skin-palette-allocator.ts +21 -64
  520. package/src/systems/skin-palette-types.ts +14 -0
  521. package/src/systems/transparent-sort-config.ts +25 -3
  522. package/src/tilemap-chunk-extract-system.ts +53 -70
  523. package/src/typed-render-graph-primitives.ts +35 -24
  524. package/src/typed-shadow-passes.ts +26 -56
  525. package/dist/__tests__/analytic-sky-contract.test.d.ts +0 -2
  526. package/dist/__tests__/analytic-sky-contract.test.d.ts.map +0 -1
  527. package/dist/__tests__/analytic-sky-falsify.test.d.ts +0 -2
  528. package/dist/__tests__/analytic-sky-falsify.test.d.ts.map +0 -1
  529. package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts +0 -2
  530. package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts.map +0 -1
  531. package/dist/__tests__/backend-selection.integration.test.d.ts +0 -2
  532. package/dist/__tests__/backend-selection.integration.test.d.ts.map +0 -1
  533. package/dist/__tests__/camera-temporal.test-d.d.ts +0 -2
  534. package/dist/__tests__/camera-temporal.test-d.d.ts.map +0 -1
  535. package/dist/__tests__/camera-temporal.test.d.ts +0 -2
  536. package/dist/__tests__/camera-temporal.test.d.ts.map +0 -1
  537. package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts +0 -2
  538. package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts.map +0 -1
  539. package/dist/__tests__/environment-inspection.test.d.ts +0 -2
  540. package/dist/__tests__/environment-inspection.test.d.ts.map +0 -1
  541. package/dist/__tests__/fog-ai-user.fixture.d.ts +0 -2
  542. package/dist/__tests__/fog-ai-user.fixture.d.ts.map +0 -1
  543. package/dist/__tests__/fog-custom-render-feature.fixture.d.ts +0 -16
  544. package/dist/__tests__/fog-custom-render-feature.fixture.d.ts.map +0 -1
  545. package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts +0 -2
  546. package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts.map +0 -1
  547. package/dist/__tests__/fog-inspection.integration.test.d.ts +0 -2
  548. package/dist/__tests__/fog-inspection.integration.test.d.ts.map +0 -1
  549. package/dist/__tests__/fog-owner-state.integration.test.d.ts +0 -2
  550. package/dist/__tests__/fog-owner-state.integration.test.d.ts.map +0 -1
  551. package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts +0 -2
  552. package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts.map +0 -1
  553. package/dist/__tests__/fog-public-surface.integration.test.d.ts +0 -2
  554. package/dist/__tests__/fog-public-surface.integration.test.d.ts.map +0 -1
  555. package/dist/__tests__/fog-ray-contract.integration.test.d.ts +0 -2
  556. package/dist/__tests__/fog-ray-contract.integration.test.d.ts.map +0 -1
  557. package/dist/__tests__/fog-source-absence.integration.test.d.ts +0 -2
  558. package/dist/__tests__/fog-source-absence.integration.test.d.ts.map +0 -1
  559. package/dist/__tests__/fog-temporal.integration.test.d.ts +0 -2
  560. package/dist/__tests__/fog-temporal.integration.test.d.ts.map +0 -1
  561. package/dist/__tests__/frame-chain.unit.test.d.ts +0 -2
  562. package/dist/__tests__/frame-chain.unit.test.d.ts.map +0 -1
  563. package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts +0 -2
  564. package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts.map +0 -1
  565. package/dist/__tests__/hdrp-pipeline.unit.test.d.ts +0 -2
  566. package/dist/__tests__/hdrp-pipeline.unit.test.d.ts.map +0 -1
  567. package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts +0 -2
  568. package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts.map +0 -1
  569. package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts +0 -2
  570. package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts.map +0 -1
  571. package/dist/__tests__/material-derived-payload.integration.test.d.ts +0 -2
  572. package/dist/__tests__/material-derived-payload.integration.test.d.ts.map +0 -1
  573. package/dist/__tests__/materials.unit.test.d.ts +0 -2
  574. package/dist/__tests__/materials.unit.test.d.ts.map +0 -1
  575. package/dist/__tests__/param-schema-projection-census.unit.test.d.ts +0 -2
  576. package/dist/__tests__/param-schema-projection-census.unit.test.d.ts.map +0 -1
  577. package/dist/__tests__/persistent-render-scene.unit.test.d.ts +0 -2
  578. package/dist/__tests__/persistent-render-scene.unit.test.d.ts.map +0 -1
  579. package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts +0 -2
  580. package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts.map +0 -1
  581. package/dist/__tests__/pipeline-pass-trace.test.d.ts +0 -2
  582. package/dist/__tests__/pipeline-pass-trace.test.d.ts.map +0 -1
  583. package/dist/__tests__/pipeline-stage-owner.test-d.d.ts +0 -2
  584. package/dist/__tests__/pipeline-stage-owner.test-d.d.ts.map +0 -1
  585. package/dist/__tests__/plugin.test.d.ts +0 -2
  586. package/dist/__tests__/plugin.test.d.ts.map +0 -1
  587. package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts +0 -2
  588. package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts.map +0 -1
  589. package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts +0 -2
  590. package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts.map +0 -1
  591. package/dist/__tests__/public-pipeline-id.test-d.d.ts +0 -2
  592. package/dist/__tests__/public-pipeline-id.test-d.d.ts.map +0 -1
  593. package/dist/__tests__/render-dispatch-membership.unit.test.d.ts +0 -2
  594. package/dist/__tests__/render-dispatch-membership.unit.test.d.ts.map +0 -1
  595. package/dist/__tests__/render-feature-construction.unit.test.d.ts +0 -2
  596. package/dist/__tests__/render-feature-construction.unit.test.d.ts.map +0 -1
  597. package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts +0 -2
  598. package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts.map +0 -1
  599. package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts +0 -2
  600. package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts.map +0 -1
  601. package/dist/__tests__/render-feature-graph.integration.test.d.ts +0 -2
  602. package/dist/__tests__/render-feature-graph.integration.test.d.ts.map +0 -1
  603. package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts +0 -2
  604. package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts.map +0 -1
  605. package/dist/__tests__/render-feature-order.unit.test.d.ts +0 -2
  606. package/dist/__tests__/render-feature-order.unit.test.d.ts.map +0 -1
  607. package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts +0 -2
  608. package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts.map +0 -1
  609. package/dist/__tests__/render-feature-staging.unit.test.d.ts +0 -2
  610. package/dist/__tests__/render-feature-staging.unit.test.d.ts.map +0 -1
  611. package/dist/__tests__/renderer-render-scene-public.test-d.d.ts +0 -2
  612. package/dist/__tests__/renderer-render-scene-public.test-d.d.ts.map +0 -1
  613. package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts +0 -2
  614. package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts.map +0 -1
  615. package/dist/__tests__/sun-snapshot-consumers.test.d.ts +0 -2
  616. package/dist/__tests__/sun-snapshot-consumers.test.d.ts.map +0 -1
  617. package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts +0 -2
  618. package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts.map +0 -1
  619. package/dist/__tests__/taa-history-store.unit.test.d.ts +0 -2
  620. package/dist/__tests__/taa-history-store.unit.test.d.ts.map +0 -1
  621. package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts +0 -2
  622. package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts.map +0 -1
  623. package/dist/__tests__/temporal-inspection.unit.test.d.ts +0 -2
  624. package/dist/__tests__/temporal-inspection.unit.test.d.ts.map +0 -1
  625. package/dist/assets/__tests__/asset-decoders.unit.test.d.ts +0 -2
  626. package/dist/assets/__tests__/asset-decoders.unit.test.d.ts.map +0 -1
  627. package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts +0 -2
  628. package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts.map +0 -1
  629. package/dist/assets/__tests__/render-asset-port.unit.test.d.ts +0 -2
  630. package/dist/assets/__tests__/render-asset-port.unit.test.d.ts.map +0 -1
  631. package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts +0 -2
  632. package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts.map +0 -1
  633. package/dist/chunk-DJIMFYX6.mjs +0 -1439
  634. package/dist/chunk-DJIMFYX6.mjs.map +0 -1
  635. package/dist/chunk-F2SIOCRM.mjs +0 -7423
  636. package/dist/chunk-F2SIOCRM.mjs.map +0 -1
  637. package/dist/chunk-JMSB7AR4.mjs +0 -3
  638. package/dist/chunk-JMSB7AR4.mjs.map +0 -1
  639. package/dist/chunk-KHI6K4C6.mjs +0 -659
  640. package/dist/chunk-KHI6K4C6.mjs.map +0 -1
  641. package/dist/chunk-PORZOL2V.mjs +0 -569
  642. package/dist/chunk-PORZOL2V.mjs.map +0 -1
  643. package/dist/chunk-UOJGMDGP.mjs +0 -29913
  644. package/dist/chunk-UOJGMDGP.mjs.map +0 -1
  645. package/dist/components/__tests__/atmosphere-red.test.d.ts +0 -2
  646. package/dist/components/__tests__/atmosphere-red.test.d.ts.map +0 -1
  647. package/dist/components/__tests__/atmosphere.test.d.ts +0 -2
  648. package/dist/components/__tests__/atmosphere.test.d.ts.map +0 -1
  649. package/dist/components/__tests__/fog.test-d.d.ts +0 -2
  650. package/dist/components/__tests__/fog.test-d.d.ts.map +0 -1
  651. package/dist/components/__tests__/fog.test.d.ts +0 -2
  652. package/dist/components/__tests__/fog.test.d.ts.map +0 -1
  653. package/dist/components/atmosphere.d.ts +0 -18
  654. package/dist/components/atmosphere.d.ts.map +0 -1
  655. package/dist/components/environment.d.ts +0 -115
  656. package/dist/components/environment.d.ts.map +0 -1
  657. package/dist/deferred-lighting.d.ts +0 -13
  658. package/dist/deferred-lighting.d.ts.map +0 -1
  659. package/dist/dynamic-texture-store.d.ts +0 -42
  660. package/dist/dynamic-texture-store.d.ts.map +0 -1
  661. package/dist/environment/__tests__/failure-injection.test.d.ts +0 -2
  662. package/dist/environment/__tests__/failure-injection.test.d.ts.map +0 -1
  663. package/dist/environment/__tests__/generation-red.test.d.ts +0 -2
  664. package/dist/environment/__tests__/generation-red.test.d.ts.map +0 -1
  665. package/dist/environment/__tests__/generation.test.d.ts +0 -2
  666. package/dist/environment/__tests__/generation.test.d.ts.map +0 -1
  667. package/dist/environment/__tests__/graph-transaction.test.d.ts +0 -2
  668. package/dist/environment/__tests__/graph-transaction.test.d.ts.map +0 -1
  669. package/dist/environment/__tests__/inspection-red.test.d.ts +0 -2
  670. package/dist/environment/__tests__/inspection-red.test.d.ts.map +0 -1
  671. package/dist/environment/__tests__/lifecycle-evidence.test.d.ts +0 -2
  672. package/dist/environment/__tests__/lifecycle-evidence.test.d.ts.map +0 -1
  673. package/dist/environment/__tests__/pipeline-topology.test.d.ts +0 -2
  674. package/dist/environment/__tests__/pipeline-topology.test.d.ts.map +0 -1
  675. package/dist/environment/__tests__/readiness.test.d.ts +0 -2
  676. package/dist/environment/__tests__/readiness.test.d.ts.map +0 -1
  677. package/dist/environment/__tests__/recovery.test.d.ts +0 -2
  678. package/dist/environment/__tests__/recovery.test.d.ts.map +0 -1
  679. package/dist/environment/__tests__/resize-dispose.test.d.ts +0 -2
  680. package/dist/environment/__tests__/resize-dispose.test.d.ts.map +0 -1
  681. package/dist/environment/__tests__/signature-red.test.d.ts +0 -2
  682. package/dist/environment/__tests__/signature-red.test.d.ts.map +0 -1
  683. package/dist/environment/__tests__/signature.test.d.ts +0 -2
  684. package/dist/environment/__tests__/signature.test.d.ts.map +0 -1
  685. package/dist/environment/descriptors.d.ts +0 -2
  686. package/dist/environment/descriptors.d.ts.map +0 -1
  687. package/dist/environment/extracted-environment.d.ts +0 -53
  688. package/dist/environment/extracted-environment.d.ts.map +0 -1
  689. package/dist/environment/generation.d.ts +0 -62
  690. package/dist/environment/generation.d.ts.map +0 -1
  691. package/dist/environment/gpu-bundle.d.ts +0 -23
  692. package/dist/environment/gpu-bundle.d.ts.map +0 -1
  693. package/dist/environment/graph.d.ts +0 -108
  694. package/dist/environment/graph.d.ts.map +0 -1
  695. package/dist/environment/inspection.d.ts +0 -48
  696. package/dist/environment/inspection.d.ts.map +0 -1
  697. package/dist/environment/lifecycle.d.ts +0 -22
  698. package/dist/environment/lifecycle.d.ts.map +0 -1
  699. package/dist/environment/readiness.d.ts +0 -29
  700. package/dist/environment/readiness.d.ts.map +0 -1
  701. package/dist/environment/signature.d.ts +0 -70
  702. package/dist/environment/signature.d.ts.map +0 -1
  703. package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts +0 -2
  704. package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts.map +0 -1
  705. package/dist/extract/__tests__/environment-source.test.d.ts +0 -2
  706. package/dist/extract/__tests__/environment-source.test.d.ts.map +0 -1
  707. package/dist/extract/__tests__/schema-readers.unit.test.d.ts +0 -2
  708. package/dist/extract/__tests__/schema-readers.unit.test.d.ts.map +0 -1
  709. package/dist/extract/directional-csm.d.ts +0 -129
  710. package/dist/extract/directional-csm.d.ts.map +0 -1
  711. package/dist/extract/index.d.ts +0 -5
  712. package/dist/extract/index.d.ts.map +0 -1
  713. package/dist/extract/material-interface.d.ts +0 -56
  714. package/dist/extract/material-interface.d.ts.map +0 -1
  715. package/dist/extract/schema-readers.d.ts +0 -20
  716. package/dist/extract/schema-readers.d.ts.map +0 -1
  717. package/dist/features/graph-contribution.d.ts +0 -64
  718. package/dist/features/graph-contribution.d.ts.map +0 -1
  719. package/dist/features/index.d.ts +0 -21
  720. package/dist/features/index.d.ts.map +0 -1
  721. package/dist/features/morph/index.d.ts +0 -3
  722. package/dist/features/morph/index.d.ts.map +0 -1
  723. package/dist/features/morph/morph-bounds.d.ts +0 -42
  724. package/dist/features/morph/morph-bounds.d.ts.map +0 -1
  725. package/dist/features/scene-temporal.d.ts +0 -45
  726. package/dist/features/scene-temporal.d.ts.map +0 -1
  727. package/dist/features/taa-resolve.d.ts +0 -21
  728. package/dist/features/taa-resolve.d.ts.map +0 -1
  729. package/dist/frame-chain.d.ts +0 -14
  730. package/dist/frame-chain.d.ts.map +0 -1
  731. package/dist/gpu-driven/view-reference.d.ts.map +0 -1
  732. package/dist/gpu-resource-store.d.ts.map +0 -1
  733. package/dist/hdrp-cluster-membership.d.ts +0 -2
  734. package/dist/hdrp-cluster-membership.d.ts.map +0 -1
  735. package/dist/hdrp-pipeline.d.ts +0 -36
  736. package/dist/hdrp-pipeline.d.ts.map +0 -1
  737. package/dist/ibl/cubemap-projection.d.ts +0 -23
  738. package/dist/ibl/cubemap-projection.d.ts.map +0 -1
  739. package/dist/ibl/face-uniforms.d.ts +0 -65
  740. package/dist/ibl/face-uniforms.d.ts.map +0 -1
  741. package/dist/mesh-update-errors.d.ts +0 -71
  742. package/dist/mesh-update-errors.d.ts.map +0 -1
  743. package/dist/mipmap-generator.d.ts +0 -39
  744. package/dist/mipmap-generator.d.ts.map +0 -1
  745. package/dist/param-schema-projection-census.d.ts +0 -18
  746. package/dist/param-schema-projection-census.d.ts.map +0 -1
  747. package/dist/persistent-render-scene.d.ts +0 -158
  748. package/dist/persistent-render-scene.d.ts.map +0 -1
  749. package/dist/pipeline/index.d.ts +0 -11
  750. package/dist/pipeline/index.d.ts.map +0 -1
  751. package/dist/pipeline-errors.d.ts +0 -110
  752. package/dist/pipeline-errors.d.ts.map +0 -1
  753. package/dist/prepare/__tests__/schema-readers.unit.test.d.ts +0 -2
  754. package/dist/prepare/__tests__/schema-readers.unit.test.d.ts.map +0 -1
  755. package/dist/prepare/index.d.ts +0 -4
  756. package/dist/prepare/index.d.ts.map +0 -1
  757. package/dist/prepare/schema-readers.d.ts +0 -11
  758. package/dist/prepare/schema-readers.d.ts.map +0 -1
  759. package/dist/record/__tests__/environment-record.test.d.ts +0 -2
  760. package/dist/record/__tests__/environment-record.test.d.ts.map +0 -1
  761. package/dist/record/__tests__/frame-targets.unit.test.d.ts +0 -2
  762. package/dist/record/__tests__/frame-targets.unit.test.d.ts.map +0 -1
  763. package/dist/record/__tests__/membership-timing.unit.test.d.ts +0 -2
  764. package/dist/record/__tests__/membership-timing.unit.test.d.ts.map +0 -1
  765. package/dist/record/__tests__/render-submission.integration.test.d.ts +0 -2
  766. package/dist/record/__tests__/render-submission.integration.test.d.ts.map +0 -1
  767. package/dist/record/__tests__/render-submission.perf.test.d.ts +0 -2
  768. package/dist/record/__tests__/render-submission.perf.test.d.ts.map +0 -1
  769. package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts +0 -2
  770. package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts.map +0 -1
  771. package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts +0 -2
  772. package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts.map +0 -1
  773. package/dist/record/frame-observation.d.ts +0 -38
  774. package/dist/record/frame-observation.d.ts.map +0 -1
  775. package/dist/record/index.d.ts +0 -15
  776. package/dist/record/index.d.ts.map +0 -1
  777. package/dist/record/main-pass-skin.d.ts +0 -46
  778. package/dist/record/main-pass-skin.d.ts.map +0 -1
  779. package/dist/record/main-pass-sprite.d.ts +0 -69
  780. package/dist/record/main-pass-sprite.d.ts.map +0 -1
  781. package/dist/record/material-payload.d.ts +0 -43
  782. package/dist/record/material-payload.d.ts.map +0 -1
  783. package/dist/record/material-slot-plan.d.ts +0 -26
  784. package/dist/record/material-slot-plan.d.ts.map +0 -1
  785. package/dist/record/membership-timing.d.ts +0 -232
  786. package/dist/record/membership-timing.d.ts.map +0 -1
  787. package/dist/record/shadow-caster-uniform.d.ts +0 -8
  788. package/dist/record/shadow-caster-uniform.d.ts.map +0 -1
  789. package/dist/record/shadow-submit-mode.d.ts +0 -66
  790. package/dist/record/shadow-submit-mode.d.ts.map +0 -1
  791. package/dist/render-dispatch-membership.d.ts +0 -47
  792. package/dist/render-dispatch-membership.d.ts.map +0 -1
  793. package/dist/render-pipeline-context.d.ts +0 -289
  794. package/dist/render-pipeline-context.d.ts.map +0 -1
  795. package/dist/render-pipeline-target.d.ts +0 -16
  796. package/dist/render-pipeline-target.d.ts.map +0 -1
  797. package/dist/render-scene-projection.d.ts +0 -174
  798. package/dist/render-scene-projection.d.ts.map +0 -1
  799. package/dist/render-system-fold.d.ts +0 -266
  800. package/dist/render-system-fold.d.ts.map +0 -1
  801. package/dist/renderer/asset-service.d.ts +0 -10
  802. package/dist/renderer/asset-service.d.ts.map +0 -1
  803. package/dist/renderer/backend-selection.d.ts.map +0 -1
  804. package/dist/renderer/environment-classify.d.ts +0 -6
  805. package/dist/renderer/environment-classify.d.ts.map +0 -1
  806. package/dist/renderer/environment-error.d.ts +0 -13
  807. package/dist/renderer/environment-error.d.ts.map +0 -1
  808. package/dist/renderer/material/pipeline-projection.d.ts +0 -91
  809. package/dist/renderer/material/pipeline-projection.d.ts.map +0 -1
  810. package/dist/renderer/renderer-factory.d.ts +0 -289
  811. package/dist/renderer/renderer-factory.d.ts.map +0 -1
  812. package/dist/renderer.d.ts +0 -771
  813. package/dist/renderer.d.ts.map +0 -1
  814. package/dist/scene-utils/collect-subtree.d.ts +0 -11
  815. package/dist/scene-utils/collect-subtree.d.ts.map +0 -1
  816. package/dist/ssao-data.d.ts +0 -34
  817. package/dist/ssao-data.d.ts.map +0 -1
  818. package/dist/surface-format.d.ts +0 -10
  819. package/dist/surface-format.d.ts.map +0 -1
  820. package/dist/taa-history-store.d.ts +0 -88
  821. package/dist/taa-history-store.d.ts.map +0 -1
  822. package/dist/temporal-coverage.d.ts +0 -35
  823. package/dist/temporal-coverage.d.ts.map +0 -1
  824. package/dist/temporal-frame-transaction.d.ts +0 -92
  825. package/dist/temporal-frame-transaction.d.ts.map +0 -1
  826. package/dist/temporal-inspection.d.ts +0 -57
  827. package/dist/temporal-inspection.d.ts.map +0 -1
  828. package/dist/temporal-view.d.ts +0 -43
  829. package/dist/temporal-view.d.ts.map +0 -1
  830. package/dist/tilemap/resolve-tileset-runtime.d.ts +0 -23
  831. package/dist/tilemap/resolve-tileset-runtime.d.ts.map +0 -1
  832. package/dist/urp-pipeline.d.ts +0 -4
  833. package/dist/urp-pipeline.d.ts.map +0 -1
  834. package/src/__tests__/analytic-sky-contract.test.ts +0 -27
  835. package/src/__tests__/analytic-sky-falsify-carriers.mjs +0 -43
  836. package/src/__tests__/analytic-sky-falsify.test.ts +0 -94
  837. package/src/__tests__/assets-runtime-handoff.integration.test.ts +0 -36
  838. package/src/__tests__/backend-selection.integration.test.ts +0 -11
  839. package/src/__tests__/camera-temporal.test-d.ts +0 -8
  840. package/src/__tests__/camera-temporal.test.ts +0 -188
  841. package/src/__tests__/directional-shadow-probe-atlas-layout.unit.test.ts +0 -18
  842. package/src/__tests__/environment-inspection.test.ts +0 -45
  843. package/src/__tests__/fog-ai-user.fixture.ts +0 -350
  844. package/src/__tests__/fog-custom-render-feature.fixture.ts +0 -33
  845. package/src/__tests__/fog-custom-render-feature.integration.test.ts +0 -76
  846. package/src/__tests__/fog-inspection.integration.test.ts +0 -127
  847. package/src/__tests__/fog-owner-state.integration.test.ts +0 -112
  848. package/src/__tests__/fog-pipeline-topology.integration.test.ts +0 -93
  849. package/src/__tests__/fog-public-surface.integration.test.ts +0 -60
  850. package/src/__tests__/fog-ray-contract.integration.test.ts +0 -73
  851. package/src/__tests__/fog-source-absence.integration.test.ts +0 -51
  852. package/src/__tests__/fog-temporal.integration.test.ts +0 -115
  853. package/src/__tests__/frame-chain.unit.test.ts +0 -26
  854. package/src/__tests__/gpu-scene-field-type-owner.test-d.ts +0 -27
  855. package/src/__tests__/hdrp-pipeline.unit.test.ts +0 -100
  856. package/src/__tests__/ibl/ibl-fallback.unit.test.ts +0 -23
  857. package/src/__tests__/material-derived-error-stop-draw.integration.test.ts +0 -69
  858. package/src/__tests__/material-derived-payload.integration.test.ts +0 -164
  859. package/src/__tests__/materials.unit.test.ts +0 -25
  860. package/src/__tests__/param-schema-projection-census.unit.test.ts +0 -40
  861. package/src/__tests__/persistent-render-scene.unit.test.ts +0 -1311
  862. package/src/__tests__/pipeline-error-policy-owner.unit.test.ts +0 -167
  863. package/src/__tests__/pipeline-pass-trace.test.ts +0 -92
  864. package/src/__tests__/pipeline-stage-owner.test-d.ts +0 -13
  865. package/src/__tests__/plugin.test.ts +0 -25
  866. package/src/__tests__/prepared-graphics-backend-matrix.unit.test.ts +0 -129
  867. package/src/__tests__/prepared-graphics-resolver-recording.unit.test.ts +0 -180
  868. package/src/__tests__/public-pipeline-id.test-d.ts +0 -6
  869. package/src/__tests__/render-dispatch-membership.unit.test.ts +0 -117
  870. package/src/__tests__/render-feature-construction.unit.test.ts +0 -124
  871. package/src/__tests__/render-feature-error-code-owner.test-d.ts +0 -27
  872. package/src/__tests__/render-feature-gpu-buffer-usage-owner.test-d.ts +0 -46
  873. package/src/__tests__/render-feature-graph.integration.test.ts +0 -205
  874. package/src/__tests__/render-feature-graphics-staging.unit.test.ts +0 -200
  875. package/src/__tests__/render-feature-order.unit.test.ts +0 -66
  876. package/src/__tests__/render-feature-prepared-graphics-recording.unit.test.ts +0 -107
  877. package/src/__tests__/render-feature-staging.unit.test.ts +0 -94
  878. package/src/__tests__/renderer-render-scene-public.test-d.ts +0 -27
  879. package/src/__tests__/scene-temporal-coverage.unit.test.ts +0 -259
  880. package/src/__tests__/sun-snapshot-consumers.test.ts +0 -35
  881. package/src/__tests__/surface-backend-kind-owner.test-d.ts +0 -42
  882. package/src/__tests__/taa-history-store.unit.test.ts +0 -196
  883. package/src/__tests__/temporal-frame-transaction.integration.test.ts +0 -537
  884. package/src/__tests__/temporal-inspection.unit.test.ts +0 -138
  885. package/src/assets/__tests__/asset-decoders.unit.test.ts +0 -92
  886. package/src/assets/__tests__/mipmap-generator.unit.test.ts +0 -52
  887. package/src/assets/__tests__/render-asset-port.unit.test.ts +0 -54
  888. package/src/assets/__tests__/resolve-render-asset.unit.test.ts +0 -47
  889. package/src/components/__tests__/atmosphere-red.test.ts +0 -51
  890. package/src/components/__tests__/atmosphere.test.ts +0 -79
  891. package/src/components/__tests__/fog.test-d.ts +0 -49
  892. package/src/components/__tests__/fog.test.ts +0 -60
  893. package/src/components/atmosphere.ts +0 -64
  894. package/src/deferred-lighting.ts +0 -92
  895. package/src/dynamic-texture-store.ts +0 -111
  896. package/src/environment/README.md +0 -76
  897. package/src/environment/__tests__/failure-injection.test.ts +0 -50
  898. package/src/environment/__tests__/generation-red.test.ts +0 -64
  899. package/src/environment/__tests__/generation.test.ts +0 -37
  900. package/src/environment/__tests__/graph-transaction.test.ts +0 -85
  901. package/src/environment/__tests__/inspection-red.test.ts +0 -53
  902. package/src/environment/__tests__/lifecycle-evidence.test.ts +0 -40
  903. package/src/environment/__tests__/pipeline-topology.test.ts +0 -33
  904. package/src/environment/__tests__/readiness.test.ts +0 -42
  905. package/src/environment/__tests__/recovery.test.ts +0 -62
  906. package/src/environment/__tests__/resize-dispose.test.ts +0 -30
  907. package/src/environment/__tests__/signature-red.test.ts +0 -45
  908. package/src/environment/__tests__/signature.test.ts +0 -60
  909. package/src/environment/descriptors.ts +0 -7
  910. package/src/environment/extracted-environment.ts +0 -239
  911. package/src/environment/generation.ts +0 -158
  912. package/src/environment/gpu-bundle.ts +0 -144
  913. package/src/environment/graph.ts +0 -588
  914. package/src/environment/inspection.ts +0 -107
  915. package/src/environment/lifecycle.ts +0 -124
  916. package/src/environment/readiness.ts +0 -76
  917. package/src/environment/signature.ts +0 -185
  918. package/src/extract/__tests__/directional-csm-domain.unit.test.ts +0 -391
  919. package/src/extract/__tests__/environment-source.test.ts +0 -105
  920. package/src/extract/__tests__/schema-readers.unit.test.ts +0 -16
  921. package/src/extract/directional-csm.ts +0 -959
  922. package/src/extract/index.ts +0 -10
  923. package/src/extract/material-interface.ts +0 -604
  924. package/src/extract/schema-readers.ts +0 -27
  925. package/src/features/graph-contribution.ts +0 -577
  926. package/src/features/index.ts +0 -100
  927. package/src/features/morph/index.ts +0 -24
  928. package/src/features/morph/morph-bounds.ts +0 -123
  929. package/src/features/scene-temporal.ts +0 -274
  930. package/src/features/taa-resolve.ts +0 -244
  931. package/src/frame-chain.ts +0 -21
  932. package/src/hdrp-cluster-membership.ts +0 -70
  933. package/src/ibl/cubemap-projection.ts +0 -60
  934. package/src/ibl/face-uniforms.ts +0 -150
  935. package/src/mesh-update-errors.ts +0 -113
  936. package/src/mipmap-generator.ts +0 -244
  937. package/src/param-schema-projection-census.ts +0 -73
  938. package/src/persistent-render-scene.ts +0 -1752
  939. package/src/pipeline/index.ts +0 -40
  940. package/src/pipeline-errors.ts +0 -172
  941. package/src/prepare/__tests__/schema-readers.unit.test.ts +0 -16
  942. package/src/prepare/index.ts +0 -8
  943. package/src/prepare/schema-readers.ts +0 -20
  944. package/src/record/__tests__/environment-record.test.ts +0 -35
  945. package/src/record/__tests__/frame-targets.unit.test.ts +0 -54
  946. package/src/record/__tests__/membership-timing.unit.test.ts +0 -524
  947. package/src/record/__tests__/render-submission.integration.test.ts +0 -76
  948. package/src/record/__tests__/render-submission.perf.test.ts +0 -141
  949. package/src/record/__tests__/shadow-submit-mode.unit.test.ts +0 -88
  950. package/src/record/__tests__/view-ubo-layout.unit.test.ts +0 -101
  951. package/src/record/frame-observation.ts +0 -122
  952. package/src/record/index.ts +0 -15
  953. package/src/record/main-pass-skin.ts +0 -51
  954. package/src/record/main-pass-sprite.ts +0 -166
  955. package/src/record/material-payload.ts +0 -292
  956. package/src/record/material-slot-plan.ts +0 -68
  957. package/src/record/membership-timing.ts +0 -1012
  958. package/src/record/shadow-caster-uniform.ts +0 -37
  959. package/src/record/shadow-submit-mode.ts +0 -277
  960. package/src/render-dispatch-membership.ts +0 -155
  961. package/src/render-pipeline-context.ts +0 -332
  962. package/src/render-pipeline-target.ts +0 -96
  963. package/src/render-scene-projection.ts +0 -1738
  964. package/src/render-system-fold.ts +0 -531
  965. package/src/renderer/asset-service.ts +0 -32
  966. package/src/renderer/backend-selection.ts +0 -121
  967. package/src/renderer/environment-classify.ts +0 -30
  968. package/src/renderer/environment-error.ts +0 -19
  969. package/src/renderer/material/pipeline-projection.ts +0 -140
  970. package/src/renderer.ts +0 -940
  971. package/src/scene-utils/collect-subtree.ts +0 -40
  972. package/src/ssao-data.ts +0 -106
  973. package/src/surface-format.ts +0 -37
  974. package/src/taa-history-store.ts +0 -429
  975. package/src/temporal-coverage.ts +0 -106
  976. package/src/temporal-frame-transaction.ts +0 -301
  977. package/src/temporal-inspection.ts +0 -194
  978. package/src/temporal-view.ts +0 -174
  979. package/src/tilemap/resolve-tileset-runtime.ts +0 -72
@@ -8,9 +8,10 @@
8
8
  // The brand prevents cross-asset assignment at compile time (e.g.
9
9
  // `Handle<'TextureAsset','shared'>` is not assignable to `assetHandle`).
10
10
  //
11
- // AI users create one `MeshAsset` payload through geometry's primitive
12
- // factory and intern it in the owning World; the returned shared reference
13
- // matches the schema-derived `Handle<'MeshAsset', 'shared'>` shape.
11
+ // AI users spawn with the assets-runtime constants `HANDLE_CUBE` /
12
+ // `HANDLE_TRIANGLE` (now branded `Handle<'MeshAsset','shared'>` to
13
+ // match the schema-derived shape); custom mesh registration is owned by
14
+ // feat-future-asset-system (this MVP only exposes builtin handles).
14
15
  //
15
16
  // Naming flavor: unity-style "MeshFilter / MeshRenderer" pair, but the forgeax
16
17
  // pair does NOT mirror Unity's filter-toggle semantics - MeshFilter only
@@ -38,9 +39,10 @@ import { defineComponent } from '@forgeax/engine-ecs';
38
39
  * Mesh filter (geometry asset reference).
39
40
  *
40
41
  * `assetHandle` carries a `Handle<'MeshAsset', 'shared'>` (u32-stored)
41
- * pointing to a mesh interned by the owning World. Create that reference
42
- * with `world.internSharedRef(createPrimitiveMesh('cube').unwrap())` or
43
- * with a payload loaded from the App asset registry.
42
+ * pointing into `engine.assets: AssetRegistry`. Use the predefined
43
+ * constants `HANDLE_CUBE` / `HANDLE_TRIANGLE` exported from
44
+ * `@forgeax/engine-render`; custom-mesh registration is OOS in MVP (see
45
+ * feat-future-asset-system).
44
46
  *
45
47
  * Error path: if the handle is not registered at draw time, RenderSystem
46
48
  * fires `Renderer.onError` with
@@ -48,11 +50,10 @@ import { defineComponent } from '@forgeax/engine-ecs';
48
50
  * and skips this entity (other entities continue rendering; charter
49
51
  * proposition 9 graceful degradation).
50
52
  *
51
- * @example Spawn an entity referencing a geometry-owned cube mesh:
53
+ * @example Spawn an entity referencing the builtin cube mesh:
52
54
  * import { MeshFilter } from '@forgeax/engine-render';
53
- * import { createPrimitiveMesh } from '@forgeax/engine-geometry';
54
- * const cube = world.internSharedRef(createPrimitiveMesh('cube').unwrap());
55
- * world.spawn({ component: MeshFilter, data: { assetHandle: cube } });
55
+ * import { HANDLE_CUBE } from '@forgeax/engine-assets-runtime';
56
+ * world.spawn({ component: MeshFilter, data: { assetHandle: HANDLE_CUBE } });
56
57
  */
57
58
  export const MeshFilter = defineComponent('MeshFilter', {
58
59
  assetHandle: { type: 'shared<MeshAsset>' },
@@ -0,0 +1,40 @@
1
+ import { defineComponent } from '@forgeax/engine-ecs';
2
+
3
+ /** Public point raster shapes backed by the ECS enum column. */
4
+ export type PointShape = keyof typeof PointShapeValue;
5
+
6
+ /** Numeric labels stored by the public Points shape enum field. */
7
+ export const PointShapeValue = Object.freeze({
8
+ square: 0,
9
+ circle: 1,
10
+ } as const);
11
+
12
+ /** Decode the Points shape column without treating an unknown value as valid. */
13
+ export function pointShapeFromU32(value: number): PointShape | undefined {
14
+ switch (value) {
15
+ case PointShapeValue.square:
16
+ return 'square';
17
+ case PointShapeValue.circle:
18
+ return 'circle';
19
+ default:
20
+ return undefined;
21
+ }
22
+ }
23
+
24
+ /** Screen-space point style. Geometry and material remain on their own owners. */
25
+ export const Points = defineComponent(
26
+ 'Points',
27
+ {
28
+ sizePx: { type: 'f32', default: 4 },
29
+ shape: { type: 'enum', default: PointShapeValue.square, labels: PointShapeValue },
30
+ },
31
+ {
32
+ meta: {
33
+ quickStart: 'Attach Points to render point-list MeshAsset vertices in screen pixels.',
34
+ diagnostics: 'Inspect sizePx and decode shape with pointShapeFromU32.',
35
+ recovery: 'Use points-lines-invalid-style for non-finite or non-positive sizePx values.',
36
+ boundaries:
37
+ 'Points owns raster size and shape only; MeshFilter and MeshRenderer own geometry and material.',
38
+ },
39
+ },
40
+ );
@@ -3,10 +3,10 @@
3
3
  // Schema: { shader: 'string', data: 'buffer' }.
4
4
  //
5
5
  // `shader` identifies the fullscreen post-process shader (the same id as passed to
6
- // `renderer.postProcess.register(id, entry)`). `data` carries the per-frame params
6
+ // the feature host registers for `id`). `data` carries the per-frame params
7
7
  // bytes as a variable-byte ECS managed buffer slot. The write side (world.spawn /
8
- // world.set) accepts any AllowSharedBufferSource (Float32Array / ArrayBuffer /
9
- // Uint8Array / any TypedArray) and the ECS normalizes it to Uint8Array bytes
8
+ // world.set) accepts every AllowSharedBufferSource (Float32Array / ArrayBuffer /
9
+ // Uint8Array / typed array) and the ECS normalizes it to Uint8Array bytes
10
10
  // (feat-20260621 V2 / AC-A4); the read side (world.get) returns Uint8Array, which
11
11
  // satisfies AllowSharedBufferSource for GPU queue.writeBuffer ingestion.
12
12
  //
@@ -34,7 +34,7 @@
34
34
  // - charter P3 (machine-readable schema: 3 closed fields)
35
35
  // - charter P4 (consistent abstraction: instance == entity carrying
36
36
  // SceneInstance — same `world.query({ read: [SceneInstance] })` /
37
- // `world.get(root, SceneInstance)` path as any other component)
37
+ // `world.get(root, SceneInstance)` path as another component)
38
38
 
39
39
  import { defineComponent, type EntityHandle } from '@forgeax/engine-ecs';
40
40
  import type { LocalEntityId, MountOverride } from '@forgeax/engine-types';
@@ -52,8 +52,8 @@ import type { LocalEntityId, MountOverride } from '@forgeax/engine-types';
52
52
  * mismatch'` (plan-strategy §D-9) catches type drift on the apply path.
53
53
  *
54
54
  * @internal Surface from `state.overrides` only; AI users never construct a
55
- * record directly. Use `worldSetSceneOverride(world, root, member, comp,
56
- * field, value)` to write and `worldRemoveSceneOverride(world, root, member,
55
+ * record directly. Use `world.setSceneOverride(root, member, comp,
56
+ * field, value)` to write and `world.removeSceneOverride(root, member,
57
57
  * comp, field)` to roll back to the source SceneAsset value.
58
58
  */
59
59
  export interface SceneInstanceOverrideRecord {
@@ -75,11 +75,11 @@ export interface SceneInstanceOverrideRecord {
75
75
  * AI users can iterate without indirection.
76
76
  *
77
77
  * Lifecycle:
78
- * - allocated by `worldInstantiateScene(world, handle, parent?)` — the W in
78
+ * - allocated by `world.instantiateScene(handle, parent?)` — the W in
79
79
  * `world.allocUniqueRef('SceneInstanceState', state)` returns the u32
80
80
  * slot id stored in the SceneInstance.state column;
81
81
  * - released by `world.despawn(root)` (the standard `ref<T>` release loop)
82
- * or explicitly via `worldDespawnScene(world, root)` / `worldDespawnDescendants(world, root)`.
82
+ * or explicitly via `world.despawnScene(root)` / `world.despawnDescendants(root)`.
83
83
  *
84
84
  * AI users typically reach this struct only through the read path
85
85
  * `world.get(root, SceneInstance).state.overrides.get(<comp>:<field>)` for
@@ -96,17 +96,17 @@ export interface SceneInstanceState {
96
96
 
97
97
  /**
98
98
  * Reverse mapping (live `Entity` -> source `LocalEntityId`). Used by
99
- * `worldSetSceneOverride` to validate the member entity belongs to this
100
- * instance + by `worldDetachSceneMember` / `worldReattachSceneMember`
99
+ * `world.setSceneOverride` to validate the member entity belongs to this
100
+ * instance + by `world.detachSceneMember` / `world.reattachSceneMember`
101
101
  * to translate caller-side Entity values back to their authored localId.
102
102
  */
103
103
  readonly entityToLocalId: Map<EntityHandle, LocalEntityId>;
104
104
 
105
105
  /**
106
106
  * LocalEntityIds of members the AI user marked detached via
107
- * `worldDetachSceneMember(world, root, member)`. The member entities stay
107
+ * `world.detachSceneMember(root, member)`. The member entities stay
108
108
  * alive in the World; only the bookkeeping marker moves so
109
- * `worldDespawnDescendants(world, root, { keepDetached: true })` can skip them.
109
+ * `world.despawnDescendants(root, { keepDetached: true })` can skip them.
110
110
  * Detach is idempotent (set semantics).
111
111
  */
112
112
  readonly detachedLocalIds: Set<LocalEntityId>;
@@ -134,7 +134,7 @@ export interface SceneInstanceState {
134
134
  /**
135
135
  * Total slot count `entities.length + sum(mounts[].memberCount)` —
136
136
  * captured at instantiate-time so cycle / count consistency checks
137
- * (e.g. `worldGetSceneAssetForInstance(world, root)` symmetry) can compare
137
+ * (e.g. `world.getSceneAssetForInstance(root)` symmetry) can compare
138
138
  * against the live SceneInstance.mapping column without re-reading the
139
139
  * SceneAsset.
140
140
  */
@@ -142,7 +142,7 @@ export interface SceneInstanceState {
142
142
 
143
143
  /**
144
144
  * Mount-time override authored on the parent SceneAsset's `mounts[]`
145
- * record. Captured at instantiate-time so `worldRemoveSceneOverride`
145
+ * record. Captured at instantiate-time so `world.removeSceneOverride`
146
146
  * can fall back to the mount-time value before going to the source
147
147
  * SceneAsset value (plan-strategy §D-2).
148
148
  */
@@ -174,7 +174,7 @@ export interface SceneInstanceState {
174
174
  * apply unchanged (plan-strategy §D-5).
175
175
  *
176
176
  * @example Materialise + inspect a SceneAsset:
177
- * const { root, diagnostics } = worldInstantiateScene(world, handle).value;
177
+ * const { root, diagnostics } = world.instantiateScene(handle).value;
178
178
  * const inst = world.get(root, SceneInstance).value;
179
179
  * // inst.source === handle, inst.mapping is Uint32Array(totalSlots)
180
180
  * // inst.state holds entityToLocalId / detachedLocalIds / overrides /
@@ -0,0 +1,103 @@
1
+ // @forgeax/engine-runtime - SkyboxBackground (environment cubemap render background).
2
+ //
3
+ // Schema: 3 fields -- equirect (Handle<EquirectAsset>, u32-stored handle)
4
+ // + mode (f32 enum column, discriminator) + rotation (quaternion xyzw,
5
+ // default identity). Naming convention follows the
6
+ // single-semantic component rule: no Component suffix (AGENTS.md rule #1).
7
+ //
8
+ // feat-20260630-equirect-kind-internalized-ibl-declarative-skyligh M3 / w16:
9
+ // the field is `equirect: shared<EquirectAsset>` (the retired
10
+ // `cubemap: shared<CubeTextureAsset>` is gone). The skybox reuses the same
11
+ // equirect handle as the Skylight; the cubemap projection is internal and
12
+ // driven by the render-system record arm (no user upload call).
13
+ //
14
+ // Plan-strategy D-5: mode is a f32 enum column (ECS columns are POD, no
15
+ // string unions in archetype storage). Consumer-facing type safety is
16
+ // provided by the `SkyboxMode` literal union + `skyboxModeFromF32` mapper
17
+ // (same pattern as cameraProjectionFromF32 in camera.ts:51,105,145,221-237).
18
+ //
19
+ // OOS-1: `mode: 'atmosphere'` implementation is deferred -- the union
20
+ // shape leaves room for additive growth without breaking the f32 enum
21
+ // encoding.
22
+ //
23
+ // AI user minimum spawn (charter P4):
24
+ // world.spawn({ component: SkyboxBackground, data: { equirect, mode: 0 } });
25
+ //
26
+ // Single component activates the skybox render pass transparently when a
27
+ // Skylight + tonemap active camera is present (skybox reuses the same
28
+ // equirect handle as Skylight).
29
+
30
+ import { defineComponent } from '@forgeax/engine-ecs';
31
+
32
+ /**
33
+ * Skybox mode literal union (AC-02 narrowing surface).
34
+ * Currently only 'cubemap' -- future 'atmosphere' deferred per OOS-1.
35
+ */
36
+ export type SkyboxMode = 'cubemap';
37
+
38
+ /** Numeric encoding of cubemap skybox mode (schema value for `mode`). */
39
+ export const SKYBOX_MODE_CUBEMAP = 0;
40
+
41
+ /**
42
+ * Map a `SkyboxBackground.mode` numeric value to the closed `SkyboxMode`
43
+ * string-literal union. Only member currently is 'cubemap'; the exhaustive
44
+ * switch is ready for future mode additions (e.g. 'atmosphere', OOS-1).
45
+ */
46
+ export function skyboxModeFromF32(value: number): SkyboxMode {
47
+ switch (value) {
48
+ case SKYBOX_MODE_CUBEMAP:
49
+ return 'cubemap';
50
+ // Future: case SKYBOX_MODE_ATMOSPHERE: return 'atmosphere';
51
+ }
52
+ // Unrecognised value: fall back to 'cubemap' (charter P3 -- no silent
53
+ // exception; the fallback preserves rendering on stale numerics while
54
+ // the exhaustive switch shape ensures AI users catch new members at
55
+ // compile time when a mode is added).
56
+ return 'cubemap';
57
+ }
58
+
59
+ /**
60
+ * SkyboxBackground: full-screen environment cubemap background.
61
+ *
62
+ * Renders a fullscreen triangle that reconstructs world-space view
63
+ * direction from the camera's inverseViewProj matrix (View UBO),
64
+ * samples a cubemap with the view direction, and writes an HDR color
65
+ * to the hdrColor render target (before the main geometry pass).
66
+ *
67
+ * The skybox pass is automatically activated when a SkyboxBackground
68
+ * entity exists, a Skylight entity provides the equirect source, and the
69
+ * active Camera has tonemap active. The skybox reuses the same equirect
70
+ * handle as the Skylight entity -- two independent components sharing the
71
+ * same GPU resource (the internally-projected cubemap).
72
+ *
73
+ * `equirect` is a `Handle<EquirectAsset>` resolved from a vite pack-index
74
+ * GUID via `engine.assets.loadByGuid<EquirectAsset>(guid)`. The cubemap
75
+ * projection is internal and driven by the render-system record arm; there
76
+ * is no user upload call.
77
+ *
78
+ * `mode` is a numeric discriminator column (`'f32'`). Use
79
+ * `SKYBOX_MODE_CUBEMAP` for the cubemap render path.
80
+ *
81
+ * `rotation` is an environment-space quaternion in `[x, y, z, w]` order.
82
+ * It rotates the sampled cubemap without changing the camera or rebaking the
83
+ * source equirectangular asset.
84
+ *
85
+ * @example Minimum spawn (defaults mode=0):
86
+ * // equirectHandle resolved from loadByGuid<EquirectAsset> (same handle as
87
+ * // the Skylight).
88
+ * world.spawn({ component: SkyboxBackground, data: { equirect: equirectHandle } });
89
+ *
90
+ * @example Single handle shared between Skylight (IBL) and SkyboxBackground:
91
+ * const hdrRes = await engine.assets.loadByGuid<EquirectAsset>(guid);
92
+ * if (!hdrRes.ok) throw hdrRes.error;
93
+ * world.spawn({ component: Skylight, data: { equirect: hdrRes.value } });
94
+ * world.spawn({ component: SkyboxBackground, data: { equirect: hdrRes.value } });
95
+ */
96
+ export const SkyboxBackground = defineComponent('SkyboxBackground', {
97
+ // The GPU skybox projection is render-owned presentation state; restore
98
+ // keeps the portable mode/rotation controls and lets the owner re-resolve
99
+ // the environment asset on the target world.
100
+ equirect: { type: 'shared<EquirectAsset>', simulationTransient: true },
101
+ mode: { type: 'f32', default: SKYBOX_MODE_CUBEMAP },
102
+ rotation: { type: 'array<f32, 4>', default: new Float32Array([0, 0, 0, 1]) },
103
+ });
@@ -54,7 +54,7 @@ import { defineComponent } from '@forgeax/engine-ecs';
54
54
  * `color` * `intensity` then scale the IBL ambient.
55
55
  *
56
56
  * `equirect` is an OPTIONAL `Handle<EquirectAsset>` resolved from a vite
57
- * pack-index GUID via `assets.load(guid, equirectAssetKind)`. The
57
+ * pack-index GUID via `engine.assets.loadByGuid<EquirectAsset>(guid)`. The
58
58
  * cubemap projection is internal and idempotent: the same equirect source
59
59
  * always resolves to the same GPU cubemap (no user upload call).
60
60
  *
@@ -78,7 +78,7 @@ import { defineComponent } from '@forgeax/engine-ecs';
78
78
  * const guidRes = AssetGuid.parse('019e4a26-3c29-7420-af5d-20f2724a16b0');
79
79
  * if (!guidRes.ok) throw guidRes.error;
80
80
  * // 2. load the HDR equirect via the GUID-addressed pack route
81
- * const hdrRes = await assets.load(guidRes.value, equirectAssetKind);
81
+ * const hdrRes = await engine.assets.loadByGuid<EquirectAsset>(guidRes.value);
82
82
  * if (!hdrRes.ok) throw hdrRes.error;
83
83
  * // 3. spawn the Skylight — the equirect handle activates the full IBL path;
84
84
  * // the cubemap + IBL precompute happen lazily inside the record arm.
@@ -95,111 +95,3 @@ export const Skylight = defineComponent('Skylight', {
95
95
  intensity: { type: 'f32', default: 1.0 },
96
96
  rotation: { type: 'array<f32, 4>', default: new Float32Array([0, 0, 0, 1]) },
97
97
  });
98
-
99
- export const Fog = defineComponent('Fog', {
100
- color: { type: 'array<f32, 3>', default: new Float32Array([0.5, 0.5, 0.5]) },
101
- density: { type: 'f32', default: 0.01 },
102
- heightFalloff: { type: 'f32', default: 0 },
103
- maxOpacity: { type: 'f32', default: 1 },
104
- });
105
-
106
- // @forgeax/engine-runtime - SkyboxBackground (environment cubemap render background).
107
- //
108
- // Schema: 3 fields -- equirect (Handle<EquirectAsset>, u32-stored handle)
109
- // + mode (f32 enum column, discriminator) + rotation (quaternion xyzw,
110
- // default identity). Naming convention follows the
111
- // single-semantic component rule: no Component suffix (AGENTS.md rule #1).
112
- //
113
- // feat-20260630-equirect-kind-internalized-ibl-declarative-skyligh M3 / w16:
114
- // the field is `equirect: shared<EquirectAsset>` (the retired
115
- // `cubemap: shared<CubeTextureAsset>` is gone). The skybox reuses the same
116
- // equirect handle as the Skylight; the cubemap projection is internal and
117
- // driven by the render-system record arm (no user upload call).
118
- //
119
- // Plan-strategy D-5: mode is a f32 enum column (ECS columns are POD, no
120
- // string unions in archetype storage). Consumer-facing type safety is
121
- // provided by the `SkyboxMode` literal union + `skyboxModeFromF32` mapper
122
- // (same pattern as cameraProjectionFromF32 in camera.ts:51,105,145,221-237).
123
- //
124
- // OOS-1: `mode: 'atmosphere'` implementation is deferred -- the union
125
- // shape leaves room for additive growth without breaking the f32 enum
126
- // encoding.
127
- //
128
- // AI user minimum spawn (charter P4):
129
- // world.spawn({ component: SkyboxBackground, data: { equirect, mode: 0 } });
130
- //
131
- // Single component activates the skybox render pass transparently when a
132
- // Skylight + tonemap active camera is present (skybox reuses the same
133
- // equirect handle as Skylight).
134
-
135
- /**
136
- * Skybox mode literal union (AC-02 narrowing surface).
137
- * Currently only 'cubemap' -- future 'atmosphere' deferred per OOS-1.
138
- */
139
- export type SkyboxMode = 'cubemap';
140
-
141
- /** Numeric encoding of cubemap skybox mode (schema value for `mode`). */
142
- export const SKYBOX_MODE_CUBEMAP = 0;
143
-
144
- /**
145
- * Map a `SkyboxBackground.mode` numeric value to the closed `SkyboxMode`
146
- * string-literal union. Only member currently is 'cubemap'; the exhaustive
147
- * switch is ready for future mode additions (e.g. 'atmosphere', OOS-1).
148
- */
149
- export function skyboxModeFromF32(value: number): SkyboxMode {
150
- switch (value) {
151
- case SKYBOX_MODE_CUBEMAP:
152
- return 'cubemap';
153
- // Future: case SKYBOX_MODE_ATMOSPHERE: return 'atmosphere';
154
- }
155
- // Unrecognised value: fall back to 'cubemap' (charter P3 -- no silent
156
- // exception; the fallback preserves rendering on stale numerics while the
157
- // exhaustive switch shape ensures AI users catch new members at compile
158
- // time when a mode is added).
159
- return 'cubemap';
160
- }
161
-
162
- /**
163
- * SkyboxBackground: full-screen environment cubemap background.
164
- *
165
- * Renders a fullscreen triangle that reconstructs world-space view
166
- * direction from the camera's inverseViewProj matrix (View UBO),
167
- * samples a cubemap with the view direction, and writes an HDR color
168
- * to the hdrColor render target (before the main geometry pass).
169
- *
170
- * The skybox pass is automatically activated when a SkyboxBackground
171
- * entity exists, a Skylight entity provides the equirect source, and the
172
- * active Camera has tonemap active. The skybox reuses the same equirect
173
- * handle as the Skylight entity -- two independent components sharing the
174
- * same GPU resource (the internally-projected cubemap).
175
- *
176
- * `equirect` is resolved from a Vite pack-index GUID through the App-owned
177
- * AssetRegistry (`AssetRegistry.load(guid, 'equirect')`). The cubemap
178
- * projection is internal and driven by the render-system record arm; there
179
- * is no user upload call.
180
- *
181
- * `mode` is a numeric discriminator column (`f32`). Use
182
- * `SKYBOX_MODE_CUBEMAP` for the cubemap render path.
183
- *
184
- * `rotation` is an environment-space quaternion in `[x, y, z, w]` order.
185
- * It rotates the sampled cubemap without changing the camera or rebaking the
186
- * source equirectangular asset.
187
- *
188
- * @example Minimum spawn (defaults mode=0):
189
- * // Resolve the equirect payload through the App AssetRegistry.
190
- * world.spawn({ component: SkyboxBackground, data: { equirect: equirectHandle } });
191
- *
192
- * @example Single handle shared between Skylight (IBL) and SkyboxBackground:
193
- * const hdrRes = await assets.load(guid, 'equirect');
194
- * if (!hdrRes.ok) throw hdrRes.error;
195
- * world.spawn({ component: Skylight, data: { equirect: hdrRes.value } });
196
- * world.spawn({ component: SkyboxBackground, data: { equirect: hdrRes.value } });
197
- */
198
- export const SkyboxBackground = defineComponent('SkyboxBackground', {
199
- // The GPU skybox projection is render-owned presentation state; restore
200
- // keeps the portable mode/rotation controls and lets the owner re-resolve
201
- // the environment asset on the target world.
202
- equirect: { type: 'shared<EquirectAsset>', simulationTransient: true },
203
- mode: { type: 'f32', default: SKYBOX_MODE_CUBEMAP },
204
- rotation: { type: 'array<f32, 4>', default: new Float32Array([0, 0, 0, 1]) },
205
- });
@@ -59,7 +59,7 @@
59
59
  // 2. Register the sprite material referencing the atlas
60
60
  // `TextureAsset` with the initial frame's `region` rectangle (the
61
61
  // runtime tick system overrides this region per entity per frame).
62
- // 3. `world.spawn` an entity with a quad mesh reference +
62
+ // 3. `world.spawn` an entity with `MeshFilter(HANDLE_QUAD)` +
63
63
  // `MeshRenderer(spriteMaterial)` + `Instances(...)` plus this
64
64
  // `SpriteAnimation` (frameCount / frameDuration / regions /
65
65
  // playbackMode) and `SpriteRegionOverride { region }` (the tick
@@ -122,8 +122,7 @@ import { defineComponent } from '@forgeax/engine-ecs';
122
122
  * SpriteAnimation, SpriteRegionOverride, SPRITE_PLAYBACK_MODE_LOOP,
123
123
  * } from '@forgeax/engine-render/authoring';
124
124
  * import { Transform } from '@forgeax/engine-scene';
125
- * import { createPrimitiveMesh } from '@forgeax/engine-geometry';
126
- * const quadMesh = world.internSharedRef(createPrimitiveMesh('quad').unwrap());
125
+ * import { HANDLE_QUAD } from '@forgeax/engine-assets-runtime';
127
126
  *
128
127
  * // 4 frames packed in an atlas, each 64x64 inside a 256x64 row:
129
128
  * const regions = new Float32Array([
@@ -135,7 +134,7 @@ import { defineComponent } from '@forgeax/engine-ecs';
135
134
  * world.spawn(
136
135
  * { component: Transform, data: { pos: [0, 0, 0],
137
136
  * quat: [0, 0, 0, 1], scale: [1, 1, 1] } },
138
- * { component: MeshFilter, data: { assetHandle: quadMesh } },
137
+ * { component: MeshFilter, data: { assetHandle: HANDLE_QUAD } },
139
138
  * { component: MeshRenderer, data: { materials: [spriteMaterial] } },
140
139
  * { component: SpriteAnimation,
141
140
  * data: {
@@ -66,7 +66,7 @@
66
66
  // const regions = new Float32Array(N * 4);
67
67
  // // ... fill column-major mat4 columns + [uMin, vMin, uW, vH] per instance ...
68
68
  // world.spawn(
69
- // { component: MeshFilter, data: { assetHandle: quadMesh } },
69
+ // { component: MeshFilter, data: { assetHandle: HANDLE_QUAD } },
70
70
  // { component: MeshRenderer, data: { /* sprite-shaded MaterialAsset */ } },
71
71
  // { component: SpriteInstances, data: { transforms, regions } },
72
72
  // );
@@ -146,7 +146,7 @@ import { defineComponent } from '@forgeax/engine-ecs';
146
146
  * const regions = new Float32Array(10000 * 4);
147
147
  * // ... fill mat4 columns + [uMin, vMin, uW, vH] ...
148
148
  * world.spawn(
149
- * { component: MeshFilter, data: { assetHandle: quadMesh } },
149
+ * { component: MeshFilter, data: { assetHandle: HANDLE_QUAD } },
150
150
  * { component: MeshRenderer, data: { ... } },
151
151
  * { component: SpriteInstances, data: { transforms, regions } },
152
152
  * );
@@ -55,10 +55,16 @@ export const SPRITE_PLAYBACK_MODE_LOOP = 0 as const;
55
55
  /** Numeric encoding of the clamp playback mode (schema value for `playbackMode`). */
56
56
  export const SPRITE_PLAYBACK_MODE_CLAMP = 1 as const;
57
57
 
58
+ /** Grouped authoring values; the numeric ECS encoding stays owner-local. */
59
+ export const SpritePlayback = Object.freeze({
60
+ loop: SPRITE_PLAYBACK_MODE_LOOP,
61
+ clamp: SPRITE_PLAYBACK_MODE_CLAMP,
62
+ } as const);
63
+
58
64
  /**
59
65
  * Map a `SpriteAnimation.playbackMode` numeric column value to the closed
60
66
  * `SpritePlaybackMode` string-literal union. The defensive fallback mirrors
61
- * `cameraProjectionFromF32` / `tonemapFromF32` precedent — any value other
67
+ * `cameraProjectionFromF32` / `tonemapFromF32` precedent — a value other
62
68
  * than `SPRITE_PLAYBACK_MODE_CLAMP` (1) maps to `'loop'`, so stale or
63
69
  * uninitialised entities surface a predictable playback shape through the
64
70
  * tick-system query (rather than throwing or returning `undefined`).
@@ -85,13 +85,12 @@ import { defineComponent } from '@forgeax/engine-ecs';
85
85
  * import { MeshFilter, MeshRenderer } from '@forgeax/engine-render';
86
86
  * import { SpriteRegionOverride } from '@forgeax/engine-render/authoring';
87
87
  * import { Transform } from '@forgeax/engine-scene';
88
- * import { createPrimitiveMesh } from '@forgeax/engine-geometry';
89
- * const quadMesh = world.internSharedRef(createPrimitiveMesh('quad').unwrap());
88
+ * import { HANDLE_QUAD } from '@forgeax/engine-assets-runtime';
90
89
  *
91
90
  * world.spawn(
92
91
  * { component: Transform, data: { pos: [0, 0, 0],
93
92
  * quat: [0, 0, 0, 1], scale: [1, 1, 1] } },
94
- * { component: MeshFilter, data: { assetHandle: quadMesh } },
93
+ * { component: MeshFilter, data: { assetHandle: HANDLE_QUAD } },
95
94
  * { component: MeshRenderer, data: { materials: [spriteMaterial] } },
96
95
  * { component: SpriteRegionOverride,
97
96
  * data: { region: new Float32Array([0.5, 0, 0.5, 1]) } },
@@ -56,6 +56,12 @@ import type { Result } from '@forgeax/engine-types';
56
56
  */
57
57
  export type SortScope = 'layer' | 'per-cell';
58
58
 
59
+ /** Compact authoring values for the stored u8 sort-scope field. */
60
+ export const TilemapSort = Object.freeze({
61
+ layer: 0 as const,
62
+ perCell: 1 as const,
63
+ });
64
+
59
65
  /**
60
66
  * Bridge: `SortScope` -> on-disk u8. SSOT for the encoding (`'layer'` -> 0,
61
67
  * `'per-cell'` -> 1). The compile-time exhaustive switch guards against
@@ -65,9 +71,9 @@ export type SortScope = 'layer' | 'per-cell';
65
71
  export function encodeSortScope(scope: SortScope): 0 | 1 {
66
72
  switch (scope) {
67
73
  case 'layer':
68
- return 0;
74
+ return TilemapSort.layer;
69
75
  case 'per-cell':
70
- return 1;
76
+ return TilemapSort.perCell;
71
77
  }
72
78
  }
73
79
 
@@ -1,4 +1,67 @@
1
- export {
2
- type BundlerOptions,
3
- createRenderer as constructRenderer,
4
- } from './renderer/renderer-factory';
1
+ import type { AssetRegistry } from '@forgeax/engine-assets-runtime';
2
+ import type { RhiBackendPack } from './assembly/backend-contract';
3
+ import type { BundlerOptions } from './assembly/factory';
4
+ import { createRenderer, exposeRenderer } from './assembly/factory';
5
+ import type {
6
+ RendererHostImplementation,
7
+ RendererLegacyHostAdapter,
8
+ } from './assembly/host-contract';
9
+ import { type RenderError, RendererContractFailureError } from './errors/render';
10
+ import type { Renderer, RendererOptions, RenderResult } from './render-contract';
11
+
12
+ export type {
13
+ EngineEnvironmentErrorDetail,
14
+ RhiBackendInstrumentation,
15
+ RhiBackendPack,
16
+ } from './assembly/backend-contract';
17
+ export { EngineEnvironmentError } from './assembly/backend-contract';
18
+ export type { RendererLegacyHostAdapter } from './assembly/host-contract';
19
+ export type { BundlerOptions };
20
+
21
+ export type RendererFeatureAssemblyHost = Pick<
22
+ RendererLegacyHostAdapter,
23
+ 'installRenderFeature' | 'uninstallRenderFeature'
24
+ >;
25
+
26
+ export interface RendererHostAssembly {
27
+ readonly renderer: Renderer;
28
+ readonly debugDrawHost: RendererHostImplementation;
29
+ readonly featureHost: RendererFeatureAssemblyHost;
30
+ readonly assets: AssetRegistry;
31
+ }
32
+
33
+ export async function constructRendererHost(
34
+ canvas: unknown,
35
+ options?: RendererOptions,
36
+ bundler?: BundlerOptions,
37
+ backend?: RhiBackendPack,
38
+ ): Promise<RenderResult<RendererHostAssembly, RenderError>> {
39
+ try {
40
+ const implementation = await createRenderer(canvas, options, bundler, backend);
41
+ const ready = await implementation.initialization;
42
+ if (!ready.ok) {
43
+ return {
44
+ ok: false,
45
+ error: new RendererContractFailureError(
46
+ 'construct',
47
+ `${ready.error.code}: ${ready.error.hint}`,
48
+ ),
49
+ };
50
+ }
51
+ return {
52
+ ok: true,
53
+ value: {
54
+ renderer: exposeRenderer(implementation),
55
+ debugDrawHost: implementation,
56
+ featureHost: implementation,
57
+ assets: implementation.assetRegistry,
58
+ },
59
+ };
60
+ } catch (cause) {
61
+ const detail = cause instanceof Error ? cause.message : String(cause);
62
+ return {
63
+ ok: false,
64
+ error: new RendererContractFailureError('construct', detail),
65
+ };
66
+ }
67
+ }