@forgeax/engine-render 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +1019 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/__tests__/analytic-sky-contract.test.d.ts +2 -0
- package/dist/__tests__/analytic-sky-contract.test.d.ts.map +1 -0
- package/dist/__tests__/analytic-sky-falsify.test.d.ts +2 -0
- package/dist/__tests__/analytic-sky-falsify.test.d.ts.map +1 -0
- package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts +2 -0
- package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts.map +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__/backend-selection.integration.test.d.ts +2 -0
- package/dist/__tests__/backend-selection.integration.test.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__/camera-temporal.test-d.d.ts +2 -0
- package/dist/__tests__/camera-temporal.test-d.d.ts.map +1 -0
- package/dist/__tests__/camera-temporal.test.d.ts +2 -0
- package/dist/__tests__/camera-temporal.test.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__/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__/directional-shadow-probe-atlas-layout.unit.test.d.ts +2 -0
- package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts.map +1 -0
- package/dist/__tests__/environment-inspection.test.d.ts +2 -0
- package/dist/__tests__/environment-inspection.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__/fog-ai-user.fixture.d.ts +2 -0
- package/dist/__tests__/fog-ai-user.fixture.d.ts.map +1 -0
- package/dist/__tests__/fog-custom-render-feature.fixture.d.ts +16 -0
- package/dist/__tests__/fog-custom-render-feature.fixture.d.ts.map +1 -0
- package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fog-inspection.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-inspection.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fog-owner-state.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-owner-state.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fog-public-surface.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-public-surface.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fog-ray-contract.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-ray-contract.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fog-source-absence.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-source-absence.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fog-temporal.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-temporal.integration.test.d.ts.map +1 -0
- package/dist/__tests__/frame-chain.unit.test.d.ts +2 -0
- package/dist/__tests__/frame-chain.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__/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 +12 -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.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-field-type-owner.test-d.d.ts +2 -0
- package/dist/__tests__/gpu-scene-field-type-owner.test-d.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__/hdrp-pipeline.unit.test.d.ts +2 -0
- package/dist/__tests__/hdrp-pipeline.unit.test.d.ts.map +1 -0
- package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts +2 -0
- package/dist/__tests__/ibl/ibl-fallback.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-derived-error-stop-draw.integration.test.d.ts +2 -0
- package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts.map +1 -0
- package/dist/__tests__/material-derived-payload.integration.test.d.ts +2 -0
- package/dist/__tests__/material-derived-payload.integration.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__/materials.unit.test.d.ts +2 -0
- package/dist/__tests__/materials.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-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__/param-schema-projection-census.unit.test.d.ts +2 -0
- package/dist/__tests__/param-schema-projection-census.unit.test.d.ts.map +1 -0
- package/dist/__tests__/persistent-render-scene.unit.test.d.ts +2 -0
- package/dist/__tests__/persistent-render-scene.unit.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts +2 -0
- package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline-pass-trace.test.d.ts +2 -0
- package/dist/__tests__/pipeline-pass-trace.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline-stage-owner.test-d.d.ts +2 -0
- package/dist/__tests__/pipeline-stage-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/plugin.test.d.ts +2 -0
- package/dist/__tests__/plugin.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-backend-matrix.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.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-recording.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-resolver-recording.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-pipeline-id.test-d.d.ts +2 -0
- package/dist/__tests__/public-pipeline-id.test-d.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-dispatch-membership.unit.test.d.ts +2 -0
- package/dist/__tests__/render-dispatch-membership.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-construction.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-construction.unit.test.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-error-code-owner.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-error-code-owner.test-d.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-buffer-usage-owner.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.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-graph.integration.test.d.ts +2 -0
- package/dist/__tests__/render-feature-graph.integration.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-order.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-order.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-recording.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.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-staging.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-staging.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__/renderer-render-scene-public.test-d.d.ts +2 -0
- package/dist/__tests__/renderer-render-scene-public.test-d.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__/scene-temporal-coverage.unit.test.d.ts +2 -0
- package/dist/__tests__/scene-temporal-coverage.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-kernel-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/sun-snapshot-consumers.test.d.ts +2 -0
- package/dist/__tests__/sun-snapshot-consumers.test.d.ts.map +1 -0
- package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts +2 -0
- package/dist/__tests__/surface-backend-kind-owner.test-d.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__/taa-history-store.unit.test.d.ts +2 -0
- package/dist/__tests__/taa-history-store.unit.test.d.ts.map +1 -0
- package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts +2 -0
- package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts.map +1 -0
- package/dist/__tests__/temporal-inspection.unit.test.d.ts +2 -0
- package/dist/__tests__/temporal-inspection.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-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/assets/__tests__/asset-decoders.unit.test.d.ts +2 -0
- package/dist/assets/__tests__/asset-decoders.unit.test.d.ts.map +1 -0
- package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts +2 -0
- package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts.map +1 -0
- package/dist/assets/__tests__/render-asset-port.unit.test.d.ts +2 -0
- package/dist/assets/__tests__/render-asset-port.unit.test.d.ts.map +1 -0
- package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts +2 -0
- package/dist/assets/__tests__/resolve-render-asset.unit.test.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 +5 -0
- package/dist/authoring.mjs.map +1 -0
- package/dist/chunk-33UF5SAO.mjs +7397 -0
- package/dist/chunk-33UF5SAO.mjs.map +1 -0
- package/dist/chunk-A5QCJSNL.mjs +29913 -0
- package/dist/chunk-A5QCJSNL.mjs.map +1 -0
- package/dist/chunk-JMSB7AR4.mjs +3 -0
- package/dist/chunk-JMSB7AR4.mjs.map +1 -0
- package/dist/chunk-LXNGO6AO.mjs +569 -0
- package/dist/chunk-LXNGO6AO.mjs.map +1 -0
- package/dist/chunk-QRXPSX4X.mjs +659 -0
- package/dist/chunk-QRXPSX4X.mjs.map +1 -0
- package/dist/chunk-YAKEQPWO.mjs +1439 -0
- package/dist/chunk-YAKEQPWO.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__/atmosphere-red.test.d.ts +2 -0
- package/dist/components/__tests__/atmosphere-red.test.d.ts.map +1 -0
- package/dist/components/__tests__/atmosphere.test.d.ts +2 -0
- package/dist/components/__tests__/atmosphere.test.d.ts.map +1 -0
- package/dist/components/__tests__/fog.test-d.d.ts +2 -0
- package/dist/components/__tests__/fog.test-d.d.ts.map +1 -0
- package/dist/components/__tests__/fog.test.d.ts +2 -0
- package/dist/components/__tests__/fog.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/atmosphere.d.ts +18 -0
- package/dist/components/atmosphere.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/environment.d.ts +116 -0
- package/dist/components/environment.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 +22 -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/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/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/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 +75 -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 +37 -0
- package/dist/components/sprite-playback-mode.d.ts.map +1 -0
- package/dist/components/sprite-region-override.d.ts +47 -0
- package/dist/components/sprite-region-override.d.ts.map +1 -0
- package/dist/components/tile-layer.d.ts +101 -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 +2 -0
- package/dist/construct-renderer.d.ts.map +1 -0
- package/dist/construct-renderer.mjs +6 -0
- package/dist/construct-renderer.mjs.map +1 -0
- package/dist/debug-draw-glue.d.ts +56 -0
- package/dist/debug-draw-glue.d.ts.map +1 -0
- package/dist/deferred-lighting.d.ts +13 -0
- package/dist/deferred-lighting.d.ts.map +1 -0
- package/dist/dynamic-texture-store.d.ts +42 -0
- package/dist/dynamic-texture-store.d.ts.map +1 -0
- package/dist/engine-metrics.d.ts +23 -0
- package/dist/engine-metrics.d.ts.map +1 -0
- package/dist/environment/__tests__/failure-injection.test.d.ts +2 -0
- package/dist/environment/__tests__/failure-injection.test.d.ts.map +1 -0
- package/dist/environment/__tests__/generation-red.test.d.ts +2 -0
- package/dist/environment/__tests__/generation-red.test.d.ts.map +1 -0
- package/dist/environment/__tests__/generation.test.d.ts +2 -0
- package/dist/environment/__tests__/generation.test.d.ts.map +1 -0
- package/dist/environment/__tests__/graph-transaction.test.d.ts +2 -0
- package/dist/environment/__tests__/graph-transaction.test.d.ts.map +1 -0
- package/dist/environment/__tests__/inspection-red.test.d.ts +2 -0
- package/dist/environment/__tests__/inspection-red.test.d.ts.map +1 -0
- package/dist/environment/__tests__/lifecycle-evidence.test.d.ts +2 -0
- package/dist/environment/__tests__/lifecycle-evidence.test.d.ts.map +1 -0
- package/dist/environment/__tests__/pipeline-topology.test.d.ts +2 -0
- package/dist/environment/__tests__/pipeline-topology.test.d.ts.map +1 -0
- package/dist/environment/__tests__/readiness.test.d.ts +2 -0
- package/dist/environment/__tests__/readiness.test.d.ts.map +1 -0
- package/dist/environment/__tests__/recovery.test.d.ts +2 -0
- package/dist/environment/__tests__/recovery.test.d.ts.map +1 -0
- package/dist/environment/__tests__/resize-dispose.test.d.ts +2 -0
- package/dist/environment/__tests__/resize-dispose.test.d.ts.map +1 -0
- package/dist/environment/__tests__/signature-red.test.d.ts +2 -0
- package/dist/environment/__tests__/signature-red.test.d.ts.map +1 -0
- package/dist/environment/__tests__/signature.test.d.ts +2 -0
- package/dist/environment/__tests__/signature.test.d.ts.map +1 -0
- package/dist/environment/descriptors.d.ts +2 -0
- package/dist/environment/descriptors.d.ts.map +1 -0
- package/dist/environment/extracted-environment.d.ts +53 -0
- package/dist/environment/extracted-environment.d.ts.map +1 -0
- package/dist/environment/generation.d.ts +62 -0
- package/dist/environment/generation.d.ts.map +1 -0
- package/dist/environment/gpu-bundle.d.ts +23 -0
- package/dist/environment/gpu-bundle.d.ts.map +1 -0
- package/dist/environment/graph.d.ts +108 -0
- package/dist/environment/graph.d.ts.map +1 -0
- package/dist/environment/inspection.d.ts +48 -0
- package/dist/environment/inspection.d.ts.map +1 -0
- package/dist/environment/lifecycle.d.ts +22 -0
- package/dist/environment/lifecycle.d.ts.map +1 -0
- package/dist/environment/readiness.d.ts +29 -0
- package/dist/environment/readiness.d.ts.map +1 -0
- package/dist/environment/signature.d.ts +70 -0
- package/dist/environment/signature.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 +78 -0
- package/dist/errors/recover.d.ts.map +1 -0
- package/dist/errors/render.d.ts +633 -0
- package/dist/errors/render.d.ts.map +1 -0
- package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts +2 -0
- package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts.map +1 -0
- package/dist/extract/__tests__/environment-source.test.d.ts +2 -0
- package/dist/extract/__tests__/environment-source.test.d.ts.map +1 -0
- package/dist/extract/__tests__/schema-readers.unit.test.d.ts +2 -0
- package/dist/extract/__tests__/schema-readers.unit.test.d.ts.map +1 -0
- package/dist/extract/directional-csm.d.ts +129 -0
- package/dist/extract/directional-csm.d.ts.map +1 -0
- package/dist/extract/index.d.ts +5 -0
- package/dist/extract/index.d.ts.map +1 -0
- package/dist/extract/material-interface.d.ts +56 -0
- package/dist/extract/material-interface.d.ts.map +1 -0
- package/dist/extract/schema-readers.d.ts +20 -0
- package/dist/extract/schema-readers.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/graph-contribution.d.ts +64 -0
- package/dist/features/graph-contribution.d.ts.map +1 -0
- package/dist/features/host.d.ts +100 -0
- package/dist/features/host.d.ts.map +1 -0
- package/dist/features/index.d.ts +21 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/morph/index.d.ts +3 -0
- package/dist/features/morph/index.d.ts.map +1 -0
- package/dist/features/morph/morph-bounds.d.ts +42 -0
- package/dist/features/morph/morph-bounds.d.ts.map +1 -0
- package/dist/features/morph/morph-feature.d.ts +45 -0
- package/dist/features/morph/morph-feature.d.ts.map +1 -0
- package/dist/features/prepared-gpu-work.d.ts +113 -0
- package/dist/features/prepared-gpu-work.d.ts.map +1 -0
- package/dist/features/prepared-graphics-store.d.ts +65 -0
- package/dist/features/prepared-graphics-store.d.ts.map +1 -0
- package/dist/features/prepared-graphics.d.ts +225 -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 +15 -0
- package/dist/features/render-graph-contribution.d.ts.map +1 -0
- package/dist/features/render-graph-raster.d.ts +34 -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/scene-temporal.d.ts +45 -0
- package/dist/features/scene-temporal.d.ts.map +1 -0
- package/dist/features/taa-resolve.d.ts +21 -0
- package/dist/features/taa-resolve.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 +247 -0
- package/dist/features/types.d.ts.map +1 -0
- package/dist/frame-chain.d.ts +14 -0
- package/dist/frame-chain.d.ts.map +1 -0
- package/dist/fullscreen-post-process-pass.d.ts +178 -0
- package/dist/fullscreen-post-process-pass.d.ts.map +1 -0
- package/dist/glyph-text-layout-system.d.ts +18 -0
- package/dist/glyph-text-layout-system.d.ts.map +1 -0
- package/dist/gpu-driven/batch-topology.d.ts +124 -0
- package/dist/gpu-driven/batch-topology.d.ts.map +1 -0
- package/dist/gpu-driven/production-raster.d.ts +150 -0
- package/dist/gpu-driven/production-raster.d.ts.map +1 -0
- package/dist/gpu-driven/view-gpu.d.ts +141 -0
- package/dist/gpu-driven/view-gpu.d.ts.map +1 -0
- package/dist/gpu-driven/view-reference.d.ts +15 -0
- package/dist/gpu-driven/view-reference.d.ts.map +1 -0
- package/dist/gpu-resource-store.d.ts +294 -0
- package/dist/gpu-resource-store.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 +171 -0
- package/dist/gpu-scene-schema.d.ts.map +1 -0
- package/dist/gpu-scene.d.ts +81 -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 +213 -0
- package/dist/hdrp-buffers.d.ts.map +1 -0
- package/dist/hdrp-cluster-membership.d.ts +2 -0
- package/dist/hdrp-cluster-membership.d.ts.map +1 -0
- package/dist/hdrp-pipeline.d.ts +36 -0
- package/dist/hdrp-pipeline.d.ts.map +1 -0
- package/dist/ibl/IblPipelineCache.d.ts +274 -0
- package/dist/ibl/IblPipelineCache.d.ts.map +1 -0
- package/dist/ibl/cubemap-projection.d.ts +23 -0
- package/dist/ibl/cubemap-projection.d.ts.map +1 -0
- package/dist/ibl/face-uniforms.d.ts +65 -0
- package/dist/ibl/face-uniforms.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 +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +5 -0
- package/dist/index.mjs.map +1 -0
- package/dist/instance-buffer-cache.d.ts +59 -0
- package/dist/instance-buffer-cache.d.ts.map +1 -0
- package/dist/internal.d.ts +74 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.mjs +45 -0
- package/dist/internal.mjs.map +1 -0
- package/dist/lifecycle.d.ts +28 -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 +50 -0
- package/dist/materials.d.ts.map +1 -0
- package/dist/mesh-material-bindings.d.ts +44 -0
- package/dist/mesh-material-bindings.d.ts.map +1 -0
- package/dist/mesh-update-errors.d.ts +71 -0
- package/dist/mesh-update-errors.d.ts.map +1 -0
- package/dist/mipmap-generator.d.ts +39 -0
- package/dist/mipmap-generator.d.ts.map +1 -0
- package/dist/param-schema-projection-census.d.ts +18 -0
- package/dist/param-schema-projection-census.d.ts.map +1 -0
- package/dist/pbr-pipeline.d.ts +253 -0
- package/dist/pbr-pipeline.d.ts.map +1 -0
- package/dist/persistent-render-scene.d.ts +158 -0
- package/dist/persistent-render-scene.d.ts.map +1 -0
- package/dist/pipeline/index.d.ts +11 -0
- package/dist/pipeline/index.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-errors.d.ts +110 -0
- package/dist/pipeline-errors.d.ts.map +1 -0
- package/dist/pipeline-spec.d.ts +506 -0
- package/dist/pipeline-spec.d.ts.map +1 -0
- package/dist/plugin.d.ts +17 -0
- package/dist/plugin.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/__tests__/schema-readers.unit.test.d.ts +2 -0
- package/dist/prepare/__tests__/schema-readers.unit.test.d.ts.map +1 -0
- package/dist/prepare/index.d.ts +4 -0
- package/dist/prepare/index.d.ts.map +1 -0
- package/dist/prepare/prepared-graphics-resolver.d.ts +62 -0
- package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -0
- package/dist/prepare/schema-readers.d.ts +11 -0
- package/dist/prepare/schema-readers.d.ts.map +1 -0
- package/dist/record/__tests__/environment-record.test.d.ts +2 -0
- package/dist/record/__tests__/environment-record.test.d.ts.map +1 -0
- package/dist/record/__tests__/frame-targets.unit.test.d.ts +2 -0
- package/dist/record/__tests__/frame-targets.unit.test.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__/membership-timing.unit.test.d.ts +2 -0
- package/dist/record/__tests__/membership-timing.unit.test.d.ts.map +1 -0
- package/dist/record/__tests__/render-submission.integration.test.d.ts +2 -0
- package/dist/record/__tests__/render-submission.integration.test.d.ts.map +1 -0
- package/dist/record/__tests__/render-submission.perf.test.d.ts +2 -0
- package/dist/record/__tests__/render-submission.perf.test.d.ts.map +1 -0
- package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts +2 -0
- package/dist/record/__tests__/shadow-submit-mode.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/__tests__/view-ubo-layout.unit.test.d.ts +2 -0
- package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts.map +1 -0
- package/dist/record/frame-lighting.d.ts +187 -0
- package/dist/record/frame-lighting.d.ts.map +1 -0
- package/dist/record/frame-observation.d.ts +38 -0
- package/dist/record/frame-observation.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 +53 -0
- package/dist/record/frame-targets.d.ts.map +1 -0
- package/dist/record/frame.d.ts +59 -0
- package/dist/record/frame.d.ts.map +1 -0
- package/dist/record/helpers.d.ts +101 -0
- package/dist/record/helpers.d.ts.map +1 -0
- package/dist/record/index.d.ts +15 -0
- package/dist/record/index.d.ts.map +1 -0
- package/dist/record/main-pass-geometry.d.ts +20 -0
- package/dist/record/main-pass-geometry.d.ts.map +1 -0
- package/dist/record/main-pass-material.d.ts +173 -0
- package/dist/record/main-pass-material.d.ts.map +1 -0
- package/dist/record/main-pass-skin.d.ts +46 -0
- package/dist/record/main-pass-skin.d.ts.map +1 -0
- package/dist/record/main-pass-sprite-draws.d.ts +18 -0
- package/dist/record/main-pass-sprite-draws.d.ts.map +1 -0
- package/dist/record/main-pass-sprite.d.ts +69 -0
- package/dist/record/main-pass-sprite.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/material-payload.d.ts +43 -0
- package/dist/record/material-payload.d.ts.map +1 -0
- package/dist/record/material-slot-plan.d.ts +26 -0
- package/dist/record/material-slot-plan.d.ts.map +1 -0
- package/dist/record/membership-timing.d.ts +232 -0
- package/dist/record/membership-timing.d.ts.map +1 -0
- package/dist/record/mesh-ssbo.d.ts +173 -0
- package/dist/record/mesh-ssbo.d.ts.map +1 -0
- package/dist/record/shadow-caster-uniform.d.ts +8 -0
- package/dist/record/shadow-caster-uniform.d.ts.map +1 -0
- package/dist/record/shadow-pass.d.ts +125 -0
- package/dist/record/shadow-pass.d.ts.map +1 -0
- package/dist/record/shadow-submit-mode.d.ts +66 -0
- package/dist/record/shadow-submit-mode.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 +13 -0
- package/dist/record/typed-frame-graph.d.ts.map +1 -0
- package/dist/record/view-ubo.d.ts +39 -0
- package/dist/record/view-ubo.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-dispatch-membership.d.ts +47 -0
- package/dist/render-dispatch-membership.d.ts.map +1 -0
- package/dist/render-graph-primitives.d.ts +424 -0
- package/dist/render-graph-primitives.d.ts.map +1 -0
- package/dist/render-pipeline-context.d.ts +289 -0
- package/dist/render-pipeline-context.d.ts.map +1 -0
- package/dist/render-pipeline-target.d.ts +16 -0
- package/dist/render-pipeline-target.d.ts.map +1 -0
- package/dist/render-pipeline.d.ts +149 -0
- package/dist/render-pipeline.d.ts.map +1 -0
- package/dist/render-scene-projection.d.ts +174 -0
- package/dist/render-scene-projection.d.ts.map +1 -0
- package/dist/render-system-extract.d.ts +1096 -0
- package/dist/render-system-extract.d.ts.map +1 -0
- package/dist/render-system-fold.d.ts +266 -0
- package/dist/render-system-fold.d.ts.map +1 -0
- package/dist/render-system.d.ts +814 -0
- package/dist/render-system.d.ts.map +1 -0
- package/dist/renderer/asset-service.d.ts +10 -0
- package/dist/renderer/asset-service.d.ts.map +1 -0
- package/dist/renderer/backend-selection.d.ts +26 -0
- package/dist/renderer/backend-selection.d.ts.map +1 -0
- package/dist/renderer/environment-classify.d.ts +6 -0
- package/dist/renderer/environment-classify.d.ts.map +1 -0
- package/dist/renderer/environment-error.d.ts +13 -0
- package/dist/renderer/environment-error.d.ts.map +1 -0
- package/dist/renderer/material/assembly.d.ts +22 -0
- package/dist/renderer/material/assembly.d.ts.map +1 -0
- package/dist/renderer/material/pipeline-projection.d.ts +91 -0
- package/dist/renderer/material/pipeline-projection.d.ts.map +1 -0
- package/dist/renderer/renderer-factory.d.ts +283 -0
- package/dist/renderer/renderer-factory.d.ts.map +1 -0
- package/dist/renderer.d.ts +771 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/scene-instances/post-spawn-resolve-joints.d.ts +33 -0
- package/dist/scene-instances/post-spawn-resolve-joints.d.ts.map +1 -0
- package/dist/scene-utils/collect-subtree.d.ts +11 -0
- package/dist/scene-utils/collect-subtree.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 +31 -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/ssao-data.d.ts +34 -0
- package/dist/ssao-data.d.ts.map +1 -0
- package/dist/surface-format.d.ts +10 -0
- package/dist/surface-format.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 +51 -0
- package/dist/systems/skin-palette-allocator.d.ts.map +1 -0
- package/dist/systems/transparent-sort-config.d.ts +91 -0
- package/dist/systems/transparent-sort-config.d.ts.map +1 -0
- package/dist/taa-history-store.d.ts +88 -0
- package/dist/taa-history-store.d.ts.map +1 -0
- package/dist/temporal-coverage.d.ts +35 -0
- package/dist/temporal-coverage.d.ts.map +1 -0
- package/dist/temporal-frame-transaction.d.ts +92 -0
- package/dist/temporal-frame-transaction.d.ts.map +1 -0
- package/dist/temporal-inspection.d.ts +57 -0
- package/dist/temporal-inspection.d.ts.map +1 -0
- package/dist/temporal-view.d.ts +43 -0
- package/dist/temporal-view.d.ts.map +1 -0
- package/dist/tilemap/resolve-tileset-runtime.d.ts +23 -0
- package/dist/tilemap/resolve-tileset-runtime.d.ts.map +1 -0
- package/dist/tilemap-chunk-extract-system.d.ts +142 -0
- package/dist/tilemap-chunk-extract-system.d.ts.map +1 -0
- package/dist/typed-render-graph-primitives.d.ts +59 -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/dist/urp-pipeline.d.ts +4 -0
- package/dist/urp-pipeline.d.ts.map +1 -0
- package/package.json +94 -0
- package/src/__tests__/analytic-sky-contract.test.ts +27 -0
- package/src/__tests__/analytic-sky-falsify-carriers.mjs +43 -0
- package/src/__tests__/analytic-sky-falsify.test.ts +94 -0
- package/src/__tests__/assets-runtime-handoff.integration.test.ts +36 -0
- package/src/__tests__/authoring-path.unit.test.ts +14 -0
- package/src/__tests__/backend-selection-rhi-capture.test-d.ts +21 -0
- package/src/__tests__/backend-selection.integration.test.ts +11 -0
- package/src/__tests__/callback-inference.test-d.ts +5 -0
- package/src/__tests__/camera-temporal.test-d.ts +8 -0
- package/src/__tests__/camera-temporal.test.ts +188 -0
- package/src/__tests__/cluster-binner.test.ts +272 -0
- package/src/__tests__/cluster-grid-default-surface.unit.test.ts +17 -0
- package/src/__tests__/construct-renderer-identity.unit.test.ts +10 -0
- package/src/__tests__/direct-extract-consumer-contract.test-d.ts +34 -0
- package/src/__tests__/direct-light-snapshot.unit.test.ts +71 -0
- package/src/__tests__/directional-shadow-probe-atlas-layout.unit.test.ts +18 -0
- package/src/__tests__/environment-inspection.test.ts +45 -0
- package/src/__tests__/factory-contract.integration.test.ts +331 -0
- package/src/__tests__/fallback-row-stride-surface.unit.test.ts +18 -0
- package/src/__tests__/fog-ai-user.fixture.ts +350 -0
- package/src/__tests__/fog-custom-render-feature.fixture.ts +33 -0
- package/src/__tests__/fog-custom-render-feature.integration.test.ts +76 -0
- package/src/__tests__/fog-inspection.integration.test.ts +127 -0
- package/src/__tests__/fog-owner-state.integration.test.ts +112 -0
- package/src/__tests__/fog-pipeline-topology.integration.test.ts +93 -0
- package/src/__tests__/fog-public-surface.integration.test.ts +60 -0
- package/src/__tests__/fog-ray-contract.integration.test.ts +73 -0
- package/src/__tests__/fog-source-absence.integration.test.ts +51 -0
- package/src/__tests__/fog-temporal.integration.test.ts +115 -0
- package/src/__tests__/frame-chain.unit.test.ts +26 -0
- package/src/__tests__/frame-observation.contract.test.ts +103 -0
- package/src/__tests__/glyph-text-layout-recovery.unit.test.ts +172 -0
- package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +347 -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 +609 -0
- package/src/__tests__/gpu-driven-scaling.unit.test.ts +90 -0
- package/src/__tests__/gpu-driven-view-gpu-evidence.ts +192 -0
- package/src/__tests__/gpu-driven-view-graph.integration.test.ts +128 -0
- package/src/__tests__/gpu-driven-view.browser.test.ts +19 -0
- package/src/__tests__/gpu-driven-view.dawn.test.ts +17 -0
- package/src/__tests__/gpu-driven-view.unit.test.ts +455 -0
- package/src/__tests__/gpu-resource-store-stride.unit.test.ts +59 -0
- package/src/__tests__/gpu-scene-field-type-owner.test-d.ts +27 -0
- package/src/__tests__/gpu-scene-render-graph-gpu.ts +309 -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 +209 -0
- package/src/__tests__/gpu-scene.unit.test.ts +161 -0
- package/src/__tests__/hdrp-pipeline.unit.test.ts +100 -0
- package/src/__tests__/ibl/ibl-fallback.unit.test.ts +23 -0
- package/src/__tests__/infinite-grid-no-vertex-probe.unit.test.ts +124 -0
- package/src/__tests__/injection-kind-owner.test-d.ts +14 -0
- package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +719 -0
- package/src/__tests__/light-buffer-layout.unit.test.ts +85 -0
- package/src/__tests__/material-contract-inventory.unit.test.ts +24 -0
- package/src/__tests__/material-cooked-projection.unit.test.ts +177 -0
- package/src/__tests__/material-derived-error-stop-draw.integration.test.ts +69 -0
- package/src/__tests__/material-derived-payload.integration.test.ts +164 -0
- package/src/__tests__/material-snapshot-mutation.integration.test.ts +58 -0
- package/src/__tests__/material-static-dynamic-route.unit.test.ts +113 -0
- package/src/__tests__/material-stride-surface.unit.test.ts +32 -0
- package/src/__tests__/materials.unit.test.ts +25 -0
- package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +107 -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 +166 -0
- package/src/__tests__/morph-feature-gpu-work.integration.test.ts +78 -0
- package/src/__tests__/morph-visual-evidence.integration.test.ts +66 -0
- package/src/__tests__/nineslice-handle-surface.unit.test.ts +14 -0
- package/src/__tests__/param-schema-projection-census.unit.test.ts +40 -0
- package/src/__tests__/persistent-render-scene.unit.test.ts +1311 -0
- package/src/__tests__/pipeline-error-policy-owner.unit.test.ts +167 -0
- package/src/__tests__/pipeline-pass-trace.test.ts +92 -0
- package/src/__tests__/pipeline-stage-owner.test-d.ts +13 -0
- package/src/__tests__/plugin.test.ts +25 -0
- package/src/__tests__/post-process-error-policy-owner.unit.test.ts +208 -0
- package/src/__tests__/prepared-buffer-kind-owner.test-d.ts +29 -0
- package/src/__tests__/prepared-graphics-backend-matrix.unit.test.ts +129 -0
- package/src/__tests__/prepared-graphics-capability.unit.test.ts +140 -0
- package/src/__tests__/prepared-graphics-generation.unit.test.ts +175 -0
- package/src/__tests__/prepared-graphics-lifecycle.unit.test.ts +206 -0
- package/src/__tests__/prepared-graphics-pipeline-warmup.unit.test.ts +29 -0
- package/src/__tests__/prepared-graphics-resolver-recording.unit.test.ts +180 -0
- package/src/__tests__/prepared-graphics-resolver.unit.test.ts +287 -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 +70 -0
- package/src/__tests__/profiler-phase-token.test.ts +84 -0
- package/src/__tests__/public-pipeline-id.test-d.ts +6 -0
- package/src/__tests__/public-surface.test-d.ts +32 -0
- package/src/__tests__/recover-error-policy-owner.unit.test.ts +127 -0
- package/src/__tests__/render-dispatch-membership.unit.test.ts +117 -0
- package/src/__tests__/render-error-code-owner.test-d.ts +115 -0
- package/src/__tests__/render-error-detail-ssot.test-d.ts +234 -0
- package/src/__tests__/render-error-exhaustive.test-d.ts +84 -0
- package/src/__tests__/render-feature-assembly.test-d.ts +51 -0
- package/src/__tests__/render-feature-construction.unit.test.ts +124 -0
- package/src/__tests__/render-feature-context.test-d.ts +81 -0
- package/src/__tests__/render-feature-contract.test-d.ts +58 -0
- package/src/__tests__/render-feature-diagnostics.unit.test.ts +151 -0
- package/src/__tests__/render-feature-docs.unit.test.ts +88 -0
- package/src/__tests__/render-feature-error-code-owner.test-d.ts +27 -0
- package/src/__tests__/render-feature-errors.unit.test.ts +47 -0
- package/src/__tests__/render-feature-gpu-buffer-usage-owner.test-d.ts +46 -0
- package/src/__tests__/render-feature-gpu-work.integration.test.ts +377 -0
- package/src/__tests__/render-feature-graph.integration.test.ts +205 -0
- package/src/__tests__/render-feature-graphics-staging.unit.test.ts +200 -0
- package/src/__tests__/render-feature-order.unit.test.ts +66 -0
- package/src/__tests__/render-feature-prepared-diagnostics.unit.test.ts +101 -0
- package/src/__tests__/render-feature-prepared-errors.test-d.ts +82 -0
- package/src/__tests__/render-feature-prepared-graphics-docs.unit.test.ts +141 -0
- package/src/__tests__/render-feature-prepared-graphics-isolation.unit.test.ts +122 -0
- package/src/__tests__/render-feature-prepared-graphics-negative.test-d.ts +59 -0
- package/src/__tests__/render-feature-prepared-graphics-recording.unit.test.ts +107 -0
- package/src/__tests__/render-feature-prepared-graphics.test-d.ts +96 -0
- package/src/__tests__/render-feature-prepared-graphics.unit.test.ts +121 -0
- package/src/__tests__/render-feature-public-surface.test-d.ts +75 -0
- package/src/__tests__/render-feature-retry.unit.test.ts +128 -0
- package/src/__tests__/render-feature-scheduling.unit.test.ts +122 -0
- package/src/__tests__/render-feature-stage-failed-policy-owner.unit.test.ts +146 -0
- package/src/__tests__/render-feature-stage-fault-recovery.unit.test.ts +236 -0
- package/src/__tests__/render-feature-staging.unit.test.ts +94 -0
- package/src/__tests__/render-feature-visibility-context.test-d.ts +38 -0
- package/src/__tests__/render-feature-visibility-context.unit.test.ts +38 -0
- package/src/__tests__/render-feature-zero-work.unit.test.ts +82 -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 +206 -0
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +125 -0
- package/src/__tests__/renderer-lifecycle.integration.test.ts +10 -0
- package/src/__tests__/renderer-render-scene-public.test-d.ts +27 -0
- package/src/__tests__/rhi-backend-package-boundary.unit.test.ts +11 -0
- package/src/__tests__/scene-temporal-coverage.unit.test.ts +259 -0
- package/src/__tests__/scriptable-pack-consumer.test-d.ts +14 -0
- package/src/__tests__/shader-stage-surface.unit.test.ts +38 -0
- package/src/__tests__/ssao-kernel-surface.unit.test.ts +15 -0
- package/src/__tests__/sun-snapshot-consumers.test.ts +35 -0
- package/src/__tests__/surface-backend-kind-owner.test-d.ts +42 -0
- package/src/__tests__/surface-configuration.unit.test.ts +92 -0
- package/src/__tests__/taa-history-store.unit.test.ts +196 -0
- package/src/__tests__/temporal-frame-transaction.integration.test.ts +537 -0
- package/src/__tests__/temporal-inspection.unit.test.ts +138 -0
- package/src/__tests__/texture-usage-surface.unit.test.ts +61 -0
- package/src/__tests__/typed-pipeline-topology.unit.test.ts +389 -0
- package/src/__tests__/urp-pipeline-targets.unit.test.ts +52 -0
- package/src/__tests__/urp-pipeline.unit.test.ts +14 -0
- package/src/__tests__/vertex-color-pipeline.unit.test.ts +124 -0
- package/src/__tests__/vertex-layout-consumer.unit.test.ts +25 -0
- package/src/__tests__/visibility-diagnostics.integration.test.ts +66 -0
- package/src/__tests__/visibility-extract.integration.test.ts +89 -0
- package/src/__tests__/visibility-extract.perf.test.ts +96 -0
- package/src/__tests__/visibility-feature-dedup.integration.test.ts +57 -0
- package/src/__tests__/visibility-hidden-report.unit.test.ts +37 -0
- package/src/__tests__/visibility-instances.integration.test.ts +50 -0
- package/src/__tests__/visibility-multi-world.integration.test.ts +54 -0
- package/src/__tests__/visibility-producer-matrix.integration.test.ts +191 -0
- package/src/__tests__/visibility-producer-matrix.unit.test.ts +96 -0
- package/src/__tests__/visibility-public-surface.test-d.ts +26 -0
- package/src/__tests__/visibility-resolver.unit.test.ts +84 -0
- package/src/__tests__/visibility-snapshot-contract.unit.test.ts +59 -0
- package/src/__tests__/vocabulary.unit.test.ts +21 -0
- package/src/assets/__tests__/asset-decoders.unit.test.ts +92 -0
- package/src/assets/__tests__/mipmap-generator.unit.test.ts +52 -0
- package/src/assets/__tests__/render-asset-port.unit.test.ts +54 -0
- package/src/assets/__tests__/resolve-render-asset.unit.test.ts +47 -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 +24 -0
- package/src/cluster-binner.ts +700 -0
- package/src/components/__tests__/atmosphere-red.test.ts +51 -0
- package/src/components/__tests__/atmosphere.test.ts +79 -0
- package/src/components/__tests__/fog.test-d.ts +49 -0
- package/src/components/__tests__/fog.test.ts +60 -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/atmosphere.ts +64 -0
- package/src/components/camera.ts +512 -0
- package/src/components/directional-light.ts +120 -0
- package/src/components/environment.ts +206 -0
- package/src/components/glyph-text.ts +63 -0
- package/src/components/index.ts +49 -0
- package/src/components/instances.ts +207 -0
- package/src/components/layer.ts +69 -0
- package/src/components/light-helpers.ts +188 -0
- package/src/components/mesh-filter.ts +59 -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/post-process-params.ts +35 -0
- package/src/components/scene-instance.ts +193 -0
- package/src/components/sort-key.ts +75 -0
- package/src/components/spot-light.ts +124 -0
- package/src/components/sprite-animation.ts +169 -0
- package/src/components/sprite-instances.ts +179 -0
- package/src/components/sprite-playback-mode.ts +73 -0
- package/src/components/sprite-region-override.ts +106 -0
- package/src/components/tile-layer.ts +161 -0
- package/src/components/tilemap.ts +48 -0
- package/src/components/visibility.ts +53 -0
- package/src/construct-renderer.ts +4 -0
- package/src/debug-draw-glue.ts +169 -0
- package/src/deferred-lighting.ts +92 -0
- package/src/dynamic-texture-store.ts +111 -0
- package/src/engine-metrics.ts +89 -0
- package/src/environment/README.md +76 -0
- package/src/environment/__tests__/failure-injection.test.ts +50 -0
- package/src/environment/__tests__/generation-red.test.ts +64 -0
- package/src/environment/__tests__/generation.test.ts +37 -0
- package/src/environment/__tests__/graph-transaction.test.ts +85 -0
- package/src/environment/__tests__/inspection-red.test.ts +53 -0
- package/src/environment/__tests__/lifecycle-evidence.test.ts +40 -0
- package/src/environment/__tests__/pipeline-topology.test.ts +33 -0
- package/src/environment/__tests__/readiness.test.ts +42 -0
- package/src/environment/__tests__/recovery.test.ts +62 -0
- package/src/environment/__tests__/resize-dispose.test.ts +30 -0
- package/src/environment/__tests__/signature-red.test.ts +45 -0
- package/src/environment/__tests__/signature.test.ts +60 -0
- package/src/environment/descriptors.ts +7 -0
- package/src/environment/extracted-environment.ts +239 -0
- package/src/environment/generation.ts +158 -0
- package/src/environment/gpu-bundle.ts +144 -0
- package/src/environment/graph.ts +588 -0
- package/src/environment/inspection.ts +107 -0
- package/src/environment/lifecycle.ts +124 -0
- package/src/environment/readiness.ts +76 -0
- package/src/environment/signature.ts +185 -0
- package/src/errors/ecs-validation.ts +16 -0
- package/src/errors/index.ts +3 -0
- package/src/errors/recover.ts +119 -0
- package/src/errors/render.ts +1244 -0
- package/src/extract/__tests__/directional-csm-domain.unit.test.ts +391 -0
- package/src/extract/__tests__/environment-source.test.ts +105 -0
- package/src/extract/__tests__/schema-readers.unit.test.ts +16 -0
- package/src/extract/directional-csm.ts +959 -0
- package/src/extract/index.ts +10 -0
- package/src/extract/material-interface.ts +604 -0
- package/src/extract/schema-readers.ts +27 -0
- package/src/extract/visibility.ts +120 -0
- package/src/features/graph-contribution.ts +577 -0
- package/src/features/host.ts +1097 -0
- package/src/features/index.ts +100 -0
- package/src/features/morph/index.ts +24 -0
- package/src/features/morph/morph-bounds.ts +123 -0
- package/src/features/morph/morph-feature.ts +287 -0
- package/src/features/prepared-gpu-work.ts +902 -0
- package/src/features/prepared-graphics-store.ts +435 -0
- package/src/features/prepared-graphics.ts +479 -0
- package/src/features/render-graph-compute.ts +60 -0
- package/src/features/render-graph-contribution.ts +95 -0
- package/src/features/render-graph-raster.ts +308 -0
- package/src/features/render-graph-resources.ts +36 -0
- package/src/features/scene-temporal.ts +274 -0
- package/src/features/taa-resolve.ts +244 -0
- package/src/features/targets.ts +83 -0
- package/src/features/types.ts +291 -0
- package/src/frame-chain.ts +21 -0
- package/src/fullscreen-post-process-pass.ts +406 -0
- package/src/glyph-text-layout-system.ts +447 -0
- package/src/gpu-driven/batch-topology.ts +423 -0
- package/src/gpu-driven/production-raster.ts +1705 -0
- package/src/gpu-driven/view-gpu.ts +849 -0
- package/src/gpu-driven/view-reference.ts +110 -0
- package/src/gpu-resource-store.ts +1921 -0
- package/src/gpu-resource.ts +159 -0
- package/src/gpu-scene-schema.ts +224 -0
- package/src/gpu-scene.ts +855 -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 +689 -0
- package/src/hdrp-cluster-membership.ts +70 -0
- package/src/hdrp-pipeline.ts +525 -0
- package/src/ibl/IblPipelineCache.ts +1246 -0
- package/src/ibl/cubemap-projection.ts +60 -0
- package/src/ibl/face-uniforms.ts +150 -0
- package/src/ibl/skylight-bind-group.ts +513 -0
- package/src/index.ts +271 -0
- package/src/instance-buffer-cache.ts +123 -0
- package/src/internal.ts +88 -0
- package/src/lifecycle.ts +123 -0
- package/src/light-buffer-layout.ts +346 -0
- package/src/materials.ts +236 -0
- package/src/mesh-material-bindings.ts +104 -0
- package/src/mesh-update-errors.ts +113 -0
- package/src/mipmap-generator.ts +244 -0
- package/src/param-schema-projection-census.ts +73 -0
- package/src/pbr-pipeline.ts +749 -0
- package/src/persistent-render-scene.ts +1752 -0
- package/src/pipeline/index.ts +40 -0
- package/src/pipeline-builder.ts +386 -0
- package/src/pipeline-errors.ts +172 -0
- package/src/pipeline-spec.ts +1768 -0
- package/src/plugin.ts +137 -0
- package/src/post-process-errors.ts +304 -0
- package/src/prepare/__tests__/schema-readers.unit.test.ts +16 -0
- package/src/prepare/index.ts +8 -0
- package/src/prepare/prepared-graphics-resolver.ts +455 -0
- package/src/prepare/schema-readers.ts +20 -0
- package/src/record/__tests__/environment-record.test.ts +35 -0
- package/src/record/__tests__/frame-targets.unit.test.ts +54 -0
- package/src/record/__tests__/material-bg-cache.unit.test.ts +41 -0
- package/src/record/__tests__/material-slot-plan.unit.test.ts +76 -0
- package/src/record/__tests__/membership-timing.unit.test.ts +524 -0
- package/src/record/__tests__/render-submission.integration.test.ts +76 -0
- package/src/record/__tests__/render-submission.perf.test.ts +141 -0
- package/src/record/__tests__/shadow-submit-mode.unit.test.ts +88 -0
- package/src/record/__tests__/video-texture-view.unit.test.ts +90 -0
- package/src/record/__tests__/view-ubo-layout.unit.test.ts +101 -0
- package/src/record/frame-lighting.ts +1183 -0
- package/src/record/frame-observation.ts +122 -0
- package/src/record/frame-snapshot.ts +515 -0
- package/src/record/frame-targets.ts +372 -0
- package/src/record/frame.ts +1874 -0
- package/src/record/helpers.ts +289 -0
- package/src/record/index.ts +15 -0
- package/src/record/main-pass-geometry.ts +1014 -0
- package/src/record/main-pass-material.ts +716 -0
- package/src/record/main-pass-skin.ts +51 -0
- package/src/record/main-pass-sprite-draws.ts +1056 -0
- package/src/record/main-pass-sprite.ts +166 -0
- package/src/record/main-pass.ts +588 -0
- package/src/record/material-payload.ts +292 -0
- package/src/record/material-slot-plan.ts +68 -0
- package/src/record/membership-timing.ts +1012 -0
- package/src/record/mesh-ssbo.ts +406 -0
- package/src/record/shadow-caster-uniform.ts +37 -0
- package/src/record/shadow-pass.ts +2387 -0
- package/src/record/shadow-submit-mode.ts +277 -0
- package/src/record/skybox-post-pass.ts +594 -0
- package/src/record/typed-frame-graph.ts +499 -0
- package/src/record/view-ubo.ts +206 -0
- package/src/render-data.ts +385 -0
- package/src/render-dispatch-membership.ts +155 -0
- package/src/render-graph-primitives.ts +1586 -0
- package/src/render-pipeline-context.ts +332 -0
- package/src/render-pipeline-target.ts +96 -0
- package/src/render-pipeline.ts +343 -0
- package/src/render-scene-projection.ts +1738 -0
- package/src/render-system-extract.ts +5203 -0
- package/src/render-system-fold.ts +531 -0
- package/src/render-system.ts +3258 -0
- package/src/renderer/asset-service.ts +32 -0
- package/src/renderer/backend-selection.ts +121 -0
- package/src/renderer/environment-classify.ts +30 -0
- package/src/renderer/environment-error.ts +19 -0
- package/src/renderer/material/assembly.ts +53 -0
- package/src/renderer/material/pipeline-projection.ts +140 -0
- package/src/renderer/renderer-factory.ts +9062 -0
- package/src/renderer.ts +940 -0
- package/src/scene-instances/post-spawn-resolve-joints.ts +168 -0
- package/src/scene-utils/collect-subtree.ts +40 -0
- package/src/shadow-atlas.ts +244 -0
- package/src/ssao-buffers.ts +175 -0
- package/src/ssao-config.ts +61 -0
- package/src/ssao-data.ts +106 -0
- package/src/surface-format.ts +37 -0
- package/src/systems/active-camera.ts +116 -0
- package/src/systems/pass-selector.ts +49 -0
- package/src/systems/skin-palette-allocator.ts +294 -0
- package/src/systems/transparent-sort-config.ts +211 -0
- package/src/taa-history-store.ts +429 -0
- package/src/temporal-coverage.ts +106 -0
- package/src/temporal-frame-transaction.ts +301 -0
- package/src/temporal-inspection.ts +194 -0
- package/src/temporal-view.ts +174 -0
- package/src/tilemap/resolve-tileset-runtime.ts +72 -0
- package/src/tilemap-chunk-extract-system.ts +1307 -0
- package/src/typed-render-graph-primitives.ts +530 -0
- package/src/typed-shadow-passes.ts +195 -0
- package/src/urp-pipeline.ts +340 -0
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
// @forgeax/engine-runtime - Skylight (ambient environment light).
|
|
2
|
+
//
|
|
3
|
+
// Schema: 4 fields -- equirect (Handle<EquirectAsset>, u32-stored handle,
|
|
4
|
+
// OPTIONAL) + color (array<f32,3>, default [1,1,1] = white) + intensity (f32,
|
|
5
|
+
// default 1.0) + rotation (quaternion xyzw, default identity). feat-20260709 M2 collapsed colorR/G/B into one inline
|
|
6
|
+
// array<f32,3> column. Naming convention follows the DirectionalLight / PointLight /
|
|
7
|
+
// SpotLight family: no Component suffix (AGENTS.md rule #1).
|
|
8
|
+
//
|
|
9
|
+
// Plan-strategy D-6: Skylight component schema is registered but no
|
|
10
|
+
// independent ECS system is created. All Skylight processing happens inside
|
|
11
|
+
// RenderSystem's extract/record phases.
|
|
12
|
+
//
|
|
13
|
+
// AI user minimum spawn (AC-13, charter P4):
|
|
14
|
+
// world.spawn({ component: Skylight, data: {} }); // instant white ambient
|
|
15
|
+
//
|
|
16
|
+
// A single Skylight activates ambient lighting transparently. The `equirect`
|
|
17
|
+
// field is OPTIONAL: omit it for a constant solid-color ambient that needs NO
|
|
18
|
+
// async GPU precompute -- the engine binds a 1x1 white irradiance cube, so
|
|
19
|
+
// ambient = color * intensity * albedo is live on the very first frame (this
|
|
20
|
+
// is the fix for the downstream "scene is black until the async IBL cubemap
|
|
21
|
+
// finishes uploading" gap). Supply an equirect to upgrade to full image-based
|
|
22
|
+
// lighting (diffuse irradiance + specular prefilter); `color` * `intensity`
|
|
23
|
+
// still scales the IBL result, so both are live dynamic dials either way.
|
|
24
|
+
//
|
|
25
|
+
// feat-20260630-equirect-kind-internalized-ibl-declarative-skyligh M3 / w16:
|
|
26
|
+
// the field is `equirect: shared<EquirectAsset>` (the retired
|
|
27
|
+
// `cubemap: shared<CubeTextureAsset>` is gone). AI users declare the equirect
|
|
28
|
+
// source directly; the render-system record arm projects the cubemap + IBL
|
|
29
|
+
// chain internally and lazily (no user upload call) -- there is no
|
|
30
|
+
// uploadCubemapFromEquirect on the public surface.
|
|
31
|
+
//
|
|
32
|
+
// Edge cases handled by w18 / w19:
|
|
33
|
+
// - Multi-Skylight: first archetype hit wins, console.warn in dev+prod
|
|
34
|
+
// - intensity=0: ambient term = 0, mathematically valid, no warn
|
|
35
|
+
// - No equirect: solid-color ambient via the white fallback cube (no async)
|
|
36
|
+
|
|
37
|
+
import { defineComponent } from '@forgeax/engine-ecs';
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Skylight ambient environment light.
|
|
41
|
+
*
|
|
42
|
+
* A single Skylight entity provides ambient lighting for all StandardMaterial
|
|
43
|
+
* surfaces. Two modes share one component:
|
|
44
|
+
*
|
|
45
|
+
* - **Solid-color ambient (no equirect).** Omit `equirect` for a constant
|
|
46
|
+
* ambient = `color` * `intensity` applied immediately, with no async GPU
|
|
47
|
+
* precompute. The engine samples a built-in 1x1 white irradiance cube, so a
|
|
48
|
+
* freshly-loaded scene is lit on its first frame instead of being black
|
|
49
|
+
* until an IBL upload finishes.
|
|
50
|
+
* - **Image-based lighting (with equirect).** Supply `equirect` to upgrade to
|
|
51
|
+
* diffuse irradiance + specular prefilter IBL. The engine runs the full
|
|
52
|
+
* precompute (equirect->cubemap, irradiance convolution, prefilter mip
|
|
53
|
+
* chain, BRDF LUT) transparently inside the render-system record arm;
|
|
54
|
+
* `color` * `intensity` then scale the IBL ambient.
|
|
55
|
+
*
|
|
56
|
+
* `equirect` is an OPTIONAL `Handle<EquirectAsset>` resolved from a vite
|
|
57
|
+
* pack-index GUID via `assets.load(guid, equirectAssetKind)`. The
|
|
58
|
+
* cubemap projection is internal and idempotent: the same equirect source
|
|
59
|
+
* always resolves to the same GPU cubemap (no user upload call).
|
|
60
|
+
*
|
|
61
|
+
* `color` is the linear-space ambient tint (default white [1, 1, 1]).
|
|
62
|
+
* `intensity` is a linear multiplier (default 1.0; 0 disables ambient). Both
|
|
63
|
+
* are read every frame, so they are live dynamic dials.
|
|
64
|
+
*
|
|
65
|
+
* `rotation` is an environment-space quaternion in `[x, y, z, w]` order.
|
|
66
|
+
* The default identity quaternion leaves the source orientation unchanged;
|
|
67
|
+
* changing it rotates the IBL at sample time without rebaking the source.
|
|
68
|
+
*
|
|
69
|
+
* @example Instant white ambient (no asset, no async):
|
|
70
|
+
* world.spawn({ component: Skylight, data: {} });
|
|
71
|
+
*
|
|
72
|
+
* @example Dim warm ambient:
|
|
73
|
+
* world.spawn({ component: Skylight, data: { color: [1, 0.9, 0.8], intensity: 0.3 } }); // color is [r, g, b]
|
|
74
|
+
*
|
|
75
|
+
* @example Full IBL from an HDR equirect (declarative -- no upload call):
|
|
76
|
+
* // 1. resolve GUID from vite pack-index (see forgeax-engine-vite-plugin-pack)
|
|
77
|
+
* import { AssetGuid } from '@forgeax/engine-pack/guid';
|
|
78
|
+
* const guidRes = AssetGuid.parse('019e4a26-3c29-7420-af5d-20f2724a16b0');
|
|
79
|
+
* if (!guidRes.ok) throw guidRes.error;
|
|
80
|
+
* // 2. load the HDR equirect via the GUID-addressed pack route
|
|
81
|
+
* const hdrRes = await assets.load(guidRes.value, equirectAssetKind);
|
|
82
|
+
* if (!hdrRes.ok) throw hdrRes.error;
|
|
83
|
+
* // 3. spawn the Skylight — the equirect handle activates the full IBL path;
|
|
84
|
+
* // the cubemap + IBL precompute happen lazily inside the record arm.
|
|
85
|
+
* world.spawn({ component: Skylight, data: { equirect: hdrRes.value } });
|
|
86
|
+
*/
|
|
87
|
+
export const Skylight = defineComponent('Skylight', {
|
|
88
|
+
// The GPU equirect-to-cubemap projection is render-owned presentation
|
|
89
|
+
// state. Record/restore preserves the portable lighting controls while the
|
|
90
|
+
// render owner resolves this asset again on the target world.
|
|
91
|
+
equirect: { type: 'shared<EquirectAsset>', simulationTransient: true },
|
|
92
|
+
// color carries an explicit layer-2 default [1,1,1] (white); the array
|
|
93
|
+
// layer-3 fallback is all-zero, so the default MUST be explicit (D-5).
|
|
94
|
+
color: { type: 'array<f32, 3>', default: new Float32Array([1, 1, 1]) },
|
|
95
|
+
intensity: { type: 'f32', default: 1.0 },
|
|
96
|
+
rotation: { type: 'array<f32, 4>', default: new Float32Array([0, 0, 0, 1]) },
|
|
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 a `Handle<EquirectAsset>` resolved from a vite pack-index
|
|
177
|
+
* GUID via `engine.assets.loadByGuid<EquirectAsset>(guid)`. 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
|
+
* // equirectHandle resolved from loadByGuid<EquirectAsset> (same handle as
|
|
190
|
+
* // the Skylight).
|
|
191
|
+
* world.spawn({ component: SkyboxBackground, data: { equirect: equirectHandle } });
|
|
192
|
+
*
|
|
193
|
+
* @example Single handle shared between Skylight (IBL) and SkyboxBackground:
|
|
194
|
+
* const hdrRes = await engine.assets.loadByGuid<EquirectAsset>(guid);
|
|
195
|
+
* if (!hdrRes.ok) throw hdrRes.error;
|
|
196
|
+
* world.spawn({ component: Skylight, data: { equirect: hdrRes.value } });
|
|
197
|
+
* world.spawn({ component: SkyboxBackground, data: { equirect: hdrRes.value } });
|
|
198
|
+
*/
|
|
199
|
+
export const SkyboxBackground = defineComponent('SkyboxBackground', {
|
|
200
|
+
// The GPU skybox projection is render-owned presentation state; restore
|
|
201
|
+
// keeps the portable mode/rotation controls and lets the owner re-resolve
|
|
202
|
+
// the environment asset on the target world.
|
|
203
|
+
equirect: { type: 'shared<EquirectAsset>', simulationTransient: true },
|
|
204
|
+
mode: { type: 'f32', default: SKYBOX_MODE_CUBEMAP },
|
|
205
|
+
rotation: { type: 'array<f32, 4>', default: new Float32Array([0, 0, 0, 1]) },
|
|
206
|
+
});
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// @forgeax/engine-runtime - GlyphText component (feat-20260531-world-space-msdf-text-rendering M4 / w14).
|
|
2
|
+
//
|
|
3
|
+
// `GlyphText` is the authoring source component for world-space MSDF text
|
|
4
|
+
// (requirements AC-06 / §domain model). It carries ONLY authoring data; the
|
|
5
|
+
// glyph quad baking + MeshFilter / MeshRenderer attachment is the job of the
|
|
6
|
+
// `glyphTextLayoutSystem` (plan-strategy D-2: GlyphText is pure authoring
|
|
7
|
+
// data, baking is a system responsibility). There is NO `TextLayoutAsset`
|
|
8
|
+
// intermediate (OOS-5) -- layout output lives directly in a baked MeshAsset.
|
|
9
|
+
//
|
|
10
|
+
// Naming: single-semantic component drops the `Component` suffix
|
|
11
|
+
// (AGENTS.md §Component naming rule #1 -- Transform / Camera / GlyphText).
|
|
12
|
+
//
|
|
13
|
+
// Schema vocab:
|
|
14
|
+
// - `fontHandle: 'shared<FontAsset>'` -> `Handle<'FontAsset', 'shared'>`
|
|
15
|
+
// (u32-stored; AssetRegistry owns the FontAsset lifecycle). AI users
|
|
16
|
+
// obtain the handle via `assets.load(guid, fontAssetKind)`.
|
|
17
|
+
// - `text: 'string'` -> native JS string (UniqueRefStore-backed, same
|
|
18
|
+
// dispatch as `Name.value`).
|
|
19
|
+
// - `fontSize: 'f32'` -> layout scale applied to the FontAsset metrics.
|
|
20
|
+
// - `color: 'array<f32, 4>'` -> linear-space rgba tint (feat-20260709 M3:
|
|
21
|
+
// collapsed from four `colorR/G/B/A` scalar columns into one inline
|
|
22
|
+
// stride-4 SoA column, mirroring the DirectionalLight direction/color
|
|
23
|
+
// idiom). Explicit layer-2 default [1,1,1,1] (opaque white).
|
|
24
|
+
//
|
|
25
|
+
// charter mapping: P1 (single import surface from `@forgeax/engine-render`,
|
|
26
|
+
// co-located with `glyphTextLayoutSystem` that consumes it) + P3
|
|
27
|
+
// (machine-readable schema literal) + P5 (consistent abstraction: same
|
|
28
|
+
// `'shared<T>'` idiom as MeshFilter.assetHandle / MeshRenderer.materials).
|
|
29
|
+
|
|
30
|
+
import { defineComponent } from '@forgeax/engine-ecs';
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Glyph text authoring component (world-space MSDF text).
|
|
34
|
+
*
|
|
35
|
+
* Spawn an entity with a `GlyphText` and the `glyphTextLayoutSystem`
|
|
36
|
+
* (auto-wired by `createRenderer` / `createApp`) lays out the glyph quads,
|
|
37
|
+
* bakes a `MeshAsset`, and attaches `MeshFilter` + `MeshRenderer` on the
|
|
38
|
+
* next frame (Commands-deferred). Mutating `text` / `fontSize` / `color`
|
|
39
|
+
* re-bakes the mesh in place (plan-strategy D-1 updateMesh; registry size
|
|
40
|
+
* unchanged, AC-08).
|
|
41
|
+
*
|
|
42
|
+
* @example Spawn a world-space label:
|
|
43
|
+
* import { GlyphText } from '@forgeax/engine-render/authoring';
|
|
44
|
+
* const font = (await assets.load(fontGuid, fontAssetKind)).unwrap();
|
|
45
|
+
* world.spawn({
|
|
46
|
+
* component: GlyphText,
|
|
47
|
+
* data: { fontHandle: font, text: 'Hello', fontSize: 32,
|
|
48
|
+
* color: [1, 1, 1, 1] },
|
|
49
|
+
* });
|
|
50
|
+
*/
|
|
51
|
+
export const GlyphText = defineComponent('GlyphText', {
|
|
52
|
+
// The layout/render owner re-resolves the font asset on the target world;
|
|
53
|
+
// authoring text and style remain portable simulation state.
|
|
54
|
+
fontHandle: {
|
|
55
|
+
type: 'shared<FontAsset>',
|
|
56
|
+
default: 0 as never,
|
|
57
|
+
},
|
|
58
|
+
text: { type: 'string', default: '' },
|
|
59
|
+
fontSize: { type: 'f32', default: 16 },
|
|
60
|
+
// color carries an explicit layer-2 default [1,1,1,1] (opaque white); the
|
|
61
|
+
// array layer-3 fallback is all-zero, so the default MUST be explicit (D-5).
|
|
62
|
+
color: { type: 'array<f32, 4>', default: new Float32Array([1, 1, 1, 1]) },
|
|
63
|
+
});
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export { Atmosphere } from './atmosphere';
|
|
2
|
+
export * from './camera';
|
|
3
|
+
export * from './directional-light';
|
|
4
|
+
export {
|
|
5
|
+
Fog,
|
|
6
|
+
SKYBOX_MODE_CUBEMAP,
|
|
7
|
+
SkyboxBackground,
|
|
8
|
+
type SkyboxMode,
|
|
9
|
+
Skylight,
|
|
10
|
+
skyboxModeFromF32,
|
|
11
|
+
} from './environment';
|
|
12
|
+
export { Instances, type InstancesData } from './instances';
|
|
13
|
+
export { Layer } from './layer';
|
|
14
|
+
export * from './mesh-filter';
|
|
15
|
+
export * from './mesh-renderer';
|
|
16
|
+
export { PointLight } from './point-light';
|
|
17
|
+
export { PointLightShadow } from './point-light-shadow';
|
|
18
|
+
export { PostProcessParams } from './post-process-params';
|
|
19
|
+
export {
|
|
20
|
+
SceneInstance,
|
|
21
|
+
type SceneInstanceOverrideRecord,
|
|
22
|
+
type SceneInstanceState,
|
|
23
|
+
} from './scene-instance';
|
|
24
|
+
export { SortKey } from './sort-key';
|
|
25
|
+
export { SpotLight } from './spot-light';
|
|
26
|
+
export { SpriteAnimation } from './sprite-animation';
|
|
27
|
+
export { SpriteInstances, type SpriteInstancesData } from './sprite-instances';
|
|
28
|
+
export {
|
|
29
|
+
SPRITE_PLAYBACK_MODE_CLAMP,
|
|
30
|
+
SPRITE_PLAYBACK_MODE_LOOP,
|
|
31
|
+
type SpritePlaybackMode,
|
|
32
|
+
spritePlaybackModeFromU32,
|
|
33
|
+
} from './sprite-playback-mode';
|
|
34
|
+
export { SpriteRegionOverride } from './sprite-region-override';
|
|
35
|
+
export {
|
|
36
|
+
decodeSortScope,
|
|
37
|
+
encodeSortScope,
|
|
38
|
+
markTileLayerDirty,
|
|
39
|
+
type SortScope,
|
|
40
|
+
TileLayer,
|
|
41
|
+
type TileLayerData,
|
|
42
|
+
} from './tile-layer';
|
|
43
|
+
export { Tilemap } from './tilemap';
|
|
44
|
+
export {
|
|
45
|
+
Visibility,
|
|
46
|
+
type VisibilityState,
|
|
47
|
+
VisibilityStateValue,
|
|
48
|
+
visibilityStateFromU32,
|
|
49
|
+
} from './visibility';
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
// @forgeax/engine-render - Instances component (per-entity instanced-draw transforms).
|
|
2
|
+
//
|
|
3
|
+
// Two sources, one component (feat-20260622-chunk-gpu-instancing-sprite-tilemap
|
|
4
|
+
// / AC-09; charter P4 consistent abstraction + charter P1 progressive disclosure).
|
|
5
|
+
// The `Instances` ECS component has exactly TWO sources of `transforms` data, and
|
|
6
|
+
// AI users should hold the boundary explicitly to avoid misreading the ECS view:
|
|
7
|
+
//
|
|
8
|
+
// Source 1 (EXPLICIT, the only source that lands in ECS) — AI user opt-in.
|
|
9
|
+
// The AI user hand-attaches `Instances { transforms }` onto an entity at
|
|
10
|
+
// spawn / set time for high-performance instanced draw. `world.get(e,
|
|
11
|
+
// Instances)` returns the AI user's payload verbatim (a `Float32Array`
|
|
12
|
+
// snapshot of column-major mat4 instances; stride = 16). This is the sole
|
|
13
|
+
// code path through which `Instances` ever appears on an entity.
|
|
14
|
+
//
|
|
15
|
+
// Source 2 (TRANSPARENT, never written back into ECS) — engine record-stage
|
|
16
|
+
// fold. When the AI user spawns N independent sprite / tilemap-cell
|
|
17
|
+
// entities sharing the same (Layer.value, posZ, materialHandle) sort
|
|
18
|
+
// equivalence class, the engine record stage transparently folds the
|
|
19
|
+
// equivalent run into ONE `drawIndexed(indexCount, count)` using an
|
|
20
|
+
// INTERNAL transient buffer (see `render-system-record.ts` fold operator
|
|
21
|
+
// + `render.instancing.foldedDraws` metric, and the `RhiError
|
|
22
|
+
// 'instancing-exceeds-uniform-cap'` fallback). The fold operator does
|
|
23
|
+
// NOT auto-inject `Instances` onto those entities — `world.get(e,
|
|
24
|
+
// Instances)` on a folded entity returns `Result.err` exactly as before.
|
|
25
|
+
// The ECS view is preserved bit-for-bit (per-cell / per-sprite entity
|
|
26
|
+
// retained, query / despawn / picking unchanged); the optimisation is
|
|
27
|
+
// invisible at the component layer (charter P4: consistent abstraction —
|
|
28
|
+
// the high-performance path is opt-in via Source 1, the default spawn
|
|
29
|
+
// shape stays untouched).
|
|
30
|
+
//
|
|
31
|
+
// AI user reading this header: do NOT expect engine-side fold to materialise
|
|
32
|
+
// as an `Instances` row on your entity. Read the metric (foldedDraws) or the
|
|
33
|
+
// RhiError code to observe fold behaviour; never gate logic on a runtime
|
|
34
|
+
// `world.get(e, Instances)` lookup after spawn.
|
|
35
|
+
//
|
|
36
|
+
// Schema: 1 array<f32> field `transforms` carrying packed column-major mat4
|
|
37
|
+
// instance transforms (16 f32 per instance, stride = 16). Stride is enforced
|
|
38
|
+
// through a TWO-LAYER contract:
|
|
39
|
+
//
|
|
40
|
+
// 1. AI user set-site: spawn / `world.set` / `world.push` callers pass a
|
|
41
|
+
// `Float32Array` (or numeric array) whose `length` is a non-zero
|
|
42
|
+
// multiple of 16. The set site is the AI user's responsibility -- the
|
|
43
|
+
// engine cannot prove the column-major mat4 packing without the
|
|
44
|
+
// caller's intent.
|
|
45
|
+
// 2. RenderSystem extract entry: `render-system-extract.ts` performs a
|
|
46
|
+
// defensive `transforms.length % 16 === 0` check on every
|
|
47
|
+
// `world.get(e, Instances).transforms` snapshot at frame extract time;
|
|
48
|
+
// violations route a structured `InstanceTransformsStrideMismatchError`
|
|
49
|
+
// (`code: 'instance-transforms-stride-mismatch'`,
|
|
50
|
+
// `detail: { actualLength, expectedStride: 16 }`) through the World
|
|
51
|
+
// Layer-3 ErrorHandler and the renderable is skipped (fail-fast: the
|
|
52
|
+
// malformed length never reaches the GPU upload path).
|
|
53
|
+
//
|
|
54
|
+
// feat-20260515-buffer-array-vocab-collapse M3 / w16 (decision §2.3 stride
|
|
55
|
+
// responsibility migration): the legacy component-level
|
|
56
|
+
// stride-declaration option (`{ transforms: 16 }` keyed on the retired
|
|
57
|
+
// per-component stride defineComponent option key) was retired because:
|
|
58
|
+
// - The ECS layer no longer carries any per-component stride schema (M2 /
|
|
59
|
+
// w9 dropped the option from `DefineComponentOptions` -- the SSOT
|
|
60
|
+
// moved to the RenderSystem entry + AI user set site).
|
|
61
|
+
// - Centralising the check at the consumer (RenderSystem extract) rather
|
|
62
|
+
// than the producer (ECS write paths) lets the GPU upload path stay
|
|
63
|
+
// trust-the-snapshot; AI users get one structured error per offending
|
|
64
|
+
// frame rather than one per write.
|
|
65
|
+
//
|
|
66
|
+
// feat-20260514-ecs-children-instances-managed-buffer-array M3 / w14:
|
|
67
|
+
// migrated from the legacy `{ buffer: 'ref', count: 'u32' }` pair (which
|
|
68
|
+
// cross-coupled with the now-deleted `AssetRegistry.createInstancedBuffer`
|
|
69
|
+
// pipeline + the `InstancedBufferAsset` POD) to the ECS-managed array path.
|
|
70
|
+
// Resize is a `world.push(e, Instances, 'transforms', value)` away (one f32
|
|
71
|
+
// at a time) plus a future `world.grow` if a bulk-resize affordance is
|
|
72
|
+
// added.
|
|
73
|
+
//
|
|
74
|
+
// Storage buffer cap-gate (D-5 OOS-08 follow-up):
|
|
75
|
+
// - The runtime RenderSystem consumer (`render-system-record.ts`) checks
|
|
76
|
+
// `device.caps.storageBuffer` before binding the per-entity transforms;
|
|
77
|
+
// `caps.storageBuffer === false` (backend lacking storage buffer support,
|
|
78
|
+
// e.g. rhi-wgpu webgl backend) routes a `RhiError` ('feature-not-enabled').
|
|
79
|
+
// A future loop owns the per-draw fallback path.
|
|
80
|
+
//
|
|
81
|
+
// Group transform chained semantics (charter proposition 5 mental migration):
|
|
82
|
+
// - When the same entity carries both `Transform` (entity_world) and
|
|
83
|
+
// `Instances` (per-instance local transforms), the vertex shader
|
|
84
|
+
// composes per instance:
|
|
85
|
+
//
|
|
86
|
+
// world_position[i] = entity_world * instances_local[i] * vertex_position
|
|
87
|
+
//
|
|
88
|
+
// - `Instances.transforms[i*16..i*16+15]` is interpreted as a local-space
|
|
89
|
+
// transform under the entity, exactly like a child entity's `Transform`
|
|
90
|
+
// under `ChildOf { parent }` in the hierarchy system. AI users reuse
|
|
91
|
+
// the `parent x local` intuition without a new concept. Set the
|
|
92
|
+
// entity's `Transform` to identity to make `instances_local[i]`
|
|
93
|
+
// directly world-space.
|
|
94
|
+
//
|
|
95
|
+
// 4-segment minimum contract (read this header before reaching for
|
|
96
|
+
// the source body):
|
|
97
|
+
//
|
|
98
|
+
// ===== (a) single-component import + spawn example =====
|
|
99
|
+
//
|
|
100
|
+
// import {
|
|
101
|
+
// createRenderer,
|
|
102
|
+
// createPrimitiveMesh,
|
|
103
|
+
// MeshFilter, MeshRenderer, Transform,
|
|
104
|
+
// Instances, type InstancesData,
|
|
105
|
+
// } from '@forgeax/engine-render';
|
|
106
|
+
//
|
|
107
|
+
// // 1 entity rendering N instanced cubes (16N packed f32, column-major mat4):
|
|
108
|
+
// const transforms = new Float32Array(N * 16);
|
|
109
|
+
// // ... fill column-major mat4 columns per instance ...
|
|
110
|
+
// world.spawn(
|
|
111
|
+
// { component: MeshFilter, data: { assetHandle: cubeMesh } },
|
|
112
|
+
// { component: MeshRenderer, data: {} },
|
|
113
|
+
// { component: Instances, data: { transforms } },
|
|
114
|
+
// );
|
|
115
|
+
//
|
|
116
|
+
// ===== (b) packed mat4 layout =====
|
|
117
|
+
//
|
|
118
|
+
// const transforms = new Float32Array(N * 16); // column-major mat4 per instance
|
|
119
|
+
// // instance i occupies floats [i*16 .. i*16+15]:
|
|
120
|
+
// // [m00 m10 m20 m30 <- column 0
|
|
121
|
+
// // m01 m11 m21 m31 <- column 1
|
|
122
|
+
// // m02 m12 m22 m32 <- column 2
|
|
123
|
+
// // m03 m13 m23 m33] <- column 3 (translation in m03/m13/m23)
|
|
124
|
+
//
|
|
125
|
+
// `transforms.length` MUST be a non-zero multiple of 16. AI users gate at
|
|
126
|
+
// the set / push site; the RenderSystem extract entry holds the second
|
|
127
|
+
// defensive (AC-06: detail carries `{ expectedStride: 16, actualLength }`).
|
|
128
|
+
// The instance count is the live snapshot length / 16.
|
|
129
|
+
//
|
|
130
|
+
// ===== (c) error code consumption (typed property access, no message regex) =====
|
|
131
|
+
//
|
|
132
|
+
// // Stride violation surfaces through the engine-ecs Layer-3 ErrorHandler
|
|
133
|
+
// // when extract reads a malformed snapshot:
|
|
134
|
+
// // on('error', (err) => {
|
|
135
|
+
// // if (err.code === 'instance-transforms-stride-mismatch') {
|
|
136
|
+
// // // err.detail.expectedStride === 16
|
|
137
|
+
// // // err.detail.actualLength === <user-supplied length>
|
|
138
|
+
// // }
|
|
139
|
+
// // });
|
|
140
|
+
// //
|
|
141
|
+
// // RenderSystem cap-gate (D-5) -> RhiError 'feature-not-enabled' on the
|
|
142
|
+
// // RhiErrorListenerRegistry channel:
|
|
143
|
+
// // on('error', (err) => {
|
|
144
|
+
// // if (err.code === 'feature-not-enabled') {
|
|
145
|
+
// // console.warn(err.expected, err.hint);
|
|
146
|
+
// // }
|
|
147
|
+
// // });
|
|
148
|
+
//
|
|
149
|
+
// charter mapping: proposition 1 (single import surface
|
|
150
|
+
// `import { Instances, type InstancesData } from '@forgeax/engine-render'`);
|
|
151
|
+
// proposition 3 (machine-readable schema > prose:
|
|
152
|
+
// `{ transforms: 'array<f32>' }` is the SSOT, stride 16 documented here +
|
|
153
|
+
// enforced at the RenderSystem entry);
|
|
154
|
+
// proposition 4 (explicit failure: stride violation routes a structured
|
|
155
|
+
// EcsError, not a silent half-row); proposition 5 (consistent abstraction:
|
|
156
|
+
// Instances mirrors Children -- both ride the array-vocab path).
|
|
157
|
+
//
|
|
158
|
+
// Anchors: requirements §AC-06 (stride 16 + RenderSystem upload path);
|
|
159
|
+
// plan-strategy §2.3 (stride responsibility migration to RenderSystem entry
|
|
160
|
+
// defensive + AI user set site) + §3.3 stride error path; plan-decisions
|
|
161
|
+
// D-1 / D-5.
|
|
162
|
+
// OOS-09 (no addChild Commands API) does not apply here; OOS-01 (no
|
|
163
|
+
// dangling-entity sweep) does not apply (Instances stores f32 not entity).
|
|
164
|
+
|
|
165
|
+
import { defineComponent } from '@forgeax/engine-ecs';
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Per-entity instanced-draw transforms (ECS component).
|
|
169
|
+
*
|
|
170
|
+
* Carries a variable-length `array<f32>` of column-major mat4 instance
|
|
171
|
+
* transforms (16 f32 per instance, stride = 16; documented above and
|
|
172
|
+
* enforced at the RenderSystem extract entry, NOT at the ECS write paths).
|
|
173
|
+
*
|
|
174
|
+
* The runtime RenderSystem consumer materialises a fresh `Float32Array`
|
|
175
|
+
* snapshot on every `world.get(e, Instances).transforms` access (D-4
|
|
176
|
+
* no-cache), reads the live count from the snapshot's `length`, and
|
|
177
|
+
* uploads the bytes to a per-entity GPU storage buffer in the record stage
|
|
178
|
+
* (`render-system-record.ts`).
|
|
179
|
+
*
|
|
180
|
+
* @example Spawn an entity rendering 10000 instanced cubes:
|
|
181
|
+
* const transforms = new Float32Array(10000 * 16);
|
|
182
|
+
* // ... fill column-major mat4 columns ...
|
|
183
|
+
* world.spawn(
|
|
184
|
+
* { component: MeshFilter, data: { assetHandle: cubeMesh } },
|
|
185
|
+
* { component: MeshRenderer, data: { ... } },
|
|
186
|
+
* { component: Instances, data: { transforms } },
|
|
187
|
+
* );
|
|
188
|
+
*/
|
|
189
|
+
export const Instances = defineComponent('Instances', {
|
|
190
|
+
transforms: { type: 'array<f32>' },
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Type-level hint for `data` at the `Instances` spawn site.
|
|
195
|
+
*
|
|
196
|
+
* The runtime ECS column shape for `array<f32>` accepts a `Float32Array`
|
|
197
|
+
* payload at spawn / set time (the bytes are copied into the BufferPool
|
|
198
|
+
* slot). The `transforms` field is documented as `Float32Array` here so
|
|
199
|
+
* AI-user IDE autocomplete picks up the typed-array shape.
|
|
200
|
+
*
|
|
201
|
+
* @example
|
|
202
|
+
* import type { InstancesData } from '@forgeax/engine-render';
|
|
203
|
+
* const data: InstancesData = { transforms: new Float32Array(N * 16) };
|
|
204
|
+
*/
|
|
205
|
+
export type InstancesData = {
|
|
206
|
+
readonly transforms: Float32Array;
|
|
207
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// @forgeax/engine-render - Layer (render-order layer index, signed 32-bit).
|
|
2
|
+
//
|
|
3
|
+
// Schema: 1 i32 column (value). Signed two's complement so negatives travel
|
|
4
|
+
// through the spawn payload unchanged — background sprites live at negative
|
|
5
|
+
// values (e.g. -100), the default game layer at 0, foreground at 100, UI at
|
|
6
|
+
// 1000. Layer is consumed at sort time by `transparent-sort.ts` (M-3 w23)
|
|
7
|
+
// as the primary key in the (layer asc, sortValue asc) composite ordering.
|
|
8
|
+
//
|
|
9
|
+
// Naming convention: bare entity name (no Component suffix; single-semantic
|
|
10
|
+
// component idiom aligned with Bevy ECS conventions — Transform / Camera /
|
|
11
|
+
// DirectionalLight follow the same shape, see AGENTS.md §Component naming).
|
|
12
|
+
//
|
|
13
|
+
// Layer is a generic ECS renderer component — NOT a 2D-only special. 3D
|
|
14
|
+
// entities may also carry Layer to bias their bucket placement (charter
|
|
15
|
+
// P4 consistent abstraction: same component drives both pipelines).
|
|
16
|
+
//
|
|
17
|
+
// AC-18 path (1): an entity spawned without an explicit Layer reads back
|
|
18
|
+
// 0 via the existing 4-layer spawn fallback chain
|
|
19
|
+
// (feat-20260517-spawn-default-fallback). This feat does NOT introduce a
|
|
20
|
+
// fifth fallback layer; the silent default flows through layer-3
|
|
21
|
+
// `typeDefault('i32') === 0`.
|
|
22
|
+
//
|
|
23
|
+
// @derives defineComponent factory (packages/ecs/src/component.ts) — i32
|
|
24
|
+
// is a legacy scalar type; its intrinsic properties (byteSize / viewCtor
|
|
25
|
+
// / storage) live in TYPE_METADATA['i32'] (feat-20260602 M1).
|
|
26
|
+
// @reuses spawn 4-layer fallback chain (feat-20260517-spawn-default-fallback)
|
|
27
|
+
// — layer-3 typeDefault('i32') returns 0, no fifth layer.
|
|
28
|
+
//
|
|
29
|
+
// charter mapping: F1 (single-import barrel discovery — Layer joins
|
|
30
|
+
// Transform / MeshFilter / MeshRenderer / Camera / DirectionalLight)
|
|
31
|
+
// + P3 (explicit default — 0 surfaces as a read-back value, not undefined)
|
|
32
|
+
// + P4 (consistent abstraction — Layer is a generic render component, not
|
|
33
|
+
// a 2D-only special).
|
|
34
|
+
|
|
35
|
+
import { defineComponent } from '@forgeax/engine-ecs';
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Render-order layer index.
|
|
39
|
+
*
|
|
40
|
+
* Convention (non-binding; conveys intent, not enforced):
|
|
41
|
+
* - negative (e.g. -100): background layers (sky / parallax tiles).
|
|
42
|
+
* - 0: default game layer.
|
|
43
|
+
* - positive (e.g. 100): foreground layers (overlays, FX).
|
|
44
|
+
* - 1000+: UI / HUD.
|
|
45
|
+
*
|
|
46
|
+
* Signed i32 (two's complement, range \u00b12\u00b3\u00b9). Negatives round-trip
|
|
47
|
+
* through the spawn payload unchanged — no schema-layer mutate. i32 lives in
|
|
48
|
+
* the CPU sort path (transparent-sort.ts M-3 w23); no GPU-side stride
|
|
49
|
+
* compatibility risk.
|
|
50
|
+
*
|
|
51
|
+
* @example Minimal spawn (defaults to game layer 0):
|
|
52
|
+
* world.spawn({ component: Layer, data: {} }); // yields value=0
|
|
53
|
+
*
|
|
54
|
+
* @example Spawn 4 sprites across the conventional layer band:
|
|
55
|
+
* world.spawn({ component: Layer, data: { value: -100 } }); // background
|
|
56
|
+
* world.spawn({ component: Layer, data: { value: 0 } }); // default
|
|
57
|
+
* world.spawn({ component: Layer, data: { value: 100 } }); // foreground
|
|
58
|
+
* world.spawn({ component: Layer, data: { value: 1000 } }); // UI
|
|
59
|
+
*
|
|
60
|
+
* @example Spawn payload omitting Layer — the 4-layer fallback fills 0:
|
|
61
|
+
* const e = world.spawn(
|
|
62
|
+
* { component: Transform, data: { pos: [0, 0, 0],
|
|
63
|
+
* quat: [0, 0, 0, 1], scale: [1, 1, 1] } },
|
|
64
|
+
* );
|
|
65
|
+
* // Layer is not on the entity; query joins must check membership.
|
|
66
|
+
*/
|
|
67
|
+
export const Layer = defineComponent('Layer', {
|
|
68
|
+
value: { type: 'i32', default: 0 },
|
|
69
|
+
});
|