@forgeax/engine-render 0.0.0-dev.8d955ade1c79
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.
- package/LICENSE +202 -0
- package/README.md +647 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/__tests__/authoring-path.unit.test.d.ts +2 -0
- package/dist/__tests__/authoring-path.unit.test.d.ts.map +1 -0
- package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts +2 -0
- package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts.map +1 -0
- package/dist/__tests__/callback-inference.test-d.d.ts +2 -0
- package/dist/__tests__/callback-inference.test-d.d.ts.map +1 -0
- package/dist/__tests__/cluster-binner.test.d.ts +2 -0
- package/dist/__tests__/cluster-binner.test.d.ts.map +1 -0
- package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/construct-renderer-identity.unit.test.d.ts +2 -0
- package/dist/__tests__/construct-renderer-identity.unit.test.d.ts.map +1 -0
- package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts +2 -0
- package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts.map +1 -0
- package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts +2 -0
- package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts.map +1 -0
- package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts +2 -0
- package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts.map +1 -0
- package/dist/__tests__/direct-light-snapshot.unit.test.d.ts +2 -0
- package/dist/__tests__/direct-light-snapshot.unit.test.d.ts.map +1 -0
- package/dist/__tests__/factory-contract.integration.test.d.ts +2 -0
- package/dist/__tests__/factory-contract.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/frame-observation.contract.test.d.ts +2 -0
- package/dist/__tests__/frame-observation.contract.test.d.ts.map +1 -0
- package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts +2 -0
- package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts.map +1 -0
- package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts +2 -0
- package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts +6 -0
- package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-production.integration.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-production.integration.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts +18 -0
- package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view-reference.d.ts +15 -0
- package/dist/__tests__/gpu-driven-view-reference.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view.browser.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-view.browser.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view.dawn.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-view.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view.unit.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-view.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts +2 -0
- package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts +7 -0
- package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts +2 -0
- package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts +2 -0
- package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene-schema.unit.test.d.ts +2 -0
- package/dist/__tests__/gpu-scene-schema.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene.dawn.test.d.ts +2 -0
- package/dist/__tests__/gpu-scene.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene.unit.test.d.ts +2 -0
- package/dist/__tests__/gpu-scene.unit.test.d.ts.map +1 -0
- package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts +2 -0
- package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts.map +1 -0
- package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts +2 -0
- package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts.map +1 -0
- package/dist/__tests__/injection-kind-owner.test-d.d.ts +2 -0
- package/dist/__tests__/injection-kind-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts +2 -0
- package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/light-buffer-layout.unit.test.d.ts +2 -0
- package/dist/__tests__/light-buffer-layout.unit.test.d.ts.map +1 -0
- package/dist/__tests__/material-contract-inventory.unit.test.d.ts +2 -0
- package/dist/__tests__/material-contract-inventory.unit.test.d.ts.map +1 -0
- package/dist/__tests__/material-cooked-projection.unit.test.d.ts +2 -0
- package/dist/__tests__/material-cooked-projection.unit.test.d.ts.map +1 -0
- package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts +2 -0
- package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts.map +1 -0
- package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts +2 -0
- package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts.map +1 -0
- package/dist/__tests__/material-stride-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/material-stride-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/mesh-material-bindings.unit.test.d.ts +2 -0
- package/dist/__tests__/mesh-material-bindings.unit.test.d.ts.map +1 -0
- package/dist/__tests__/mesh-stride-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/mesh-stride-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts +2 -0
- package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts +2 -0
- package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts.map +1 -0
- package/dist/__tests__/morph-feature-plan.unit.test.d.ts +2 -0
- package/dist/__tests__/morph-feature-plan.unit.test.d.ts.map +1 -0
- package/dist/__tests__/morph-visual-evidence.integration.test.d.ts +2 -0
- package/dist/__tests__/morph-visual-evidence.integration.test.d.ts.map +1 -0
- package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts +2 -0
- package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts +2 -0
- package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-store.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-store.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-default-off.test.d.ts +2 -0
- package/dist/__tests__/profiler-default-off.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-phase-catalog.test.d.ts +2 -0
- package/dist/__tests__/profiler-phase-catalog.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-phase-integration.test.d.ts +2 -0
- package/dist/__tests__/profiler-phase-integration.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-phase-token.test.d.ts +2 -0
- package/dist/__tests__/profiler-phase-token.test.d.ts.map +1 -0
- package/dist/__tests__/public-surface.test-d.d.ts +2 -0
- package/dist/__tests__/public-surface.test-d.d.ts.map +1 -0
- package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts +2 -0
- package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-error-code-owner.test-d.d.ts +2 -0
- package/dist/__tests__/render-error-code-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-error-detail-ssot.test-d.d.ts +2 -0
- package/dist/__tests__/render-error-detail-ssot.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-error-exhaustive.test-d.d.ts +2 -0
- package/dist/__tests__/render-error-exhaustive.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-assembly.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-assembly.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-context.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-context.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-contract.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-contract.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-docs.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-docs.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-errors.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-errors.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts +2 -0
- package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-plan.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-plan.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-plan.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-plan.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-public-surface.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-public-surface.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-retry.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-retry.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-scheduling.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-scheduling.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-visibility-context.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-visibility-context.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-zero-work.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-zero-work.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-compute-raster-gpu.d.ts +7 -0
- package/dist/__tests__/render-graph-compute-raster-gpu.d.ts.map +1 -0
- package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts +2 -0
- package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts +2 -0
- package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-hzb-gpu.d.ts +7 -0
- package/dist/__tests__/render-graph-hzb-gpu.d.ts.map +1 -0
- package/dist/__tests__/render-graph-hzb.browser.test.d.ts +2 -0
- package/dist/__tests__/render-graph-hzb.browser.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-hzb.dawn.test.d.ts +2 -0
- package/dist/__tests__/render-graph-hzb.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-primitives.unit.test.d.ts +2 -0
- package/dist/__tests__/render-graph-primitives.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts +12 -0
- package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts.map +1 -0
- package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts +2 -0
- package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts +2 -0
- package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/render-scene-projection.unit.test.d.ts +2 -0
- package/dist/__tests__/render-scene-projection.unit.test.d.ts.map +1 -0
- package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts +2 -0
- package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts.map +1 -0
- package/dist/__tests__/renderer-lifecycle.integration.test.d.ts +2 -0
- package/dist/__tests__/renderer-lifecycle.integration.test.d.ts.map +1 -0
- package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts +2 -0
- package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts.map +1 -0
- package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts +2 -0
- package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts.map +1 -0
- package/dist/__tests__/shader-stage-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/shader-stage-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/ssao-config.unit.test.d.ts +2 -0
- package/dist/__tests__/ssao-config.unit.test.d.ts.map +1 -0
- package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts +2 -0
- package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts.map +1 -0
- package/dist/__tests__/standard-descriptors.test-d.d.ts +2 -0
- package/dist/__tests__/standard-descriptors.test-d.d.ts.map +1 -0
- package/dist/__tests__/standard-pipeline.dawn.test.d.ts +2 -0
- package/dist/__tests__/standard-pipeline.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/standard-pipeline.integration.test.d.ts +2 -0
- package/dist/__tests__/standard-pipeline.integration.test.d.ts.map +1 -0
- package/dist/__tests__/standard-profile-oracle.unit.test.d.ts +2 -0
- package/dist/__tests__/standard-profile-oracle.unit.test.d.ts.map +1 -0
- package/dist/__tests__/surface-configuration.unit.test.d.ts +2 -0
- package/dist/__tests__/surface-configuration.unit.test.d.ts.map +1 -0
- package/dist/__tests__/texture-usage-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/texture-usage-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts +2 -0
- package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts.map +1 -0
- package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts +2 -0
- package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts.map +1 -0
- package/dist/__tests__/urp-pipeline.unit.test.d.ts +2 -0
- package/dist/__tests__/urp-pipeline.unit.test.d.ts.map +1 -0
- package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts +2 -0
- package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts.map +1 -0
- package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts +2 -0
- package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-diagnostics.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-diagnostics.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-extract.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-extract.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-extract.perf.test.d.ts +2 -0
- package/dist/__tests__/visibility-extract.perf.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-hidden-report.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-hidden-report.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-instances.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-instances.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-multi-world.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-multi-world.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-public-surface.test-d.d.ts +2 -0
- package/dist/__tests__/visibility-public-surface.test-d.d.ts.map +1 -0
- package/dist/__tests__/visibility-resolver.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-resolver.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts.map +1 -0
- package/dist/__tests__/vocabulary.unit.test.d.ts +2 -0
- package/dist/__tests__/vocabulary.unit.test.d.ts.map +1 -0
- package/dist/assembly/backend-contract.d.ts +37 -0
- package/dist/assembly/backend-contract.d.ts.map +1 -0
- package/dist/assembly/factory.d.ts +207 -0
- package/dist/assembly/factory.d.ts.map +1 -0
- package/dist/assembly/host-contract.d.ts +84 -0
- package/dist/assembly/host-contract.d.ts.map +1 -0
- package/dist/assembly/material/assembly.d.ts +21 -0
- package/dist/assembly/material/assembly.d.ts.map +1 -0
- package/dist/assembly/material/pipeline-projection.d.ts +30 -0
- package/dist/assembly/material/pipeline-projection.d.ts.map +1 -0
- package/dist/assets/asset-decoders.d.ts +5 -0
- package/dist/assets/asset-decoders.d.ts.map +1 -0
- package/dist/assets/render-asset-port.d.ts +17 -0
- package/dist/assets/render-asset-port.d.ts.map +1 -0
- package/dist/assets/resolve-render-asset.d.ts +6 -0
- package/dist/assets/resolve-render-asset.d.ts.map +1 -0
- package/dist/authoring.d.ts +12 -0
- package/dist/authoring.d.ts.map +1 -0
- package/dist/authoring.mjs +27 -0
- package/dist/authoring.mjs.map +1 -0
- package/dist/chunk-CQXZC5XI.mjs +182 -0
- package/dist/chunk-CQXZC5XI.mjs.map +1 -0
- package/dist/chunk-HCOGPHKS.mjs +93 -0
- package/dist/chunk-HCOGPHKS.mjs.map +1 -0
- package/dist/chunk-YEJIUW7D.mjs +1152 -0
- package/dist/chunk-YEJIUW7D.mjs.map +1 -0
- package/dist/cluster-binner.d.ts +152 -0
- package/dist/cluster-binner.d.ts.map +1 -0
- package/dist/components/__tests__/points-lines-admission.unit.test.d.ts +2 -0
- package/dist/components/__tests__/points-lines-admission.unit.test.d.ts.map +1 -0
- package/dist/components/__tests__/points-lines-schema.unit.test.d.ts +2 -0
- package/dist/components/__tests__/points-lines-schema.unit.test.d.ts.map +1 -0
- package/dist/components/__tests__/schema-contract.unit.test.d.ts +2 -0
- package/dist/components/__tests__/schema-contract.unit.test.d.ts.map +1 -0
- package/dist/components/__tests__/schema-parity.unit.test.d.ts +2 -0
- package/dist/components/__tests__/schema-parity.unit.test.d.ts.map +1 -0
- package/dist/components/__tests__/visibility-schema.unit.test.d.ts +2 -0
- package/dist/components/__tests__/visibility-schema.unit.test.d.ts.map +1 -0
- package/dist/components/camera.d.ts +311 -0
- package/dist/components/camera.d.ts.map +1 -0
- package/dist/components/directional-light.d.ts +76 -0
- package/dist/components/directional-light.d.ts.map +1 -0
- package/dist/components/glyph-text.d.ts +26 -0
- package/dist/components/glyph-text.d.ts.map +1 -0
- package/dist/components/index.d.ts +24 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/instances.d.ts +41 -0
- package/dist/components/instances.d.ts.map +1 -0
- package/dist/components/layer.d.ts +34 -0
- package/dist/components/layer.d.ts.map +1 -0
- package/dist/components/light-helpers.d.ts +53 -0
- package/dist/components/light-helpers.d.ts.map +1 -0
- package/dist/components/lines.d.ts +5 -0
- package/dist/components/lines.d.ts.map +1 -0
- package/dist/components/mesh-filter.d.ts +24 -0
- package/dist/components/mesh-filter.d.ts.map +1 -0
- package/dist/components/mesh-renderer.d.ts +33 -0
- package/dist/components/mesh-renderer.d.ts.map +1 -0
- package/dist/components/point-light-shadow.d.ts +27 -0
- package/dist/components/point-light-shadow.d.ts.map +1 -0
- package/dist/components/point-light.d.ts +35 -0
- package/dist/components/point-light.d.ts.map +1 -0
- package/dist/components/points.d.ts +15 -0
- package/dist/components/points.d.ts.map +1 -0
- package/dist/components/post-process-params.d.ts +5 -0
- package/dist/components/post-process-params.d.ts.map +1 -0
- package/dist/components/scene-instance.d.ts +140 -0
- package/dist/components/scene-instance.d.ts.map +1 -0
- package/dist/components/skybox-background.d.ts +56 -0
- package/dist/components/skybox-background.d.ts.map +1 -0
- package/dist/components/skylight.d.ts +55 -0
- package/dist/components/skylight.d.ts.map +1 -0
- package/dist/components/sort-key.d.ts +44 -0
- package/dist/components/sort-key.d.ts.map +1 -0
- package/dist/components/spot-light.d.ts +81 -0
- package/dist/components/spot-light.d.ts.map +1 -0
- package/dist/components/sprite-animation.d.ts +74 -0
- package/dist/components/sprite-animation.d.ts.map +1 -0
- package/dist/components/sprite-instances.d.ts +51 -0
- package/dist/components/sprite-instances.d.ts.map +1 -0
- package/dist/components/sprite-playback-mode.d.ts +42 -0
- package/dist/components/sprite-playback-mode.d.ts.map +1 -0
- package/dist/components/sprite-region-override.d.ts +46 -0
- package/dist/components/sprite-region-override.d.ts.map +1 -0
- package/dist/components/tile-layer.d.ts +106 -0
- package/dist/components/tile-layer.d.ts.map +1 -0
- package/dist/components/tilemap.d.ts +25 -0
- package/dist/components/tilemap.d.ts.map +1 -0
- package/dist/components/visibility.d.ts +22 -0
- package/dist/components/visibility.d.ts.map +1 -0
- package/dist/construct-renderer.d.ts +19 -0
- package/dist/construct-renderer.d.ts.map +1 -0
- package/dist/construct-renderer.mjs +27462 -0
- package/dist/construct-renderer.mjs.map +1 -0
- package/dist/debug-draw-glue.d.ts +5 -0
- package/dist/debug-draw-glue.d.ts.map +1 -0
- package/dist/device/device-scope.d.ts +83 -0
- package/dist/device/device-scope.d.ts.map +1 -0
- package/dist/device/gpu-residency.d.ts +337 -0
- package/dist/device/gpu-residency.d.ts.map +1 -0
- package/dist/device/resource-types.d.ts +8 -0
- package/dist/device/resource-types.d.ts.map +1 -0
- package/dist/engine-metrics.d.ts +23 -0
- package/dist/engine-metrics.d.ts.map +1 -0
- package/dist/errors/ecs-validation.d.ts +3 -0
- package/dist/errors/ecs-validation.d.ts.map +1 -0
- package/dist/errors/index.d.ts +4 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/recover.d.ts +105 -0
- package/dist/errors/recover.d.ts.map +1 -0
- package/dist/errors/render.d.ts +705 -0
- package/dist/errors/render.d.ts.map +1 -0
- package/dist/extract/visibility.d.ts +26 -0
- package/dist/extract/visibility.d.ts.map +1 -0
- package/dist/features/fullscreen.d.ts +19 -0
- package/dist/features/fullscreen.d.ts.map +1 -0
- package/dist/features/host.d.ts +106 -0
- package/dist/features/host.d.ts.map +1 -0
- package/dist/features/morph/morph-feature.d.ts +79 -0
- package/dist/features/morph/morph-feature.d.ts.map +1 -0
- package/dist/features/plan.d.ts +182 -0
- package/dist/features/plan.d.ts.map +1 -0
- package/dist/features/prepared-gpu-work.d.ts +117 -0
- package/dist/features/prepared-gpu-work.d.ts.map +1 -0
- package/dist/features/prepared-graphics-store.d.ts +66 -0
- package/dist/features/prepared-graphics-store.d.ts.map +1 -0
- package/dist/features/prepared-graphics.d.ts +215 -0
- package/dist/features/prepared-graphics.d.ts.map +1 -0
- package/dist/features/render-graph-compute.d.ts +13 -0
- package/dist/features/render-graph-compute.d.ts.map +1 -0
- package/dist/features/render-graph-contribution.d.ts +12 -0
- package/dist/features/render-graph-contribution.d.ts.map +1 -0
- package/dist/features/render-graph-raster.d.ts +38 -0
- package/dist/features/render-graph-raster.d.ts.map +1 -0
- package/dist/features/render-graph-resources.d.ts +11 -0
- package/dist/features/render-graph-resources.d.ts.map +1 -0
- package/dist/features/targets.d.ts +32 -0
- package/dist/features/targets.d.ts.map +1 -0
- package/dist/features/types.d.ts +68 -0
- package/dist/features/types.d.ts.map +1 -0
- package/dist/features/vocabulary.d.ts +14 -0
- package/dist/features/vocabulary.d.ts.map +1 -0
- package/dist/fullscreen-post-process-pass.d.ts +157 -0
- package/dist/fullscreen-post-process-pass.d.ts.map +1 -0
- package/dist/glyph-text-layout-system.d.ts +19 -0
- package/dist/glyph-text-layout-system.d.ts.map +1 -0
- package/dist/gpu-driven/batch-topology.d.ts +55 -0
- package/dist/gpu-driven/batch-topology.d.ts.map +1 -0
- package/dist/gpu-driven/production-raster.d.ts +51 -0
- package/dist/gpu-driven/production-raster.d.ts.map +1 -0
- package/dist/gpu-driven/view-gpu.d.ts +85 -0
- package/dist/gpu-driven/view-gpu.d.ts.map +1 -0
- package/dist/gpu-resource.d.ts +73 -0
- package/dist/gpu-resource.d.ts.map +1 -0
- package/dist/gpu-scene-schema.d.ts +78 -0
- package/dist/gpu-scene-schema.d.ts.map +1 -0
- package/dist/gpu-scene.d.ts +55 -0
- package/dist/gpu-scene.d.ts.map +1 -0
- package/dist/gpu-stage.d.ts +4 -0
- package/dist/gpu-stage.d.ts.map +1 -0
- package/dist/gpu-texture-usage.d.ts +6 -0
- package/dist/gpu-texture-usage.d.ts.map +1 -0
- package/dist/gpu-usage.d.ts +9 -0
- package/dist/gpu-usage.d.ts.map +1 -0
- package/dist/hdrp-buffers.d.ts +163 -0
- package/dist/hdrp-buffers.d.ts.map +1 -0
- package/dist/ibl/IblPipelineCache.d.ts +168 -0
- package/dist/ibl/IblPipelineCache.d.ts.map +1 -0
- package/dist/ibl/skylight-bind-group.d.ts +130 -0
- package/dist/ibl/skylight-bind-group.d.ts.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +169 -0
- package/dist/index.mjs.map +1 -0
- package/dist/inspection-types.d.ts +72 -0
- package/dist/inspection-types.d.ts.map +1 -0
- package/dist/instance-buffer-cache.d.ts +56 -0
- package/dist/instance-buffer-cache.d.ts.map +1 -0
- package/dist/internal.d.ts +2 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.mjs +3 -0
- package/dist/internal.mjs.map +1 -0
- package/dist/lifecycle.d.ts +62 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/light-buffer-layout.d.ts +164 -0
- package/dist/light-buffer-layout.d.ts.map +1 -0
- package/dist/materials.d.ts +47 -0
- package/dist/materials.d.ts.map +1 -0
- package/dist/mesh-material-bindings.d.ts +43 -0
- package/dist/mesh-material-bindings.d.ts.map +1 -0
- package/dist/pbr-pipeline.d.ts +301 -0
- package/dist/pbr-pipeline.d.ts.map +1 -0
- package/dist/pipeline/standard-forward-lane.d.ts +5 -0
- package/dist/pipeline/standard-forward-lane.d.ts.map +1 -0
- package/dist/pipeline/standard-pipeline.d.ts +31 -0
- package/dist/pipeline/standard-pipeline.d.ts.map +1 -0
- package/dist/pipeline/standard-profile.d.ts +40 -0
- package/dist/pipeline/standard-profile.d.ts.map +1 -0
- package/dist/pipeline-builder.d.ts +122 -0
- package/dist/pipeline-builder.d.ts.map +1 -0
- package/dist/pipeline-spec-types.d.ts +24 -0
- package/dist/pipeline-spec-types.d.ts.map +1 -0
- package/dist/pipeline-spec.d.ts +367 -0
- package/dist/pipeline-spec.d.ts.map +1 -0
- package/dist/plugin.d.ts +4 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/points-lines/__tests__/bounds.unit.test.d.ts +2 -0
- package/dist/points-lines/__tests__/bounds.unit.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts +2 -0
- package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts +2 -0
- package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/inspection.unit.test.d.ts +2 -0
- package/dist/points-lines/__tests__/inspection.unit.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts +2 -0
- package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/points-lines.bench.d.ts +2 -0
- package/dist/points-lines/__tests__/points-lines.bench.d.ts.map +1 -0
- package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts +2 -0
- package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/snapshot.unit.test.d.ts +2 -0
- package/dist/points-lines/__tests__/snapshot.unit.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts +2 -0
- package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts.map +1 -0
- package/dist/points-lines/admission.d.ts +36 -0
- package/dist/points-lines/admission.d.ts.map +1 -0
- package/dist/points-lines/bounds.d.ts +8 -0
- package/dist/points-lines/bounds.d.ts.map +1 -0
- package/dist/points-lines/expansion-cache.d.ts +28 -0
- package/dist/points-lines/expansion-cache.d.ts.map +1 -0
- package/dist/points-lines/inspection.d.ts +53 -0
- package/dist/points-lines/inspection.d.ts.map +1 -0
- package/dist/points-lines/prepare.d.ts +67 -0
- package/dist/points-lines/prepare.d.ts.map +1 -0
- package/dist/points-lines/record.d.ts +60 -0
- package/dist/points-lines/record.d.ts.map +1 -0
- package/dist/points-lines/snapshot.d.ts +49 -0
- package/dist/points-lines/snapshot.d.ts.map +1 -0
- package/dist/post-process-errors.d.ts +182 -0
- package/dist/post-process-errors.d.ts.map +1 -0
- package/dist/prepare/prepared-graphics-resolver.d.ts +59 -0
- package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -0
- package/dist/record/__tests__/material-bg-cache.unit.test.d.ts +2 -0
- package/dist/record/__tests__/material-bg-cache.unit.test.d.ts.map +1 -0
- package/dist/record/__tests__/material-slot-plan.unit.test.d.ts +2 -0
- package/dist/record/__tests__/material-slot-plan.unit.test.d.ts.map +1 -0
- package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts +2 -0
- package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts.map +1 -0
- package/dist/record/__tests__/video-texture-view.unit.test.d.ts +2 -0
- package/dist/record/__tests__/video-texture-view.unit.test.d.ts.map +1 -0
- package/dist/record/frame-lighting.d.ts +121 -0
- package/dist/record/frame-lighting.d.ts.map +1 -0
- package/dist/record/frame-snapshot.d.ts +429 -0
- package/dist/record/frame-snapshot.d.ts.map +1 -0
- package/dist/record/frame-targets.d.ts +20 -0
- package/dist/record/frame-targets.d.ts.map +1 -0
- package/dist/record/frame.d.ts +71 -0
- package/dist/record/frame.d.ts.map +1 -0
- package/dist/record/helpers.d.ts +102 -0
- package/dist/record/helpers.d.ts.map +1 -0
- package/dist/record/main-pass-geometry.d.ts +28 -0
- package/dist/record/main-pass-geometry.d.ts.map +1 -0
- package/dist/record/main-pass-material.d.ts +204 -0
- package/dist/record/main-pass-material.d.ts.map +1 -0
- package/dist/record/main-pass-sprite-draws.d.ts +43 -0
- package/dist/record/main-pass-sprite-draws.d.ts.map +1 -0
- package/dist/record/main-pass.d.ts +20 -0
- package/dist/record/main-pass.d.ts.map +1 -0
- package/dist/record/mesh-ssbo.d.ts +446 -0
- package/dist/record/mesh-ssbo.d.ts.map +1 -0
- package/dist/record/render-context.d.ts +252 -0
- package/dist/record/render-context.d.ts.map +1 -0
- package/dist/record/shadow-pass.d.ts +52 -0
- package/dist/record/shadow-pass.d.ts.map +1 -0
- package/dist/record/skybox-post-pass.d.ts +33 -0
- package/dist/record/skybox-post-pass.d.ts.map +1 -0
- package/dist/record/typed-frame-graph.d.ts +35 -0
- package/dist/record/typed-frame-graph.d.ts.map +1 -0
- package/dist/record/view-ubo.d.ts +45 -0
- package/dist/record/view-ubo.d.ts.map +1 -0
- package/dist/render-contract.d.ts +424 -0
- package/dist/render-contract.d.ts.map +1 -0
- package/dist/render-data.d.ts +143 -0
- package/dist/render-data.d.ts.map +1 -0
- package/dist/render-graph-primitives.d.ts +76 -0
- package/dist/render-graph-primitives.d.ts.map +1 -0
- package/dist/render-pipeline.d.ts +110 -0
- package/dist/render-pipeline.d.ts.map +1 -0
- package/dist/render-system-extract.d.ts +868 -0
- package/dist/render-system-extract.d.ts.map +1 -0
- package/dist/render-system.d.ts +125 -0
- package/dist/render-system.d.ts.map +1 -0
- package/dist/scene/render-scene-types.d.ts +61 -0
- package/dist/scene/render-scene-types.d.ts.map +1 -0
- package/dist/scene/render-scene.d.ts +112 -0
- package/dist/scene/render-scene.d.ts.map +1 -0
- package/dist/scene-instances/post-spawn-resolve-joints.d.ts +30 -0
- package/dist/scene-instances/post-spawn-resolve-joints.d.ts.map +1 -0
- package/dist/shadow-atlas.d.ts +117 -0
- package/dist/shadow-atlas.d.ts.map +1 -0
- package/dist/ssao-buffers.d.ts +50 -0
- package/dist/ssao-buffers.d.ts.map +1 -0
- package/dist/ssao-config.d.ts +28 -0
- package/dist/ssao-config.d.ts.map +1 -0
- package/dist/systems/active-camera.d.ts +53 -0
- package/dist/systems/active-camera.d.ts.map +1 -0
- package/dist/systems/pass-selector.d.ts +24 -0
- package/dist/systems/pass-selector.d.ts.map +1 -0
- package/dist/systems/skin-palette-allocator.d.ts +49 -0
- package/dist/systems/skin-palette-allocator.d.ts.map +1 -0
- package/dist/systems/skin-palette-types.d.ts +14 -0
- package/dist/systems/skin-palette-types.d.ts.map +1 -0
- package/dist/systems/transparent-sort-config.d.ts +112 -0
- package/dist/systems/transparent-sort-config.d.ts.map +1 -0
- package/dist/tilemap-chunk-extract-system.d.ts +143 -0
- package/dist/tilemap-chunk-extract-system.d.ts.map +1 -0
- package/dist/typed-render-graph-primitives.d.ts +57 -0
- package/dist/typed-render-graph-primitives.d.ts.map +1 -0
- package/dist/typed-shadow-passes.d.ts +11 -0
- package/dist/typed-shadow-passes.d.ts.map +1 -0
- package/package.json +94 -0
- package/src/__tests__/authoring-path.unit.test.ts +23 -0
- package/src/__tests__/backend-selection-rhi-capture.test-d.ts +21 -0
- package/src/__tests__/callback-inference.test-d.ts +8 -0
- package/src/__tests__/cluster-binner.test.ts +272 -0
- package/src/__tests__/cluster-grid-default-surface.unit.test.ts +20 -0
- package/src/__tests__/construct-renderer-identity.unit.test.ts +23 -0
- package/src/__tests__/device-scope-lifecycle.unit.test.ts +151 -0
- package/src/__tests__/device-scope-stale-matrix.unit.test.ts +42 -0
- package/src/__tests__/direct-extract-consumer-contract.test-d.ts +23 -0
- package/src/__tests__/direct-light-snapshot.unit.test.ts +61 -0
- package/src/__tests__/factory-contract.integration.test.ts +280 -0
- package/src/__tests__/fallback-row-stride-surface.unit.test.ts +15 -0
- package/src/__tests__/frame-observation.contract.test.ts +112 -0
- package/src/__tests__/fullscreen-feature-plan.unit.test.ts +32 -0
- package/src/__tests__/glyph-text-layout-recovery.unit.test.ts +167 -0
- package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +350 -0
- package/src/__tests__/gpu-driven-indirect-raster.browser.test.ts +12 -0
- package/src/__tests__/gpu-driven-indirect-raster.dawn.test.ts +16 -0
- package/src/__tests__/gpu-driven-production.integration.test.ts +436 -0
- package/src/__tests__/gpu-driven-scaling.unit.test.ts +87 -0
- package/src/__tests__/gpu-driven-view-gpu-evidence.ts +271 -0
- package/src/__tests__/gpu-driven-view-graph.integration.test.ts +290 -0
- package/src/__tests__/gpu-driven-view-reference.ts +111 -0
- package/src/__tests__/gpu-driven-view.browser.test.ts +30 -0
- package/src/__tests__/gpu-driven-view.dawn.test.ts +28 -0
- package/src/__tests__/gpu-driven-view.unit.test.ts +199 -0
- package/src/__tests__/gpu-resource-store-stride.unit.test.ts +59 -0
- package/src/__tests__/gpu-scene-render-graph-gpu.ts +308 -0
- package/src/__tests__/gpu-scene-render-graph.browser.test.ts +19 -0
- package/src/__tests__/gpu-scene-render-graph.dawn.test.ts +19 -0
- package/src/__tests__/gpu-scene-schema.unit.test.ts +16 -0
- package/src/__tests__/gpu-scene.dawn.test.ts +205 -0
- package/src/__tests__/gpu-scene.unit.test.ts +147 -0
- package/src/__tests__/ibl/face-uniforms.unit.test.ts +46 -0
- package/src/__tests__/infinite-grid-no-vertex-probe.unit.test.ts +92 -0
- package/src/__tests__/injection-kind-owner.test-d.ts +14 -0
- package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +728 -0
- package/src/__tests__/light-buffer-layout.unit.test.ts +40 -0
- package/src/__tests__/material-contract-inventory.unit.test.ts +24 -0
- package/src/__tests__/material-cooked-projection.unit.test.ts +150 -0
- package/src/__tests__/material-snapshot-mutation.integration.test.ts +53 -0
- package/src/__tests__/material-static-dynamic-route.unit.test.ts +94 -0
- package/src/__tests__/material-stride-surface.unit.test.ts +32 -0
- package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +106 -0
- package/src/__tests__/mesh-material-bindings.unit.test.ts +89 -0
- package/src/__tests__/mesh-stride-surface.unit.test.ts +16 -0
- package/src/__tests__/morph-culling-reentry.dawn.test.ts +157 -0
- package/src/__tests__/morph-feature-gpu-work.integration.test.ts +80 -0
- package/src/__tests__/morph-feature-plan.unit.test.ts +53 -0
- package/src/__tests__/morph-visual-evidence.integration.test.ts +80 -0
- package/src/__tests__/nineslice-handle-surface.unit.test.ts +19 -0
- package/src/__tests__/post-process-error-policy-owner.unit.test.ts +201 -0
- package/src/__tests__/prepared-buffer-kind-owner.test-d.ts +29 -0
- package/src/__tests__/prepared-graphics-capability.unit.test.ts +65 -0
- package/src/__tests__/prepared-graphics-generation.unit.test.ts +161 -0
- package/src/__tests__/prepared-graphics-lifecycle.unit.test.ts +138 -0
- package/src/__tests__/prepared-graphics-pipeline-warmup.unit.test.ts +29 -0
- package/src/__tests__/prepared-graphics-resolver.unit.test.ts +285 -0
- package/src/__tests__/prepared-graphics-snapshot.unit.test.ts +105 -0
- package/src/__tests__/prepared-graphics-store.unit.test.ts +154 -0
- package/src/__tests__/prepared-graphics-validation.unit.test.ts +176 -0
- package/src/__tests__/profiler-default-off.test.ts +22 -0
- package/src/__tests__/profiler-phase-catalog.test.ts +66 -0
- package/src/__tests__/profiler-phase-integration.test.ts +62 -0
- package/src/__tests__/profiler-phase-token.test.ts +79 -0
- package/src/__tests__/public-surface.test-d.ts +94 -0
- package/src/__tests__/recover-error-policy-owner.unit.test.ts +107 -0
- package/src/__tests__/render-error-code-owner.test-d.ts +116 -0
- package/src/__tests__/render-error-detail-ssot.test-d.ts +139 -0
- package/src/__tests__/render-error-exhaustive.test-d.ts +110 -0
- package/src/__tests__/render-feature-assembly.test-d.ts +43 -0
- package/src/__tests__/render-feature-context.test-d.ts +57 -0
- package/src/__tests__/render-feature-contract.test-d.ts +49 -0
- package/src/__tests__/render-feature-diagnostics.unit.test.ts +149 -0
- package/src/__tests__/render-feature-docs.unit.test.ts +89 -0
- package/src/__tests__/render-feature-errors.unit.test.ts +47 -0
- package/src/__tests__/render-feature-gpu-work.integration.test.ts +316 -0
- package/src/__tests__/render-feature-plan.test-d.ts +161 -0
- package/src/__tests__/render-feature-plan.unit.test.ts +170 -0
- package/src/__tests__/render-feature-prepared-diagnostics.unit.test.ts +90 -0
- package/src/__tests__/render-feature-prepared-errors.test-d.ts +79 -0
- package/src/__tests__/render-feature-prepared-graphics-docs.unit.test.ts +80 -0
- package/src/__tests__/render-feature-prepared-graphics-isolation.unit.test.ts +72 -0
- package/src/__tests__/render-feature-prepared-graphics-negative.test-d.ts +36 -0
- package/src/__tests__/render-feature-prepared-graphics.test-d.ts +74 -0
- package/src/__tests__/render-feature-prepared-graphics.unit.test.ts +121 -0
- package/src/__tests__/render-feature-public-surface.test-d.ts +57 -0
- package/src/__tests__/render-feature-retry.unit.test.ts +87 -0
- package/src/__tests__/render-feature-scheduling.unit.test.ts +110 -0
- package/src/__tests__/render-feature-stage-failed-policy-owner.unit.test.ts +137 -0
- package/src/__tests__/render-feature-stage-fault-recovery.unit.test.ts +146 -0
- package/src/__tests__/render-feature-visibility-context.test-d.ts +33 -0
- package/src/__tests__/render-feature-visibility-context.unit.test.ts +37 -0
- package/src/__tests__/render-feature-zero-work.unit.test.ts +76 -0
- package/src/__tests__/render-graph-compute-raster-gpu.ts +342 -0
- package/src/__tests__/render-graph-compute-raster.browser.test.ts +16 -0
- package/src/__tests__/render-graph-compute-raster.dawn.test.ts +22 -0
- package/src/__tests__/render-graph-hzb-gpu.ts +239 -0
- package/src/__tests__/render-graph-hzb.browser.test.ts +16 -0
- package/src/__tests__/render-graph-hzb.dawn.test.ts +23 -0
- package/src/__tests__/render-graph-primitives.unit.test.ts +22 -0
- package/src/__tests__/render-graph-storage-indirect-gpu.ts +162 -0
- package/src/__tests__/render-graph-storage-indirect.browser.test.ts +21 -0
- package/src/__tests__/render-graph-storage-indirect.dawn.test.ts +28 -0
- package/src/__tests__/render-scene-projection.unit.test.ts +168 -0
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +121 -0
- package/src/__tests__/renderer-lifecycle.integration.test.ts +58 -0
- package/src/__tests__/rhi-backend-package-boundary.unit.test.ts +11 -0
- package/src/__tests__/scriptable-pack-consumer.test-d.ts +14 -0
- package/src/__tests__/shader-stage-surface.unit.test.ts +43 -0
- package/src/__tests__/ssao-config.unit.test.ts +36 -0
- package/src/__tests__/ssao-kernel-surface.unit.test.ts +14 -0
- package/src/__tests__/standard-clustered-pipeline.unit.test.ts +28 -0
- package/src/__tests__/standard-descriptors.test-d.ts +22 -0
- package/src/__tests__/standard-pipeline.dawn.test.ts +61 -0
- package/src/__tests__/standard-pipeline.integration.test.ts +124 -0
- package/src/__tests__/standard-profile-oracle.unit.test.ts +62 -0
- package/src/__tests__/surface-configuration.unit.test.ts +91 -0
- package/src/__tests__/texture-usage-surface.unit.test.ts +58 -0
- package/src/__tests__/typed-pipeline-topology.unit.test.ts +223 -0
- package/src/__tests__/urp-pipeline-targets.unit.test.ts +42 -0
- package/src/__tests__/urp-pipeline.unit.test.ts +14 -0
- package/src/__tests__/vertex-color-pipeline.unit.test.ts +132 -0
- package/src/__tests__/vertex-layout-consumer.unit.test.ts +25 -0
- package/src/__tests__/visibility-diagnostics.integration.test.ts +62 -0
- package/src/__tests__/visibility-extract.integration.test.ts +98 -0
- package/src/__tests__/visibility-extract.perf.test.ts +130 -0
- package/src/__tests__/visibility-feature-dedup.integration.test.ts +55 -0
- package/src/__tests__/visibility-hidden-report.unit.test.ts +36 -0
- package/src/__tests__/visibility-instances.integration.test.ts +46 -0
- package/src/__tests__/visibility-multi-world.integration.test.ts +86 -0
- package/src/__tests__/visibility-producer-matrix.integration.test.ts +168 -0
- package/src/__tests__/visibility-producer-matrix.unit.test.ts +96 -0
- package/src/__tests__/visibility-public-surface.test-d.ts +27 -0
- package/src/__tests__/visibility-resolver.unit.test.ts +85 -0
- package/src/__tests__/visibility-resource-short-circuit.unit.test.ts +80 -0
- package/src/__tests__/visibility-snapshot-contract.unit.test.ts +60 -0
- package/src/__tests__/vocabulary.unit.test.ts +21 -0
- package/src/assembly/backend-contract.ts +57 -0
- package/src/assembly/factory.ts +8130 -0
- package/src/assembly/host-contract.ts +101 -0
- package/src/assembly/material/assembly.ts +48 -0
- package/src/assembly/material/pipeline-projection.ts +63 -0
- package/src/assets/asset-decoders.ts +158 -0
- package/src/assets/render-asset-port.ts +44 -0
- package/src/assets/resolve-render-asset.ts +13 -0
- package/src/authoring.ts +17 -0
- package/src/cluster-binner.ts +700 -0
- package/src/components/__tests__/points-lines-admission.unit.test.ts +219 -0
- package/src/components/__tests__/points-lines-schema.unit.test.ts +56 -0
- package/src/components/__tests__/schema-contract.unit.test.ts +10 -0
- package/src/components/__tests__/schema-parity.unit.test.ts +25 -0
- package/src/components/__tests__/visibility-schema.unit.test.ts +35 -0
- package/src/components/camera.ts +512 -0
- package/src/components/directional-light.ts +120 -0
- package/src/components/glyph-text.ts +64 -0
- package/src/components/index.ts +54 -0
- package/src/components/instances.ts +206 -0
- package/src/components/layer.ts +69 -0
- package/src/components/light-helpers.ts +188 -0
- package/src/components/lines.ts +18 -0
- package/src/components/mesh-filter.ts +60 -0
- package/src/components/mesh-renderer.ts +61 -0
- package/src/components/point-light-shadow.ts +43 -0
- package/src/components/point-light.ts +65 -0
- package/src/components/points.ts +40 -0
- package/src/components/post-process-params.ts +35 -0
- package/src/components/scene-instance.ts +193 -0
- package/src/components/skybox-background.ts +103 -0
- package/src/components/skylight.ts +97 -0
- package/src/components/sort-key.ts +75 -0
- package/src/components/spot-light.ts +124 -0
- package/src/components/sprite-animation.ts +168 -0
- package/src/components/sprite-instances.ts +179 -0
- package/src/components/sprite-playback-mode.ts +79 -0
- package/src/components/sprite-region-override.ts +105 -0
- package/src/components/tile-layer.ts +167 -0
- package/src/components/tilemap.ts +48 -0
- package/src/components/visibility.ts +53 -0
- package/src/construct-renderer.ts +67 -0
- package/src/debug-draw-glue.ts +48 -0
- package/src/device/device-scope.ts +306 -0
- package/src/device/gpu-residency.ts +1822 -0
- package/src/device/resource-types.ts +20 -0
- package/src/engine-metrics.ts +82 -0
- package/src/errors/ecs-validation.ts +16 -0
- package/src/errors/index.ts +3 -0
- package/src/errors/recover.ts +161 -0
- package/src/errors/render.ts +1284 -0
- package/src/extract/visibility.ts +120 -0
- package/src/features/fullscreen.ts +46 -0
- package/src/features/host.ts +1363 -0
- package/src/features/morph/morph-feature.ts +377 -0
- package/src/features/plan.ts +447 -0
- package/src/features/prepared-gpu-work.ts +959 -0
- package/src/features/prepared-graphics-store.ts +449 -0
- package/src/features/prepared-graphics.ts +420 -0
- package/src/features/render-graph-compute.ts +69 -0
- package/src/features/render-graph-contribution.ts +75 -0
- package/src/features/render-graph-raster.ts +332 -0
- package/src/features/render-graph-resources.ts +38 -0
- package/src/features/targets.ts +70 -0
- package/src/features/types.ts +103 -0
- package/src/features/vocabulary.ts +24 -0
- package/src/fullscreen-post-process-pass.ts +363 -0
- package/src/glyph-text-layout-system.ts +421 -0
- package/src/gpu-driven/batch-topology.ts +245 -0
- package/src/gpu-driven/production-raster.ts +695 -0
- package/src/gpu-driven/view-gpu.ts +703 -0
- package/src/gpu-resource.ts +159 -0
- package/src/gpu-scene-schema.ts +136 -0
- package/src/gpu-scene.ts +722 -0
- package/src/gpu-stage.ts +9 -0
- package/src/gpu-texture-usage.ts +12 -0
- package/src/gpu-usage.ts +14 -0
- package/src/hdrp-buffers.ts +480 -0
- package/src/ibl/IblPipelineCache.ts +1006 -0
- package/src/ibl/skylight-bind-group.ts +513 -0
- package/src/index.ts +129 -0
- package/src/inspection-types.ts +80 -0
- package/src/instance-buffer-cache.ts +95 -0
- package/src/internal.ts +9 -0
- package/src/lifecycle.ts +168 -0
- package/src/light-buffer-layout.ts +346 -0
- package/src/materials.ts +214 -0
- package/src/mesh-material-bindings.ts +103 -0
- package/src/pbr-pipeline.ts +1137 -0
- package/src/pipeline/standard-forward-lane.ts +229 -0
- package/src/pipeline/standard-pipeline.ts +555 -0
- package/src/pipeline/standard-profile.ts +65 -0
- package/src/pipeline-builder.ts +382 -0
- package/src/pipeline-spec-types.ts +28 -0
- package/src/pipeline-spec.ts +1231 -0
- package/src/plugin.ts +69 -0
- package/src/points-lines/__tests__/bounds.unit.test.ts +21 -0
- package/src/points-lines/__tests__/cache-recovery.unit.test.ts +157 -0
- package/src/points-lines/__tests__/inspection-lanes.integration.test.ts +146 -0
- package/src/points-lines/__tests__/inspection.unit.test.ts +173 -0
- package/src/points-lines/__tests__/lane-structural.integration.test.ts +122 -0
- package/src/points-lines/__tests__/points-lines.bench.ts +400 -0
- package/src/points-lines/__tests__/raster-lane.integration.test.ts +44 -0
- package/src/points-lines/__tests__/snapshot.unit.test.ts +101 -0
- package/src/points-lines/__tests__/view-ubo.unit.test.ts +73 -0
- package/src/points-lines/admission.ts +238 -0
- package/src/points-lines/bounds.ts +23 -0
- package/src/points-lines/expansion-cache.ts +215 -0
- package/src/points-lines/inspection.ts +97 -0
- package/src/points-lines/prepare.ts +177 -0
- package/src/points-lines/record.ts +125 -0
- package/src/points-lines/snapshot.ts +130 -0
- package/src/post-process-errors.ts +302 -0
- package/src/prepare/prepared-graphics-resolver.ts +456 -0
- package/src/record/__tests__/material-bg-cache.unit.test.ts +41 -0
- package/src/record/__tests__/material-slot-plan.unit.test.ts +44 -0
- package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +41 -0
- package/src/record/__tests__/video-texture-view.unit.test.ts +90 -0
- package/src/record/frame-lighting.ts +1074 -0
- package/src/record/frame-snapshot.ts +500 -0
- package/src/record/frame-targets.ts +137 -0
- package/src/record/frame.ts +1598 -0
- package/src/record/helpers.ts +284 -0
- package/src/record/main-pass-geometry.ts +1065 -0
- package/src/record/main-pass-material.ts +1043 -0
- package/src/record/main-pass-sprite-draws.ts +1137 -0
- package/src/record/main-pass.ts +610 -0
- package/src/record/mesh-ssbo.ts +885 -0
- package/src/record/render-context.ts +384 -0
- package/src/record/shadow-pass.ts +698 -0
- package/src/record/skybox-post-pass.ts +593 -0
- package/src/record/typed-frame-graph.ts +461 -0
- package/src/record/view-ubo.ts +222 -0
- package/src/render-contract.ts +582 -0
- package/src/render-data.ts +385 -0
- package/src/render-graph-primitives.ts +811 -0
- package/src/render-pipeline.ts +259 -0
- package/src/render-system-extract.ts +4585 -0
- package/src/render-system.ts +1933 -0
- package/src/scene/render-scene-types.ts +67 -0
- package/src/scene/render-scene.ts +1087 -0
- package/src/scene-instances/post-spawn-resolve-joints.ts +165 -0
- package/src/shadow-atlas.ts +244 -0
- package/src/ssao-buffers.ts +334 -0
- package/src/ssao-config.ts +61 -0
- package/src/systems/active-camera.ts +116 -0
- package/src/systems/pass-selector.ts +49 -0
- package/src/systems/skin-palette-allocator.ts +251 -0
- package/src/systems/skin-palette-types.ts +14 -0
- package/src/systems/transparent-sort-config.ts +233 -0
- package/src/tilemap-chunk-extract-system.ts +1290 -0
- package/src/typed-render-graph-primitives.ts +541 -0
- package/src/typed-shadow-passes.ts +165 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-entity instanced-draw transforms (ECS component).
|
|
3
|
+
*
|
|
4
|
+
* Carries a variable-length `array<f32>` of column-major mat4 instance
|
|
5
|
+
* transforms (16 f32 per instance, stride = 16; documented above and
|
|
6
|
+
* enforced at the RenderSystem extract entry, NOT at the ECS write paths).
|
|
7
|
+
*
|
|
8
|
+
* The runtime RenderSystem consumer materialises a fresh `Float32Array`
|
|
9
|
+
* snapshot on every `world.get(e, Instances).transforms` access (D-4
|
|
10
|
+
* no-cache), reads the live count from the snapshot's `length`, and
|
|
11
|
+
* uploads the bytes to a per-entity GPU storage buffer in the record stage
|
|
12
|
+
* (`render-system-record.ts`).
|
|
13
|
+
*
|
|
14
|
+
* @example Spawn an entity rendering 10000 instanced cubes:
|
|
15
|
+
* const transforms = new Float32Array(10000 * 16);
|
|
16
|
+
* // ... fill column-major mat4 columns ...
|
|
17
|
+
* world.spawn(
|
|
18
|
+
* { component: MeshFilter, data: { assetHandle: HANDLE_CUBE } },
|
|
19
|
+
* { component: MeshRenderer, data: { ... } },
|
|
20
|
+
* { component: Instances, data: { transforms } },
|
|
21
|
+
* );
|
|
22
|
+
*/
|
|
23
|
+
export declare const Instances: import("@forgeax/engine-ecs").Component<"Instances", {
|
|
24
|
+
readonly transforms: "array<f32>";
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Type-level hint for `data` at the `Instances` spawn site.
|
|
28
|
+
*
|
|
29
|
+
* The runtime ECS column shape for `array<f32>` accepts a `Float32Array`
|
|
30
|
+
* payload at spawn / set time (the bytes are copied into the BufferPool
|
|
31
|
+
* slot). The `transforms` field is documented as `Float32Array` here so
|
|
32
|
+
* AI-user IDE autocomplete picks up the typed-array shape.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* import type { InstancesData } from '@forgeax/engine-render';
|
|
36
|
+
* const data: InstancesData = { transforms: new Float32Array(N * 16) };
|
|
37
|
+
*/
|
|
38
|
+
export type InstancesData = {
|
|
39
|
+
readonly transforms: Float32Array;
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=instances.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instances.d.ts","sourceRoot":"","sources":["../../src/components/instances.ts"],"names":[],"mappings":"AAqKA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS;;EAEpB,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;CACnC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render-order layer index.
|
|
3
|
+
*
|
|
4
|
+
* Convention (non-binding; conveys intent, not enforced):
|
|
5
|
+
* - negative (e.g. -100): background layers (sky / parallax tiles).
|
|
6
|
+
* - 0: default game layer.
|
|
7
|
+
* - positive (e.g. 100): foreground layers (overlays, FX).
|
|
8
|
+
* - 1000+: UI / HUD.
|
|
9
|
+
*
|
|
10
|
+
* Signed i32 (two's complement, range \u00b12\u00b3\u00b9). Negatives round-trip
|
|
11
|
+
* through the spawn payload unchanged — no schema-layer mutate. i32 lives in
|
|
12
|
+
* the CPU sort path (transparent-sort.ts M-3 w23); no GPU-side stride
|
|
13
|
+
* compatibility risk.
|
|
14
|
+
*
|
|
15
|
+
* @example Minimal spawn (defaults to game layer 0):
|
|
16
|
+
* world.spawn({ component: Layer, data: {} }); // yields value=0
|
|
17
|
+
*
|
|
18
|
+
* @example Spawn 4 sprites across the conventional layer band:
|
|
19
|
+
* world.spawn({ component: Layer, data: { value: -100 } }); // background
|
|
20
|
+
* world.spawn({ component: Layer, data: { value: 0 } }); // default
|
|
21
|
+
* world.spawn({ component: Layer, data: { value: 100 } }); // foreground
|
|
22
|
+
* world.spawn({ component: Layer, data: { value: 1000 } }); // UI
|
|
23
|
+
*
|
|
24
|
+
* @example Spawn payload omitting Layer — the 4-layer fallback fills 0:
|
|
25
|
+
* const e = world.spawn(
|
|
26
|
+
* { component: Transform, data: { pos: [0, 0, 0],
|
|
27
|
+
* quat: [0, 0, 0, 1], scale: [1, 1, 1] } },
|
|
28
|
+
* );
|
|
29
|
+
* // Layer is not on the entity; query joins must check membership.
|
|
30
|
+
*/
|
|
31
|
+
export declare const Layer: import("@forgeax/engine-ecs").Component<"Layer", {
|
|
32
|
+
readonly value: "i32";
|
|
33
|
+
}>;
|
|
34
|
+
//# sourceMappingURL=layer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../../src/components/layer.ts"],"names":[],"mappings":"AAoCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,KAAK;;EAEhB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type Result } from '@forgeax/engine-types';
|
|
2
|
+
import { SpawnLightInvalidBoundsError } from '../errors/ecs-validation';
|
|
3
|
+
import { ShadowInvalidConfigError } from '../errors/render';
|
|
4
|
+
export type LightValidationError = SpawnLightInvalidBoundsError | ShadowInvalidConfigError;
|
|
5
|
+
export type LightValidationResult = Result<void, LightValidationError>;
|
|
6
|
+
/**
|
|
7
|
+
* Convert SpotLight cone half-angle (degrees) to its cosine.
|
|
8
|
+
*
|
|
9
|
+
* Single-shot deg -> rad -> cos conversion executed once per spot light
|
|
10
|
+
* entity per frame on the host; the GPU shader sees only `cosInner` /
|
|
11
|
+
* `cosOuter` so its falloff path stays branch-free
|
|
12
|
+
* (`smoothstep(cosOuter, cosInner, dot(L, -lightDir))`).
|
|
13
|
+
*
|
|
14
|
+
* @param deg cone half-angle in degrees (component schema field
|
|
15
|
+
* `innerConeDeg` / `outerConeDeg`)
|
|
16
|
+
* @returns `cos(deg * pi / 180)`
|
|
17
|
+
*/
|
|
18
|
+
export declare function degToCos(deg: number): number;
|
|
19
|
+
/**
|
|
20
|
+
* Convert PointLight / SpotLight `range` (meters) to `1 / range^2`.
|
|
21
|
+
*
|
|
22
|
+
* Three-branch fold supplies `1 / range^2` for the Three r184 finite-range
|
|
23
|
+
* window `clamp(1 - (d / range)^4, 0, 1)^2`:
|
|
24
|
+
*
|
|
25
|
+
* - `range = +Infinity` -> `0` (no truncation; quartic factor collapses
|
|
26
|
+
* to `1`, falloff reduces to plain `1 / d^2`).
|
|
27
|
+
* - `range = 0` -> `1e8` (host safety boundary; glTF `range: 0` is mapped
|
|
28
|
+
* to the no-cutoff `Infinity` value before this helper is called).
|
|
29
|
+
* - `range > 0` -> `1 / (range * range)` (standard quartic factor).
|
|
30
|
+
*
|
|
31
|
+
* @param range meters (component schema field `range`); `+Infinity` is the
|
|
32
|
+
* KHR no-truncation default
|
|
33
|
+
* @returns `1 / range^2` with three-branch NaN protection
|
|
34
|
+
*/
|
|
35
|
+
export declare function computeInvRangeSquared(range: number): number;
|
|
36
|
+
/**
|
|
37
|
+
* feat-20260709 M2 / D-1: shared zero/missing-direction validate for
|
|
38
|
+
* DirectionalLight + SpotLight. `direction` has no layer-2 default, so an
|
|
39
|
+
* omitted direction lands the array layer-3 all-zero -- the same illegal state
|
|
40
|
+
* as an explicit zero vector. SSOT for the rejection so the two lights cannot
|
|
41
|
+
* drift. Returns the structured error to reject, or `null` when the direction
|
|
42
|
+
* is a valid non-zero vector.
|
|
43
|
+
*/
|
|
44
|
+
export declare function validateDirection(componentName: 'DirectionalLight' | 'SpotLight', direction: ArrayLike<number> | undefined): SpawnLightInvalidBoundsError | null;
|
|
45
|
+
/** Validate directional-light payloads at the render owner boundary. */
|
|
46
|
+
export declare function validateDirectionalLightData(data: Readonly<Record<string, unknown>>): LightValidationResult;
|
|
47
|
+
/** Validate spot-light payloads at the render owner boundary. */
|
|
48
|
+
export declare function validateSpotLightData(data: Readonly<Record<string, unknown>>): LightValidationResult;
|
|
49
|
+
/** Validate point-light payloads at the render owner boundary. */
|
|
50
|
+
export declare function validatePointLightData(data: Readonly<Record<string, unknown>>): LightValidationResult;
|
|
51
|
+
/** Validate point-light shadow payloads at the render owner boundary. */
|
|
52
|
+
export declare function validatePointLightShadowData(data: Readonly<Record<string, unknown>>): LightValidationResult;
|
|
53
|
+
//# sourceMappingURL=light-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"light-helpers.d.ts","sourceRoot":"","sources":["../../src/components/light-helpers.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAAG,4BAA4B,GAAG,wBAAwB,CAAC;AAC3F,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;AAKvE;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,kBAAkB,GAAG,WAAW,EAC/C,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,GACvC,4BAA4B,GAAG,IAAI,CAUrC;AAED,wEAAwE;AACxE,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACtC,qBAAqB,CA+BvB;AAED,iEAAiE;AACjE,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACtC,qBAAqB,CAgCvB;AAED,kEAAkE;AAClE,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACtC,qBAAqB,CAMvB;AAED,yEAAyE;AACzE,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACtC,qBAAqB,CAavB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lines.d.ts","sourceRoot":"","sources":["../../src/components/lines.ts"],"names":[],"mappings":"AAEA,mDAAmD;AACnD,eAAO,MAAM,KAAK;;EAcjB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mesh filter (geometry asset reference).
|
|
3
|
+
*
|
|
4
|
+
* `assetHandle` carries a `Handle<'MeshAsset', 'shared'>` (u32-stored)
|
|
5
|
+
* pointing into `engine.assets: AssetRegistry`. Use the predefined
|
|
6
|
+
* constants `HANDLE_CUBE` / `HANDLE_TRIANGLE` exported from
|
|
7
|
+
* `@forgeax/engine-render`; custom-mesh registration is OOS in MVP (see
|
|
8
|
+
* feat-future-asset-system).
|
|
9
|
+
*
|
|
10
|
+
* Error path: if the handle is not registered at draw time, RenderSystem
|
|
11
|
+
* fires `Renderer.onError` with
|
|
12
|
+
* `RhiError({ code: 'asset-not-registered', detail: { assetHandle } })`
|
|
13
|
+
* and skips this entity (other entities continue rendering; charter
|
|
14
|
+
* proposition 9 graceful degradation).
|
|
15
|
+
*
|
|
16
|
+
* @example Spawn an entity referencing the builtin cube mesh:
|
|
17
|
+
* import { MeshFilter } from '@forgeax/engine-render';
|
|
18
|
+
* import { HANDLE_CUBE } from '@forgeax/engine-assets-runtime';
|
|
19
|
+
* world.spawn({ component: MeshFilter, data: { assetHandle: HANDLE_CUBE } });
|
|
20
|
+
*/
|
|
21
|
+
export declare const MeshFilter: import("@forgeax/engine-ecs").Component<"MeshFilter", {
|
|
22
|
+
readonly assetHandle: "shared<MeshAsset>";
|
|
23
|
+
}>;
|
|
24
|
+
//# sourceMappingURL=mesh-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesh-filter.d.ts","sourceRoot":"","sources":["../../src/components/mesh-filter.ts"],"names":[],"mappings":"AAqCA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,UAAU;;EAErB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mesh renderer (ECS component, multi-material array).
|
|
3
|
+
*
|
|
4
|
+
* Stores `materials: readonly Handle<'MaterialAsset','shared'>[]`
|
|
5
|
+
* (u32-stored array, indexed by MeshAsset.materialSlots). Submeshes point to
|
|
6
|
+
* those stable slots through `Submesh.materialSlot`. The asset's `passes[].shader`
|
|
7
|
+
* identity is the SSOT for which pipeline RenderSystem routes the entity
|
|
8
|
+
* to (record stage dispatches on `materialShaderId`).
|
|
9
|
+
*
|
|
10
|
+
* Defaults map carries `materials: []`: every slot inherits its Mesh-owned
|
|
11
|
+
* default, or the neutral engine material when that slot is intentionally
|
|
12
|
+
* defaultless.
|
|
13
|
+
*
|
|
14
|
+
* @example Spawn while inheriting every Mesh slot default:
|
|
15
|
+
* world.spawn({ component: MeshRenderer, data: {} });
|
|
16
|
+
*
|
|
17
|
+
* @example Spawn an unlit-targeted entity:
|
|
18
|
+
* import { MeshRenderer, Materials } from '@forgeax/engine-render';
|
|
19
|
+
* const matPayload = engine.assets.catalog(matGuid, Materials.unlit([1, 0, 0, 1])).value;
|
|
20
|
+
* const matHandle = world.allocSharedRef('MaterialAsset', matPayload);
|
|
21
|
+
* world.spawn({ component: MeshRenderer, data: { materials: [matHandle] } });
|
|
22
|
+
*
|
|
23
|
+
* @example Spawn a standard (PBR) entity:
|
|
24
|
+
* const matPayload = engine.assets.catalog(matGuid, Materials.standard({
|
|
25
|
+
* baseColor: [0.5, 0.5, 0.5, 1], metallic: 0, roughness: 0.4,
|
|
26
|
+
* })).value;
|
|
27
|
+
* const matHandle = world.allocSharedRef('MaterialAsset', matPayload);
|
|
28
|
+
* world.spawn({ component: MeshRenderer, data: { materials: [matHandle] } });
|
|
29
|
+
*/
|
|
30
|
+
export declare const MeshRenderer: import("@forgeax/engine-ecs").Component<"MeshRenderer", {
|
|
31
|
+
readonly materials: "array<shared<MaterialAsset>>";
|
|
32
|
+
}>;
|
|
33
|
+
//# sourceMappingURL=mesh-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesh-renderer.d.ts","sourceRoot":"","sources":["../../src/components/mesh-renderer.ts"],"names":[],"mappings":"AA6BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,YAAY;;EAEvB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Omnidirectional point-light shadow mapping parameters.
|
|
3
|
+
*
|
|
4
|
+
* The renderer may batch this component into a bounded atlas, but the ECS
|
|
5
|
+
* component remains a plain storage schema and carries no cardinality policy.
|
|
6
|
+
*
|
|
7
|
+
* @example Spawn a point light with default shadow config:
|
|
8
|
+
* world.spawn(
|
|
9
|
+
* { component: Transform, data: { pos: [0, 4, 0] } },
|
|
10
|
+
* { component: PointLight, data: { range: 25 } },
|
|
11
|
+
* { component: PointLightShadow, data: {} }, // 6 fields filled from defaults
|
|
12
|
+
* );
|
|
13
|
+
*
|
|
14
|
+
* @example Spawn with explicit map size and bias:
|
|
15
|
+
* world.spawn(
|
|
16
|
+
* { component: PointLightShadow, data: { mapSize: 1024, depthBias: 0.01 } },
|
|
17
|
+
* );
|
|
18
|
+
*/
|
|
19
|
+
export declare const PointLightShadow: import("@forgeax/engine-ecs").Component<"PointLightShadow", {
|
|
20
|
+
readonly mapSize: "f32";
|
|
21
|
+
readonly depthBias: "f32";
|
|
22
|
+
readonly normalBias: "f32";
|
|
23
|
+
readonly nearPlane: "f32";
|
|
24
|
+
readonly farPlane: "f32";
|
|
25
|
+
readonly pcfKernelSize: "f32";
|
|
26
|
+
}>;
|
|
27
|
+
//# sourceMappingURL=point-light-shadow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"point-light-shadow.d.ts","sourceRoot":"","sources":["../../src/components/point-light-shadow.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,gBAAgB;;;;;;;EAO3B,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Omnidirectional point light (KHR_lights_punctual `point` type).
|
|
3
|
+
*
|
|
4
|
+
* `position` source: the companion `Transform` component on the same entity.
|
|
5
|
+
* Spawn via `world.spawn({ component: Transform, data: ... }, { component: PointLight, data: ... })`
|
|
6
|
+
* so the render system extract path can join the two via the
|
|
7
|
+
* `[Transform, PointLight]` ECS query.
|
|
8
|
+
*
|
|
9
|
+
* `color` is linear-space rgb in `[0, 1]` per channel; `intensity` is candela;
|
|
10
|
+
* `range` is in meters and defaults to `10.0`
|
|
11
|
+
* (KHR convention; `+Infinity` is the KHR no-truncation value, retained
|
|
12
|
+
* for KHR_lights_punctual `range: 0` bridging via `light-helpers.ts`).
|
|
13
|
+
* The runtime window is `clamp(1 - (d / range)^4, 0, 1)^2`; its no-cutoff
|
|
14
|
+
* boundary uses inverse-square decay with the shader safety floor. Exposure is
|
|
15
|
+
* applied after lighting and never multiplied into intensity.
|
|
16
|
+
*
|
|
17
|
+
* @example Spawn a single point light at (5, 3, 5):
|
|
18
|
+
* world.spawn(
|
|
19
|
+
* { component: Transform, data: { pos: [5, 3, 5] } },
|
|
20
|
+
* { component: PointLight, data: { intensity: 8, range: 25 } },
|
|
21
|
+
* );
|
|
22
|
+
*
|
|
23
|
+
* @example Minimal spawn -- defaults give neutral white at full strength, range 10m:
|
|
24
|
+
* world.spawn(
|
|
25
|
+
* { component: Transform, data: { pos: [0, 1, 0] } },
|
|
26
|
+
* { component: PointLight, data: {} },
|
|
27
|
+
* );
|
|
28
|
+
* // resolves to color=[1, 1, 1], intensity=1, range=10.0.
|
|
29
|
+
*/
|
|
30
|
+
export declare const PointLight: import("@forgeax/engine-ecs").Component<"PointLight", {
|
|
31
|
+
readonly color: "array<f32, 3>";
|
|
32
|
+
readonly intensity: "f32";
|
|
33
|
+
readonly range: "f32";
|
|
34
|
+
}>;
|
|
35
|
+
//# sourceMappingURL=point-light.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"point-light.d.ts","sourceRoot":"","sources":["../../src/components/point-light.ts"],"names":[],"mappings":"AA6BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,UAAU;;;;EAMrB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Public point raster shapes backed by the ECS enum column. */
|
|
2
|
+
export type PointShape = keyof typeof PointShapeValue;
|
|
3
|
+
/** Numeric labels stored by the public Points shape enum field. */
|
|
4
|
+
export declare const PointShapeValue: Readonly<{
|
|
5
|
+
readonly square: 0;
|
|
6
|
+
readonly circle: 1;
|
|
7
|
+
}>;
|
|
8
|
+
/** Decode the Points shape column without treating an unknown value as valid. */
|
|
9
|
+
export declare function pointShapeFromU32(value: number): PointShape | undefined;
|
|
10
|
+
/** Screen-space point style. Geometry and material remain on their own owners. */
|
|
11
|
+
export declare const Points: import("@forgeax/engine-ecs").Component<"Points", {
|
|
12
|
+
readonly sizePx: "f32";
|
|
13
|
+
readonly shape: "enum";
|
|
14
|
+
}>;
|
|
15
|
+
//# sourceMappingURL=points.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"points.d.ts","sourceRoot":"","sources":["../../src/components/points.ts"],"names":[],"mappings":"AAEA,gEAAgE;AAChE,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,eAAe,CAAC;AAEtD,mEAAmE;AACnE,eAAO,MAAM,eAAe;;;EAGjB,CAAC;AAEZ,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CASvE;AAED,kFAAkF;AAClF,eAAO,MAAM,MAAM;;;EAelB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-process-params.d.ts","sourceRoot":"","sources":["../../src/components/post-process-params.ts"],"names":[],"mappings":"AAkCA,eAAO,MAAM,iBAAiB;;;EAA+C,CAAC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { type EntityHandle } from '@forgeax/engine-ecs';
|
|
2
|
+
import type { LocalEntityId, MountOverride } from '@forgeax/engine-types';
|
|
3
|
+
/**
|
|
4
|
+
* Per-component, per-field override record carried in `SceneInstanceState`.
|
|
5
|
+
*
|
|
6
|
+
* Composite key `<componentName>:<fieldName>` keeps the override map flat
|
|
7
|
+
* (single Map nesting level) so AI users walking `state.overrides` see one
|
|
8
|
+
* iteration depth — D-2 prefers a single SSOT over multi-Map nesting that
|
|
9
|
+
* would make iteration order ambiguous (charter F1: single mental model).
|
|
10
|
+
*
|
|
11
|
+
* The value is `unknown` because the per-component schema vocab lives in the
|
|
12
|
+
* ECS layer; runtime fail-fast via `EcsErrorCode = 'scene-override-type-
|
|
13
|
+
* mismatch'` (plan-strategy §D-9) catches type drift on the apply path.
|
|
14
|
+
*
|
|
15
|
+
* @internal Surface from `state.overrides` only; AI users never construct a
|
|
16
|
+
* record directly. Use `world.setSceneOverride(root, member, comp,
|
|
17
|
+
* field, value)` to write and `world.removeSceneOverride(root, member,
|
|
18
|
+
* comp, field)` to roll back to the source SceneAsset value.
|
|
19
|
+
*/
|
|
20
|
+
export interface SceneInstanceOverrideRecord {
|
|
21
|
+
readonly comp: string;
|
|
22
|
+
/**
|
|
23
|
+
* Component-granular add-or-patch discriminant (feat-20260713 M1 / w4):
|
|
24
|
+
* present -> this record patches a single field; absent -> it adds/upserts
|
|
25
|
+
* the whole `comp` (M2 apply semantics). Mirrors `MountOverride.field`.
|
|
26
|
+
*/
|
|
27
|
+
readonly field?: string;
|
|
28
|
+
readonly value: unknown;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Dynamic state payload for one SceneInstance — held in the World's
|
|
32
|
+
* UniqueRefStore behind a `ref<SceneInstanceState>` slot on the synthetic
|
|
33
|
+
* root entity. Mirrors the old class-based layout (plan-strategy §D-2 +
|
|
34
|
+
* design doc §11.2 internal-state-table) but flattened into plain JS Maps/Sets so
|
|
35
|
+
* AI users can iterate without indirection.
|
|
36
|
+
*
|
|
37
|
+
* Lifecycle:
|
|
38
|
+
* - allocated by `world.instantiateScene(handle, parent?)` — the W in
|
|
39
|
+
* `world.allocUniqueRef('SceneInstanceState', state)` returns the u32
|
|
40
|
+
* slot id stored in the SceneInstance.state column;
|
|
41
|
+
* - released by `world.despawn(root)` (the standard `ref<T>` release loop)
|
|
42
|
+
* or explicitly via `world.despawnScene(root)` / `world.despawnDescendants(root)`.
|
|
43
|
+
*
|
|
44
|
+
* AI users typically reach this struct only through the read path
|
|
45
|
+
* `world.get(root, SceneInstance).state.overrides.get(<comp>:<field>)` for
|
|
46
|
+
* inspection; mutation happens through the 8 World methods.
|
|
47
|
+
*/
|
|
48
|
+
export interface SceneInstanceState {
|
|
49
|
+
/**
|
|
50
|
+
* SceneAsset handle the instance was instantiated from. Mirrors the
|
|
51
|
+
* SceneInstance.source column for AI users who already have a
|
|
52
|
+
* SceneInstanceState in hand and want the source handle without a second
|
|
53
|
+
* `world.get` round-trip.
|
|
54
|
+
*/
|
|
55
|
+
readonly source: import('@forgeax/engine-types').Handle<'SceneAsset', 'shared'>;
|
|
56
|
+
/**
|
|
57
|
+
* Reverse mapping (live `Entity` -> source `LocalEntityId`). Used by
|
|
58
|
+
* `world.setSceneOverride` to validate the member entity belongs to this
|
|
59
|
+
* instance + by `world.detachSceneMember` / `world.reattachSceneMember`
|
|
60
|
+
* to translate caller-side Entity values back to their authored localId.
|
|
61
|
+
*/
|
|
62
|
+
readonly entityToLocalId: Map<EntityHandle, LocalEntityId>;
|
|
63
|
+
/**
|
|
64
|
+
* LocalEntityIds of members the AI user marked detached via
|
|
65
|
+
* `world.detachSceneMember(root, member)`. The member entities stay
|
|
66
|
+
* alive in the World; only the bookkeeping marker moves so
|
|
67
|
+
* `world.despawnDescendants(root, { keepDetached: true })` can skip them.
|
|
68
|
+
* Detach is idempotent (set semantics).
|
|
69
|
+
*/
|
|
70
|
+
readonly detachedLocalIds: Set<LocalEntityId>;
|
|
71
|
+
/**
|
|
72
|
+
* Per-member runtime overrides keyed by `<localId>` -> `<comp>:<field>`
|
|
73
|
+
* -> override record. mount-time overrides (authored on the SceneAsset's
|
|
74
|
+
* `mounts[].overrides`) populate this map at instantiate-time so AI
|
|
75
|
+
* users see them via the same read path as runtime
|
|
76
|
+
* `setSceneOverride` writes (single SSOT).
|
|
77
|
+
*/
|
|
78
|
+
readonly overrides: Map<LocalEntityId, Map<string, SceneInstanceOverrideRecord>>;
|
|
79
|
+
/**
|
|
80
|
+
* Top-level root entities of the materialised tree (members without a
|
|
81
|
+
* ChildOf parent at instantiate time). The synthetic root entity that
|
|
82
|
+
* carries the SceneInstance component itself is NOT in this list — it is
|
|
83
|
+
* the parent of every member entity (plan-strategy §3.2 sequence step 7).
|
|
84
|
+
*/
|
|
85
|
+
readonly rootEntities: EntityHandle[];
|
|
86
|
+
/** Synthetic roots of recursively mounted SceneAssets owned by this instance. */
|
|
87
|
+
readonly mountRoots: EntityHandle[];
|
|
88
|
+
/**
|
|
89
|
+
* Total slot count `entities.length + sum(mounts[].memberCount)` —
|
|
90
|
+
* captured at instantiate-time so cycle / count consistency checks
|
|
91
|
+
* (e.g. `world.getSceneAssetForInstance(root)` symmetry) can compare
|
|
92
|
+
* against the live SceneInstance.mapping column without re-reading the
|
|
93
|
+
* SceneAsset.
|
|
94
|
+
*/
|
|
95
|
+
readonly totalSlots: number;
|
|
96
|
+
/**
|
|
97
|
+
* Mount-time override authored on the parent SceneAsset's `mounts[]`
|
|
98
|
+
* record. Captured at instantiate-time so `world.removeSceneOverride`
|
|
99
|
+
* can fall back to the mount-time value before going to the source
|
|
100
|
+
* SceneAsset value (plan-strategy §D-2).
|
|
101
|
+
*/
|
|
102
|
+
readonly mountTimeOverrides: readonly MountOverride[];
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* SceneInstance ECS component — synthetic root entity payload for one
|
|
106
|
+
* materialised SceneAsset (instance == entity carrying SceneInstance,
|
|
107
|
+
* charter P4).
|
|
108
|
+
*
|
|
109
|
+
* AI users discover the component via IDE autocomplete on
|
|
110
|
+
* `@forgeax/engine-render` (single-import barrel; AGENTS.md §Components):
|
|
111
|
+
*
|
|
112
|
+
* ```ts
|
|
113
|
+
* import { SceneInstance } from '@forgeax/engine-render';
|
|
114
|
+
* for (const row of world.query({ read: [SceneInstance] }).unwrap()) {
|
|
115
|
+
* console.log(`root=${row.entity} source=${row.get(SceneInstance).source}`);
|
|
116
|
+
* }
|
|
117
|
+
*
|
|
118
|
+
* const inst = world.get(root, SceneInstance).value;
|
|
119
|
+
* const memberEntity = inst.mapping[localId]; // Uint32Array snapshot
|
|
120
|
+
* for (const detached of inst.state.detachedLocalIds) { /* ... *\/ }
|
|
121
|
+
* ```
|
|
122
|
+
*
|
|
123
|
+
* The component does not register a relationship — synthetic root +
|
|
124
|
+
* members are wired through the standard `ChildOf` (member -> root) so
|
|
125
|
+
* the existing `world.iterDescendants(root)` / Children mirror code paths
|
|
126
|
+
* apply unchanged (plan-strategy §D-5).
|
|
127
|
+
*
|
|
128
|
+
* @example Materialise + inspect a SceneAsset:
|
|
129
|
+
* const { root, diagnostics } = world.instantiateScene(handle).value;
|
|
130
|
+
* const inst = world.get(root, SceneInstance).value;
|
|
131
|
+
* // inst.source === handle, inst.mapping is Uint32Array(totalSlots)
|
|
132
|
+
* // inst.state holds entityToLocalId / detachedLocalIds / overrides /
|
|
133
|
+
* // rootEntities / mountRoots / totalSlots / mountTimeOverrides.
|
|
134
|
+
*/
|
|
135
|
+
export declare const SceneInstance: import("@forgeax/engine-ecs").Component<"SceneInstance", {
|
|
136
|
+
readonly source: "shared<SceneAsset>";
|
|
137
|
+
readonly mapping: "array<entity>";
|
|
138
|
+
readonly state: "unique<SceneInstanceState>";
|
|
139
|
+
}>;
|
|
140
|
+
//# sourceMappingURL=scene-instance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-instance.d.ts","sourceRoot":"","sources":["../../src/components/scene-instance.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE1E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,uBAAuB,EAAE,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEhF;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAE3D;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IAE9C;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAEjF;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC;IAEtC,iFAAiF;IACjF,QAAQ,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC;IAEpC;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,EAAE,SAAS,aAAa,EAAE,CAAC;CACvD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,aAAa;;;;EAUzB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skybox mode literal union (AC-02 narrowing surface).
|
|
3
|
+
* Currently only 'cubemap' -- future 'atmosphere' deferred per OOS-1.
|
|
4
|
+
*/
|
|
5
|
+
export type SkyboxMode = 'cubemap';
|
|
6
|
+
/** Numeric encoding of cubemap skybox mode (schema value for `mode`). */
|
|
7
|
+
export declare const SKYBOX_MODE_CUBEMAP = 0;
|
|
8
|
+
/**
|
|
9
|
+
* Map a `SkyboxBackground.mode` numeric value to the closed `SkyboxMode`
|
|
10
|
+
* string-literal union. Only member currently is 'cubemap'; the exhaustive
|
|
11
|
+
* switch is ready for future mode additions (e.g. 'atmosphere', OOS-1).
|
|
12
|
+
*/
|
|
13
|
+
export declare function skyboxModeFromF32(value: number): SkyboxMode;
|
|
14
|
+
/**
|
|
15
|
+
* SkyboxBackground: full-screen environment cubemap background.
|
|
16
|
+
*
|
|
17
|
+
* Renders a fullscreen triangle that reconstructs world-space view
|
|
18
|
+
* direction from the camera's inverseViewProj matrix (View UBO),
|
|
19
|
+
* samples a cubemap with the view direction, and writes an HDR color
|
|
20
|
+
* to the hdrColor render target (before the main geometry pass).
|
|
21
|
+
*
|
|
22
|
+
* The skybox pass is automatically activated when a SkyboxBackground
|
|
23
|
+
* entity exists, a Skylight entity provides the equirect source, and the
|
|
24
|
+
* active Camera has tonemap active. The skybox reuses the same equirect
|
|
25
|
+
* handle as the Skylight entity -- two independent components sharing the
|
|
26
|
+
* same GPU resource (the internally-projected cubemap).
|
|
27
|
+
*
|
|
28
|
+
* `equirect` is a `Handle<EquirectAsset>` resolved from a vite pack-index
|
|
29
|
+
* GUID via `engine.assets.loadByGuid<EquirectAsset>(guid)`. The cubemap
|
|
30
|
+
* projection is internal and driven by the render-system record arm; there
|
|
31
|
+
* is no user upload call.
|
|
32
|
+
*
|
|
33
|
+
* `mode` is a numeric discriminator column (`'f32'`). Use
|
|
34
|
+
* `SKYBOX_MODE_CUBEMAP` for the cubemap render path.
|
|
35
|
+
*
|
|
36
|
+
* `rotation` is an environment-space quaternion in `[x, y, z, w]` order.
|
|
37
|
+
* It rotates the sampled cubemap without changing the camera or rebaking the
|
|
38
|
+
* source equirectangular asset.
|
|
39
|
+
*
|
|
40
|
+
* @example Minimum spawn (defaults mode=0):
|
|
41
|
+
* // equirectHandle resolved from loadByGuid<EquirectAsset> (same handle as
|
|
42
|
+
* // the Skylight).
|
|
43
|
+
* world.spawn({ component: SkyboxBackground, data: { equirect: equirectHandle } });
|
|
44
|
+
*
|
|
45
|
+
* @example Single handle shared between Skylight (IBL) and SkyboxBackground:
|
|
46
|
+
* const hdrRes = await engine.assets.loadByGuid<EquirectAsset>(guid);
|
|
47
|
+
* if (!hdrRes.ok) throw hdrRes.error;
|
|
48
|
+
* world.spawn({ component: Skylight, data: { equirect: hdrRes.value } });
|
|
49
|
+
* world.spawn({ component: SkyboxBackground, data: { equirect: hdrRes.value } });
|
|
50
|
+
*/
|
|
51
|
+
export declare const SkyboxBackground: import("@forgeax/engine-ecs").Component<"SkyboxBackground", {
|
|
52
|
+
readonly equirect: "shared<EquirectAsset>";
|
|
53
|
+
readonly mode: "f32";
|
|
54
|
+
readonly rotation: "array<f32, 4>";
|
|
55
|
+
}>;
|
|
56
|
+
//# sourceMappingURL=skybox-background.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skybox-background.d.ts","sourceRoot":"","sources":["../../src/components/skybox-background.ts"],"names":[],"mappings":"AA+BA;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC;AAEnC,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAW3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,gBAAgB;;;;EAO3B,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skylight ambient environment light.
|
|
3
|
+
*
|
|
4
|
+
* A single Skylight entity provides ambient lighting for all StandardMaterial
|
|
5
|
+
* surfaces. Two modes share one component:
|
|
6
|
+
*
|
|
7
|
+
* - **Solid-color ambient (no equirect).** Omit `equirect` for a constant
|
|
8
|
+
* ambient = `color` * `intensity` applied immediately, with no async GPU
|
|
9
|
+
* precompute. The engine samples a built-in 1x1 white irradiance cube, so a
|
|
10
|
+
* freshly-loaded scene is lit on its first frame instead of being black
|
|
11
|
+
* until an IBL upload finishes.
|
|
12
|
+
* - **Image-based lighting (with equirect).** Supply `equirect` to upgrade to
|
|
13
|
+
* diffuse irradiance + specular prefilter IBL. The engine runs the full
|
|
14
|
+
* precompute (equirect->cubemap, irradiance convolution, prefilter mip
|
|
15
|
+
* chain, BRDF LUT) transparently inside the render-system record arm;
|
|
16
|
+
* `color` * `intensity` then scale the IBL ambient.
|
|
17
|
+
*
|
|
18
|
+
* `equirect` is an OPTIONAL `Handle<EquirectAsset>` resolved from a vite
|
|
19
|
+
* pack-index GUID via `engine.assets.loadByGuid<EquirectAsset>(guid)`. The
|
|
20
|
+
* cubemap projection is internal and idempotent: the same equirect source
|
|
21
|
+
* always resolves to the same GPU cubemap (no user upload call).
|
|
22
|
+
*
|
|
23
|
+
* `color` is the linear-space ambient tint (default white [1, 1, 1]).
|
|
24
|
+
* `intensity` is a linear multiplier (default 1.0; 0 disables ambient). Both
|
|
25
|
+
* are read every frame, so they are live dynamic dials.
|
|
26
|
+
*
|
|
27
|
+
* `rotation` is an environment-space quaternion in `[x, y, z, w]` order.
|
|
28
|
+
* The default identity quaternion leaves the source orientation unchanged;
|
|
29
|
+
* changing it rotates the IBL at sample time without rebaking the source.
|
|
30
|
+
*
|
|
31
|
+
* @example Instant white ambient (no asset, no async):
|
|
32
|
+
* world.spawn({ component: Skylight, data: {} });
|
|
33
|
+
*
|
|
34
|
+
* @example Dim warm ambient:
|
|
35
|
+
* world.spawn({ component: Skylight, data: { color: [1, 0.9, 0.8], intensity: 0.3 } }); // color is [r, g, b]
|
|
36
|
+
*
|
|
37
|
+
* @example Full IBL from an HDR equirect (declarative -- no upload call):
|
|
38
|
+
* // 1. resolve GUID from vite pack-index (see forgeax-engine-vite-plugin-pack)
|
|
39
|
+
* import { AssetGuid } from '@forgeax/engine-pack/guid';
|
|
40
|
+
* const guidRes = AssetGuid.parse('019e4a26-3c29-7420-af5d-20f2724a16b0');
|
|
41
|
+
* if (!guidRes.ok) throw guidRes.error;
|
|
42
|
+
* // 2. load the HDR equirect via the GUID-addressed pack route
|
|
43
|
+
* const hdrRes = await engine.assets.loadByGuid<EquirectAsset>(guidRes.value);
|
|
44
|
+
* if (!hdrRes.ok) throw hdrRes.error;
|
|
45
|
+
* // 3. spawn the Skylight — the equirect handle activates the full IBL path;
|
|
46
|
+
* // the cubemap + IBL precompute happen lazily inside the record arm.
|
|
47
|
+
* world.spawn({ component: Skylight, data: { equirect: hdrRes.value } });
|
|
48
|
+
*/
|
|
49
|
+
export declare const Skylight: import("@forgeax/engine-ecs").Component<"Skylight", {
|
|
50
|
+
readonly equirect: "shared<EquirectAsset>";
|
|
51
|
+
readonly color: "array<f32, 3>";
|
|
52
|
+
readonly intensity: "f32";
|
|
53
|
+
readonly rotation: "array<f32, 4>";
|
|
54
|
+
}>;
|
|
55
|
+
//# sourceMappingURL=skylight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skylight.d.ts","sourceRoot":"","sources":["../../src/components/skylight.ts"],"names":[],"mappings":"AAsCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,QAAQ;;;;;EAUnB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-entity transparent-sort override.
|
|
3
|
+
*
|
|
4
|
+
* When attached to an entity inside the transparent bucket (M-3 w22),
|
|
5
|
+
* `SortKey.value` REPLACES the result of `TransparentSortConfig.mode`
|
|
6
|
+
* formula evaluation for this entity. Sort key range is the host's
|
|
7
|
+
* choice — typical use is small (e.g. -10 ... +10) to keep the
|
|
8
|
+
* composite (layer asc, sortValue asc) ordering predictable; large
|
|
9
|
+
* magnitudes work but cross-layer biasing should usually go through
|
|
10
|
+
* `Layer` instead.
|
|
11
|
+
*
|
|
12
|
+
* Override priority (M-3 w23 transparent-sort algorithm):
|
|
13
|
+
*
|
|
14
|
+
* if (world.has(entity, SortKey)) {
|
|
15
|
+
* sortValue = world.get(entity, SortKey).value;
|
|
16
|
+
* } else {
|
|
17
|
+
* sortValue = modeFormula(mode, transform, sprite);
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* SortKey lives alongside Layer in the (layer, sortValue) composite
|
|
21
|
+
* key — Layer remains the primary key, SortKey replaces the secondary
|
|
22
|
+
* key. This means a `Layer { value: 100 }` foreground entity with
|
|
23
|
+
* `SortKey { value: -99 }` still draws AFTER a `Layer { value: 0 }`
|
|
24
|
+
* background entity; SortKey biases WITHIN a layer, not ACROSS layers.
|
|
25
|
+
*
|
|
26
|
+
* @example Minimal spawn (no override, use mode formula):
|
|
27
|
+
* world.spawn({ component: SortKey, data: {} }); // yields value=0
|
|
28
|
+
*
|
|
29
|
+
* @example Bias one sprite above the JRPG Y-sort formula:
|
|
30
|
+
* world.spawn(
|
|
31
|
+
* { component: Transform, data: { pos: [0, 1, 0],
|
|
32
|
+
* quat: [0, 0, 0, 1], scale: [1, 1, 1] } },
|
|
33
|
+
* { component: Layer, data: { value: 0 } },
|
|
34
|
+
* { component: SortKey, data: { value: -100 } },
|
|
35
|
+
* );
|
|
36
|
+
*
|
|
37
|
+
* @example Spawn payload omitting SortKey — the 4-layer fallback fills 0:
|
|
38
|
+
* // entity reads back SortKey only if explicitly attached;
|
|
39
|
+
* // otherwise the mode-formula path is taken by transparent-sort.ts.
|
|
40
|
+
*/
|
|
41
|
+
export declare const SortKey: import("@forgeax/engine-ecs").Component<"SortKey", {
|
|
42
|
+
readonly value: "f32";
|
|
43
|
+
}>;
|
|
44
|
+
//# sourceMappingURL=sort-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sort-key.d.ts","sourceRoot":"","sources":["../../src/components/sort-key.ts"],"names":[],"mappings":"AAgCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,OAAO;;EAElB,CAAC"}
|