@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,106 @@
|
|
|
1
|
+
// @forgeax/engine-runtime - SpriteRegionOverride (per-entity UV region
|
|
2
|
+
// override, sprite-only).
|
|
3
|
+
//
|
|
4
|
+
// Schema: 1 fixed-length array column `region: 'array<f32, 4>'` carrying a
|
|
5
|
+
// packed UV sub-rectangle `[uMin, vMin, uW, vH]`. The fixed `4` length is
|
|
6
|
+
// enforced at compile time by the ECS schema-vocab keyword
|
|
7
|
+
// `'array<T, N>'` (D-6: prefer compile-time enforcement over runtime
|
|
8
|
+
// fail-fast for length-bound contracts).
|
|
9
|
+
//
|
|
10
|
+
// Why an entity-side override component instead of a render parameter on
|
|
11
|
+
// MaterialRenderer? Plan-strategy section 1 / requirements section 5
|
|
12
|
+
// constraint #1 (Pipeline Isolation R1, M1 ssot): `AssetRegistry` stays
|
|
13
|
+
// append-only / read-only and `MaterialRenderer` schema is frozen.
|
|
14
|
+
// Per-entity render-parameter overrides ride the same rail as Layer /
|
|
15
|
+
// SortKey — one ECS column per entity, read at extract time, never
|
|
16
|
+
// flowing back to the asset.
|
|
17
|
+
//
|
|
18
|
+
// Sprite-only consumption (requirements section 5 constraint #2 + section
|
|
19
|
+
// 7 boundary line 1): `render-system-extract` reads this component ONLY
|
|
20
|
+
// inside the sprite bucket branch (`pipelineTag === 'sprite'` plus the
|
|
21
|
+
// asset-side sprite discriminant). Opaque (`unlit` / `standard`) buckets
|
|
22
|
+
// ignore the column even when the entity happens to carry it; the M3
|
|
23
|
+
// T-15 grep gate
|
|
24
|
+
// (`packages/runtime/src/__tests__/sprite-only-isolation-grep-gate.test.ts`)
|
|
25
|
+
// asserts this file contains zero substring matches against the asset
|
|
26
|
+
// discriminant identifier as a structural lock (charter P5 producer /
|
|
27
|
+
// consumer separation: the component owner never names the asset
|
|
28
|
+
// discriminant directly).
|
|
29
|
+
//
|
|
30
|
+
// Naming: bare `SpriteRegionOverride` (no `Component` suffix per
|
|
31
|
+
// AGENTS.md section Component naming "Single-semantic components drop
|
|
32
|
+
// the Component suffix"). The `Sprite` prefix is intentional — 3D UV
|
|
33
|
+
// region animation lands in a separate component (e.g. future
|
|
34
|
+
// `MaterialRegionOverride`) per OOS-01 to avoid premature 3D
|
|
35
|
+
// generalisation. Plan-strategy section 8 naming convention pins the
|
|
36
|
+
// prefix to make the AC-11 grep gate trivially decidable.
|
|
37
|
+
//
|
|
38
|
+
// @derives `defineComponent` factory (packages/ecs/src/component.ts) —
|
|
39
|
+
// `'array<f32, 4>'` is on the `SchemaVocabKeyword` whitelist (line ~94
|
|
40
|
+
// `array<${ManagedArrayElementType}, ${number}>`).
|
|
41
|
+
// @consumes M3 T-16 (`render-system-extract.ts` sprite bucket branch
|
|
42
|
+
// reads override into `paramSnapshot.region`, post-M3 feat-20260625
|
|
43
|
+
// ablation -- the pre-ablation per-entity hop through the snapshot
|
|
44
|
+
// POD layer collapsed into the generic paramSchema-driven path).
|
|
45
|
+
// @produces M4 T-23 (`spriteAnimationTickSystem` writes per-frame UV
|
|
46
|
+
// slice into `region`).
|
|
47
|
+
//
|
|
48
|
+
// charter mapping: F1 (single-import barrel discovery — joins Layer /
|
|
49
|
+
// SortKey / Transform / SpriteAnimation under a single
|
|
50
|
+
// `from '@forgeax/engine-render'`); P3 (compile-time length=4 lock
|
|
51
|
+
// surfaces mismatched payloads at the TS edge before the column write
|
|
52
|
+
// path observes them); P4 (consistent abstraction — same per-entity
|
|
53
|
+
// override shape AI users already learned for Layer / SortKey).
|
|
54
|
+
//
|
|
55
|
+
// Anchors: plan-strategy section 2 D-6 + section 3.1 SRO + section 4
|
|
56
|
+
// risk R-SCHEMA-2 reaction; plan-tasks.json T-11; research F-5;
|
|
57
|
+
// requirements section AC-01 + section 2.4 + section 5 constraint #2.
|
|
58
|
+
|
|
59
|
+
import { defineComponent } from '@forgeax/engine-ecs';
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Per-entity sprite UV region override (sprite-only).
|
|
63
|
+
*
|
|
64
|
+
* Carries a fixed-length `Float32Array(4)` of `[uMin, vMin, uW, vH]` that
|
|
65
|
+
* `render-system-extract` reads in the sprite bucket branch and writes
|
|
66
|
+
* into `paramSnapshot.region`, replacing the asset-side region for
|
|
67
|
+
* this entity only (feat-20260625 M3 ablation: the prior per-entity POD
|
|
68
|
+
* indirection collapsed into the generic paramSchema-driven snapshot).
|
|
69
|
+
* Opaque buckets ignore this component; the AC-11 grep gate keeps the
|
|
70
|
+
* producer / consumer separation structural (this file never names the
|
|
71
|
+
* asset-side sprite discriminant identifier).
|
|
72
|
+
*
|
|
73
|
+
* Pair with `SpriteAnimation` to drive the override per frame
|
|
74
|
+
* (sprite-animation-tick system, M4 T-23). Standalone use (manual region
|
|
75
|
+
* override without animation) is also supported — set the column once and
|
|
76
|
+
* the next extract picks up the new value.
|
|
77
|
+
*
|
|
78
|
+
* Schema-vocab keyword `'array<f32, 4>'` (D-6) — fixed-length 4 is the
|
|
79
|
+
* compile-time enforcement axis. `Float32Array` payloads with length !== 4
|
|
80
|
+
* round-trip fewer / more bytes per the underlying BufferPool slot, but
|
|
81
|
+
* the slot is sized at schema registration time; AI users keep the
|
|
82
|
+
* payload exactly four-floats wide.
|
|
83
|
+
*
|
|
84
|
+
* @example Spawn a sprite entity that displays the right half of an atlas:
|
|
85
|
+
* import { MeshFilter, MeshRenderer } from '@forgeax/engine-render';
|
|
86
|
+
* import { SpriteRegionOverride } from '@forgeax/engine-render/authoring';
|
|
87
|
+
* import { Transform } from '@forgeax/engine-scene';
|
|
88
|
+
* import { createPrimitiveMesh } from '@forgeax/engine-geometry';
|
|
89
|
+
* const quadMesh = world.internSharedRef(createPrimitiveMesh('quad').unwrap());
|
|
90
|
+
*
|
|
91
|
+
* world.spawn(
|
|
92
|
+
* { component: Transform, data: { pos: [0, 0, 0],
|
|
93
|
+
* quat: [0, 0, 0, 1], scale: [1, 1, 1] } },
|
|
94
|
+
* { component: MeshFilter, data: { assetHandle: quadMesh } },
|
|
95
|
+
* { component: MeshRenderer, data: { materials: [spriteMaterial] } },
|
|
96
|
+
* { component: SpriteRegionOverride,
|
|
97
|
+
* data: { region: new Float32Array([0.5, 0, 0.5, 1]) } },
|
|
98
|
+
* );
|
|
99
|
+
*
|
|
100
|
+
* @example Update the override at runtime (e.g. flip-frame test):
|
|
101
|
+
* world.set(entity, SpriteRegionOverride,
|
|
102
|
+
* { region: new Float32Array([0, 0, 1, 1]) }).unwrap();
|
|
103
|
+
*/
|
|
104
|
+
export const SpriteRegionOverride = defineComponent('SpriteRegionOverride', {
|
|
105
|
+
region: { type: 'array<f32, 4>' },
|
|
106
|
+
});
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
// @forgeax/engine-runtime - TileLayer (one render layer of a Tilemap).
|
|
2
|
+
//
|
|
3
|
+
// Schema (4 fields):
|
|
4
|
+
// tiles array<u32> per-cell tile id (packed Tiled .tmj wire form);
|
|
5
|
+
// length == parent.Tilemap.cols * rows.
|
|
6
|
+
// layerOrder i32 render-order key (higher = drawn on top).
|
|
7
|
+
// dirty u8 0 means clean, non-zero means dirty - the next
|
|
8
|
+
// tilemap-chunk-extract-system pass rebuilds derived
|
|
9
|
+
// per-cell entities for this layer.
|
|
10
|
+
// sortScope u8 (TS: 0 = 'layer' (default) - terrain semantics:
|
|
11
|
+
// closed every derived entity in this
|
|
12
|
+
// 'layer' | layer shares one Layer.value
|
|
13
|
+
// 'per-cell' (layerOrder << 20), so the
|
|
14
|
+
// union) whole layer Y-sorts as a single
|
|
15
|
+
// bucket. AI users grep
|
|
16
|
+
// `sortScope: 'layer'` to confirm.
|
|
17
|
+
// 1 = 'per-cell' - object semantics: each derived
|
|
18
|
+
// entity carries its own foot-Y
|
|
19
|
+
// key; preserves per-cell entity
|
|
20
|
+
// derivation for Y-interleave
|
|
21
|
+
// with sprite entities sharing
|
|
22
|
+
// the same Layer.value.
|
|
23
|
+
//
|
|
24
|
+
// Storage rationale (D-V-3 R-NEW-1 fallback / round-2): ECS schema does not
|
|
25
|
+
// yet support `values: ['layer', 'per-cell']` literal-union constraints
|
|
26
|
+
// on a `'string'` column, so the on-disk shape is `u8` (0/1) but every
|
|
27
|
+
// AI-facing TS surface (`TileLayerData.sortScope`) is the closed
|
|
28
|
+
// `'layer' | 'per-cell'` string union. The bridge functions
|
|
29
|
+
// `encodeSortScope` / `decodeSortScope` are the SSOT for the two-way
|
|
30
|
+
// mapping (charter F1 — single grep target).
|
|
31
|
+
//
|
|
32
|
+
// Each TileLayer entity attaches to a Tilemap entity via ChildOf (the parent
|
|
33
|
+
// field carries the Tilemap entity). M0 supports multiple TileLayer entities
|
|
34
|
+
// per Tilemap (each rendered as an independent z-ordered layer).
|
|
35
|
+
//
|
|
36
|
+
// charter mapping: F1 (single-import barrel + single grep target for
|
|
37
|
+
// `sortScope`), P1 (progressive disclosure — `'layer'` / `'per-cell'`
|
|
38
|
+
// reads directly without a magic-number table), P3 (dirty flag is
|
|
39
|
+
// explicit - silent re-extraction is forbidden), P4 (handle-free row
|
|
40
|
+
// schema mirrors MeshFilter / MeshRenderer conventions).
|
|
41
|
+
|
|
42
|
+
import { defineComponent, type EcsError, type EntityHandle, type World } from '@forgeax/engine-ecs';
|
|
43
|
+
import type { Result } from '@forgeax/engine-types';
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Closed string-literal union for the TileLayer.sortScope field. AI users
|
|
47
|
+
* grep `sortScope` and land on this single SSOT type alias; switch
|
|
48
|
+
* statements over this type are exhaustive without a default arm.
|
|
49
|
+
*
|
|
50
|
+
* - 'layer' - terrain semantics; whole layer shares one Layer.value
|
|
51
|
+
* bucket and Y-sorts together (chunkIndex is folded into 0).
|
|
52
|
+
* - 'per-cell' - object semantics; each derived entity gets its own
|
|
53
|
+
* chunkIndex tiebreak so it can Y-interleave with
|
|
54
|
+
* sprite entities carrying the same Layer.value (e.g. a
|
|
55
|
+
* player sprite riding the same SPRITE_LAYER_VALUE).
|
|
56
|
+
*/
|
|
57
|
+
export type SortScope = 'layer' | 'per-cell';
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Bridge: `SortScope` -> on-disk u8. SSOT for the encoding (`'layer'` -> 0,
|
|
61
|
+
* `'per-cell'` -> 1). The compile-time exhaustive switch guards against
|
|
62
|
+
* silent drift if the union ever grows; adding a new literal here without
|
|
63
|
+
* adding its arm fails typecheck (charter P3 — closed unions never default).
|
|
64
|
+
*/
|
|
65
|
+
export function encodeSortScope(scope: SortScope): 0 | 1 {
|
|
66
|
+
switch (scope) {
|
|
67
|
+
case 'layer':
|
|
68
|
+
return 0;
|
|
69
|
+
case 'per-cell':
|
|
70
|
+
return 1;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Bridge: on-disk u8 -> `SortScope`. Defaults to `'layer'` for any value
|
|
76
|
+
* outside `{0, 1}` (defensive — the column is typed `u8` so out-of-range
|
|
77
|
+
* values can only appear if a future schema migration loosens the bound;
|
|
78
|
+
* the default preserves terrain semantics which is the safer of the two).
|
|
79
|
+
*/
|
|
80
|
+
export function decodeSortScope(raw: number | undefined): SortScope {
|
|
81
|
+
return raw === 1 ? 'per-cell' : 'layer';
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Public TileLayer field shape (`world.spawn({ component: TileLayer, data:
|
|
86
|
+
* { ... } })` payload). `sortScope` is the closed string union surfaced to
|
|
87
|
+
* AI users; the runtime row encodes it as `u8` via `encodeSortScope` at
|
|
88
|
+
* spawn time so on-disk storage stays compact.
|
|
89
|
+
*
|
|
90
|
+
* Treat as the `TileLayer` data SSOT — `defineComponent` schema below
|
|
91
|
+
* mirrors it field-for-field with the bridge `sortScope: u8` in place of
|
|
92
|
+
* the union literal.
|
|
93
|
+
*/
|
|
94
|
+
export interface TileLayerData {
|
|
95
|
+
readonly tiles: Uint32Array;
|
|
96
|
+
readonly layerOrder?: number;
|
|
97
|
+
readonly dirty?: number;
|
|
98
|
+
readonly sortScope?: SortScope;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* TileLayer component (M0 baseline rebuild + round-2 sortScope rename).
|
|
103
|
+
*
|
|
104
|
+
* AI users typically spawn a TileLayer + ChildOf pair pointing at an
|
|
105
|
+
* existing Tilemap entity:
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* const tilesArray = new Uint32Array(cols * rows);
|
|
109
|
+
* tilesArray[5 * cols + 7] = 1; // tile id 1 at cell (7, 5)
|
|
110
|
+
* world.spawn(
|
|
111
|
+
* { component: TileLayer, data: { tiles: tilesArray, layerOrder: 0 } },
|
|
112
|
+
* { component: ChildOf, data: { parent: tilemapEntity } },
|
|
113
|
+
* );
|
|
114
|
+
*
|
|
115
|
+
* Object-layer variant (Y-interleave with sprite entities):
|
|
116
|
+
*
|
|
117
|
+
* > NOTE: schema storage is `u8` (ECS schema does not support
|
|
118
|
+
* > string-literal-union column constraints; see R-NEW-2). The
|
|
119
|
+
* > AI-user surface is the closed `SortScope` string union, but
|
|
120
|
+
* > `world.spawn` requires the numeric encoding — pass through
|
|
121
|
+
* > `encodeSortScope('per-cell')` rather than the literal string.
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* world.spawn(
|
|
125
|
+
* { component: TileLayer, data: {
|
|
126
|
+
* tiles: objectTiles,
|
|
127
|
+
* layerOrder: 1000,
|
|
128
|
+
* sortScope: encodeSortScope('per-cell'),
|
|
129
|
+
* } },
|
|
130
|
+
* { component: ChildOf, data: { parent: tilemapEntity } },
|
|
131
|
+
* );
|
|
132
|
+
*
|
|
133
|
+
* Defaults: `layerOrder = 0`, `dirty = 0`, `sortScope = 'layer'` (stored
|
|
134
|
+
* as `u8 = 0`, i.e. `encodeSortScope('layer')`). `tiles` has no default -
|
|
135
|
+
* AI users supply the per-cell array at spawn time. To trigger a re-build
|
|
136
|
+
* after mutating tiles in place, call `markTileLayerDirty(world, layer)`.
|
|
137
|
+
*/
|
|
138
|
+
export const TileLayer = defineComponent('TileLayer', {
|
|
139
|
+
tiles: { type: 'array<u32>' },
|
|
140
|
+
layerOrder: { type: 'i32', default: 0 },
|
|
141
|
+
dirty: { type: 'u8', default: 0 },
|
|
142
|
+
sortScope: { type: 'u8', default: 0 },
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Mark a TileLayer entity dirty so the next `tilemapChunkExtractSystem`
|
|
147
|
+
* pass purges and re-spawns its derived per-cell entities. Use this after
|
|
148
|
+
* mutating `TileLayer.tiles` (e.g. an in-place patch via a column view).
|
|
149
|
+
*
|
|
150
|
+
* Returns the underlying ECS write result - on `err` branch the caller
|
|
151
|
+
* can read `.code` to recover (`'stale-entity'` if the layer was
|
|
152
|
+
* despawned, `'component-not-present'` if the entity is missing the
|
|
153
|
+
* TileLayer column; both kebab-case literals are members of the closed
|
|
154
|
+
* `EcsErrorCode` union).
|
|
155
|
+
*/
|
|
156
|
+
export function markTileLayerDirty(
|
|
157
|
+
world: World,
|
|
158
|
+
layerEntity: EntityHandle,
|
|
159
|
+
): Result<void, EcsError> {
|
|
160
|
+
return world.set(layerEntity, TileLayer, { dirty: 1 });
|
|
161
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// @forgeax/engine-runtime - Tilemap (grid + tileset reference).
|
|
2
|
+
//
|
|
3
|
+
// Schema (5 fields):
|
|
4
|
+
// cols u32 total grid columns
|
|
5
|
+
// rows u32 total grid rows
|
|
6
|
+
// tileSize array<f32, 2> per-cell world [width, height] (default [1, 1];
|
|
7
|
+
// feat-20260709 M3: collapsed from the tileSizeX
|
|
8
|
+
// / tileSizeY scalar pair into one inline column)
|
|
9
|
+
// chunkSize u32 per-chunk axis-length in cells (default 16)
|
|
10
|
+
// tileset string durable TilesetAsset GUID
|
|
11
|
+
//
|
|
12
|
+
// Naming: single-semantic Tilemap (AGENTS.md §Component naming drops
|
|
13
|
+
// `Component` suffix). One Tilemap entity per grid; TileLayer entities
|
|
14
|
+
// attach via ChildOf relationship and supply the per-cell tile id array
|
|
15
|
+
// for a single render-layer.
|
|
16
|
+
//
|
|
17
|
+
// charter mapping: F1 (single-import barrel from `@forgeax/engine-runtime`),
|
|
18
|
+
// P1 (progressive disclosure - defaults cover the common case), P4 (durable
|
|
19
|
+
// asset identity stays separate from World-local handles).
|
|
20
|
+
|
|
21
|
+
import { defineComponent } from '@forgeax/engine-ecs';
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Tilemap component (M0 baseline rebuild).
|
|
25
|
+
*
|
|
26
|
+
* A Tilemap entity carries grid metadata + a single durable `tileset` GUID. The
|
|
27
|
+
* actual per-cell tile id array lives on attached `TileLayer` entities
|
|
28
|
+
* (one per render layer; ChildOf points back to the Tilemap entity).
|
|
29
|
+
*
|
|
30
|
+
* Defaults:
|
|
31
|
+
* - `tileSize = [1, 1]` (unit-cell world coordinates).
|
|
32
|
+
* - `chunkSize = 16` (tilemap-chunk-extract-system chunks 16x16 cells).
|
|
33
|
+
*
|
|
34
|
+
* @example Spawn a 32x32 unit-cell Tilemap referencing a TilesetAsset:
|
|
35
|
+
* const tilemap = world.spawn(
|
|
36
|
+
* { component: Tilemap, data: { cols: 32, rows: 32, tileset } },
|
|
37
|
+
* { component: Transform, data: {} },
|
|
38
|
+
* ).unwrap();
|
|
39
|
+
*/
|
|
40
|
+
export const Tilemap = defineComponent('Tilemap', {
|
|
41
|
+
cols: { type: 'u32', default: 0 },
|
|
42
|
+
rows: { type: 'u32', default: 0 },
|
|
43
|
+
// tileSize carries an explicit layer-2 default [1,1] (unit cell); the array
|
|
44
|
+
// layer-3 fallback is all-zero, so the default MUST be explicit (D-5).
|
|
45
|
+
tileSize: { type: 'array<f32, 2>', default: new Float32Array([1, 1]) },
|
|
46
|
+
chunkSize: { type: 'u32', default: 16 },
|
|
47
|
+
tileset: { type: 'string' },
|
|
48
|
+
});
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { defineComponent } from '@forgeax/engine-ecs';
|
|
2
|
+
|
|
3
|
+
/** Numeric labels stored by the public Visibility enum field. */
|
|
4
|
+
export const VisibilityStateValue = Object.freeze({
|
|
5
|
+
inherited: 0,
|
|
6
|
+
hidden: 1,
|
|
7
|
+
visible: 2,
|
|
8
|
+
} as const);
|
|
9
|
+
|
|
10
|
+
/** Author visibility intent accepted by the Visibility component. */
|
|
11
|
+
export type VisibilityState = keyof typeof VisibilityStateValue;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Decode the stored u32 without treating an unknown value as a valid state.
|
|
15
|
+
* Invalid values are rejected at ECS write boundaries; undefined remains an
|
|
16
|
+
* explicit signal for readers that inspect externally corrupted columns.
|
|
17
|
+
*/
|
|
18
|
+
export function visibilityStateFromU32(value: number): VisibilityState | undefined {
|
|
19
|
+
switch (value) {
|
|
20
|
+
case VisibilityStateValue.inherited:
|
|
21
|
+
return 'inherited';
|
|
22
|
+
case VisibilityStateValue.hidden:
|
|
23
|
+
return 'hidden';
|
|
24
|
+
case VisibilityStateValue.visible:
|
|
25
|
+
return 'visible';
|
|
26
|
+
default:
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Author intent for render participation. Omitted state is inherited and is
|
|
33
|
+
* therefore visible when no valid parent intent is available.
|
|
34
|
+
*/
|
|
35
|
+
export const Visibility = defineComponent(
|
|
36
|
+
'Visibility',
|
|
37
|
+
{
|
|
38
|
+
state: {
|
|
39
|
+
type: 'enum',
|
|
40
|
+
default: VisibilityStateValue.inherited,
|
|
41
|
+
labels: VisibilityStateValue,
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
meta: {
|
|
46
|
+
quickStart: 'Attach Visibility to author render participation intent.',
|
|
47
|
+
diagnostics: 'Compare the ECS state with resolveVisibility and renderer.visibilityStats.',
|
|
48
|
+
recovery: 'Use structured ECS write errors and repair the owning scene relation.',
|
|
49
|
+
boundaries:
|
|
50
|
+
'Visibility does not own camera, picking, lifecycle, assets, or VFX shadow policy.',
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
);
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
// @forgeax/engine-runtime — debug-draw auto-attach SSOT (feat-20260615-debug-draw M5 / w28)
|
|
2
|
+
//
|
|
3
|
+
// Plan D-1: wiring lives in packages/runtime/, not in packages/debug-draw/
|
|
4
|
+
// Plan D-5: single-file SSOT for createApp hook + attachDebugOverlayPass helper
|
|
5
|
+
// Plan D-8: both URP and HDRP share the same attachDebugOverlayPass helper (SSOT)
|
|
6
|
+
//
|
|
7
|
+
// Two exports:
|
|
8
|
+
// (a) createDebugDrawOnReady(renderer, format?) — creates a DebugDraw instance
|
|
9
|
+
// once renderer.ready settles. Sets the package-internal registry so the
|
|
10
|
+
// graph pass closures can reach it. Called from createApp to populate
|
|
11
|
+
// app.debugDraw.
|
|
12
|
+
// (b) attachDebugOverlayPass(graph, getViewProj) — adds a tonemap-suffix
|
|
13
|
+
// overlay pass to a render-graph. The pass execute closure reads the
|
|
14
|
+
// internally-registered DebugDraw instance (set by createDebugDrawOnReady).
|
|
15
|
+
|
|
16
|
+
import type { DebugDraw } from '@forgeax/engine-debug-draw';
|
|
17
|
+
import { createDebugDraw } from '@forgeax/engine-debug-draw';
|
|
18
|
+
import { type Mat4, mat4 } from '@forgeax/engine-math';
|
|
19
|
+
import type {
|
|
20
|
+
RenderGraph,
|
|
21
|
+
RenderGraphBuilder,
|
|
22
|
+
RenderGraphError,
|
|
23
|
+
} from '@forgeax/engine-render-graph';
|
|
24
|
+
import type { TextureFormat, TextureView } from '@forgeax/engine-rhi';
|
|
25
|
+
import type { Result } from '@forgeax/engine-types';
|
|
26
|
+
import type { RenderPipelineFrame } from './render-pipeline';
|
|
27
|
+
import type { RenderPipelineContext } from './render-pipeline-context';
|
|
28
|
+
import type { RenderPipelineTarget } from './render-pipeline-target';
|
|
29
|
+
import type { Renderer } from './renderer';
|
|
30
|
+
import { selectSwapChainFormat } from './surface-format';
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Package-internal registry: the active DebugDraw instance for the current
|
|
34
|
+
* renderer. Set by createDebugDrawOnReady, read by attachDebugOverlayPass
|
|
35
|
+
* execute closures. A single renderer has one DebugDraw instance.
|
|
36
|
+
*/
|
|
37
|
+
let registeredDebugDraw: DebugDraw | null = null;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Create a DebugDraw instance once `renderer.ready` settles.
|
|
41
|
+
*
|
|
42
|
+
* Waits for the GPU device + shader manifest + builtin asset upload to
|
|
43
|
+
* complete before creating the DebugDraw PSO. Stores the instance in the
|
|
44
|
+
* package-internal registry so graph pass closures can reach it.
|
|
45
|
+
*
|
|
46
|
+
* Bug A fix (feat-20260626 m6-4): the PSO color format MUST equal the swap-chain
|
|
47
|
+
* LDR view the overlay pass draws into (`attachDebugOverlayPass` flushes to
|
|
48
|
+
* `ctx.view`), or the backend rejects the render pass with an attachment-state
|
|
49
|
+
* mismatch every frame. The view format is the SSOT
|
|
50
|
+
* `selectSwapChainFormat(caps.storageBuffer).view` -- `bgra8unorm-srgb` on
|
|
51
|
+
* native WebGPU (follows getPreferredCanvasFormat + the srgb-via-viewFormats
|
|
52
|
+
* route) and `rgba8unorm-srgb` on wgpu-wasm GLES -- the same derivation
|
|
53
|
+
* `PipelineState.colorAttachmentFormat` uses (memory
|
|
54
|
+
* offscreen-rt-format-must-follow-swapchain-not-hardcode-rgba). The hardcoded
|
|
55
|
+
* `'bgra8unorm'` default was latent until the overlay pass actually flushed
|
|
56
|
+
* (before the glue merge the pass was a no-op stub that never validated). A
|
|
57
|
+
* caller may still pass an explicit `format` to target a custom surface.
|
|
58
|
+
*/
|
|
59
|
+
export async function createDebugDrawOnReady(
|
|
60
|
+
renderer: Renderer,
|
|
61
|
+
format?: TextureFormat,
|
|
62
|
+
): Promise<DebugDraw> {
|
|
63
|
+
const ready = await renderer.ready;
|
|
64
|
+
if (!ready.ok) throw ready.error;
|
|
65
|
+
|
|
66
|
+
const resolvedFormat =
|
|
67
|
+
format ??
|
|
68
|
+
(selectSwapChainFormat(renderer.device.caps.storageBuffer).view as unknown as TextureFormat);
|
|
69
|
+
|
|
70
|
+
const ddResult = await createDebugDraw({
|
|
71
|
+
device: renderer.device,
|
|
72
|
+
queue: renderer.device.queue,
|
|
73
|
+
createShaderModule: renderer._internal_createShaderModule,
|
|
74
|
+
format: resolvedFormat,
|
|
75
|
+
});
|
|
76
|
+
if (!ddResult.ok) throw ddResult.error;
|
|
77
|
+
|
|
78
|
+
registeredDebugDraw = ddResult.value;
|
|
79
|
+
return ddResult.value;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** Release one app-owned DebugDraw and remove it from render-pass lookup. */
|
|
83
|
+
export function releaseDebugDraw(debugDraw: DebugDraw): void {
|
|
84
|
+
if (registeredDebugDraw === debugDraw) registeredDebugDraw = null;
|
|
85
|
+
debugDraw.destroy();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Attach a DebugOverlay pass to a render graph at the tonemap suffix.
|
|
90
|
+
*
|
|
91
|
+
* The pass is added with empty reads/writes (the swap-chain is not a
|
|
92
|
+
* graph-declared target). The execute closure reads `ctx.view` (the
|
|
93
|
+
* swap-chain TextureView) + `ctx.encoder` (the shared frame command
|
|
94
|
+
* encoder) and calls `dd.flush(encoder, view, viewProj)` using the
|
|
95
|
+
* registered DebugDraw instance.
|
|
96
|
+
*
|
|
97
|
+
* When no DebugDraw is registered (createDebugDrawOnReady not called,
|
|
98
|
+
* or tree-shaken), the pass is a silent no-op.
|
|
99
|
+
*
|
|
100
|
+
* Per plan D-8: URP and HDRP both call this helper with their respective
|
|
101
|
+
* tonemap-suffix graphs, keeping the wiring single-source.
|
|
102
|
+
*
|
|
103
|
+
* @param graph - The per-frame RenderGraph (URP forward-graph or HDRP tonemap-graph).
|
|
104
|
+
* @param getViewProj - Thunk that returns camera.viewProj from the pass context
|
|
105
|
+
* at execute time (not at graph-build time).
|
|
106
|
+
*/
|
|
107
|
+
export function attachDebugOverlayPass(
|
|
108
|
+
graph: RenderGraph<RenderPipelineContext>,
|
|
109
|
+
getViewProj: (ctx: RenderPipelineContext) => Mat4,
|
|
110
|
+
options: { readonly reads?: readonly string[] } = {},
|
|
111
|
+
): void {
|
|
112
|
+
graph.addPass('debug-overlay', {
|
|
113
|
+
// The overlay draws to ctx.view, but it still needs a graph edge so a
|
|
114
|
+
// producer that targets the scene color cannot be appended after it.
|
|
115
|
+
// The caller supplies the active pipeline's final scene-color token.
|
|
116
|
+
reads: options.reads ?? [],
|
|
117
|
+
writes: [],
|
|
118
|
+
execute: (ctx: RenderPipelineContext) => {
|
|
119
|
+
const dd = registeredDebugDraw;
|
|
120
|
+
if (!dd) return; // not registered (no debug-draw in this runtime)
|
|
121
|
+
const viewProj = getViewProj(ctx);
|
|
122
|
+
dd.flush(ctx.encoder, ctx.view as unknown as TextureView, viewProj);
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export function addTypedDebugOverlayPass(
|
|
128
|
+
graph: RenderGraphBuilder<RenderPipelineFrame>,
|
|
129
|
+
output: RenderPipelineTarget,
|
|
130
|
+
): Result<void, RenderGraphError> {
|
|
131
|
+
return graph.addRasterPass('debug-overlay', {
|
|
132
|
+
accesses: [{ resource: output.view, usage: 'color-attachment' }],
|
|
133
|
+
colorAttachments: [{ view: output.view, loadOp: 'load', storeOp: 'store' }],
|
|
134
|
+
// The graph topology is stable, but debug geometry is immediate-mode state.
|
|
135
|
+
// Evaluate admission for every frame so an empty overlay does not open a
|
|
136
|
+
// color-attachment render pass. This must stay here, before `encode` and
|
|
137
|
+
// therefore before beginRenderPass; a no-op encode still pays the pass
|
|
138
|
+
// begin/end cost and can perturb timestamp/pass accounting.
|
|
139
|
+
executeIf: () => registeredDebugDraw?.hasPendingWork() ?? false,
|
|
140
|
+
encode: ({ pass, frame }) => {
|
|
141
|
+
const projection = mat4.create();
|
|
142
|
+
if (frame.camera.projection === 'orthographic') {
|
|
143
|
+
mat4.orthographic(
|
|
144
|
+
projection,
|
|
145
|
+
frame.camera.orthoLeft,
|
|
146
|
+
frame.camera.orthoRight,
|
|
147
|
+
frame.camera.orthoBottom,
|
|
148
|
+
frame.camera.orthoTop,
|
|
149
|
+
frame.camera.near,
|
|
150
|
+
frame.camera.far,
|
|
151
|
+
);
|
|
152
|
+
} else {
|
|
153
|
+
mat4.perspective(
|
|
154
|
+
projection,
|
|
155
|
+
frame.camera.fov,
|
|
156
|
+
frame.camera.aspect,
|
|
157
|
+
frame.camera.near,
|
|
158
|
+
frame.camera.far,
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
const view = mat4.invert(mat4.create(), frame.camera.world);
|
|
162
|
+
const result = registeredDebugDraw?.encode(
|
|
163
|
+
pass,
|
|
164
|
+
mat4.multiply(mat4.create(), projection, view),
|
|
165
|
+
);
|
|
166
|
+
if (result !== undefined && !result.ok) throw result.error;
|
|
167
|
+
},
|
|
168
|
+
});
|
|
169
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { GraphResourceResolver, ResolveContext } from '@forgeax/engine-render-graph';
|
|
2
|
+
import type { RhiRenderPassEncoder, TextureView } from '@forgeax/engine-rhi';
|
|
3
|
+
import { buildPerFrameBindGroups } from './record/frame-lighting';
|
|
4
|
+
import { encodeFullscreenPass } from './render-graph-primitives';
|
|
5
|
+
import type { RenderPipelineFrame } from './render-pipeline';
|
|
6
|
+
import type { RenderPipelineTarget } from './render-pipeline-target';
|
|
7
|
+
import type { RenderSystemInternals } from './render-system';
|
|
8
|
+
|
|
9
|
+
export const HDRP_DEFERRED_LIGHTING_POST_PROCESS_ID = 'forgeax::hdrp-deferred-lighting';
|
|
10
|
+
|
|
11
|
+
function resolveView(resources: GraphResourceResolver, target: RenderPipelineTarget): TextureView {
|
|
12
|
+
const result = resources.textureView(target.view);
|
|
13
|
+
if (!result.ok) throw result.error;
|
|
14
|
+
return result.value;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function resolveDepthView(
|
|
18
|
+
frame: RenderPipelineFrame,
|
|
19
|
+
resources: GraphResourceResolver,
|
|
20
|
+
target: RenderPipelineTarget,
|
|
21
|
+
): TextureView {
|
|
22
|
+
const texture = resources.texture(target.texture);
|
|
23
|
+
if (!texture.ok) throw texture.error;
|
|
24
|
+
const view = frame.runtime.device.createTextureView(texture.value, {
|
|
25
|
+
label: 'hdrp-deferred-lighting-depth-only-view',
|
|
26
|
+
dimension: '2d',
|
|
27
|
+
aspect: 'depth-only',
|
|
28
|
+
baseMipLevel: 0,
|
|
29
|
+
mipLevelCount: 1,
|
|
30
|
+
baseArrayLayer: 0,
|
|
31
|
+
arrayLayerCount: 1,
|
|
32
|
+
});
|
|
33
|
+
if (!view.ok) throw view.error;
|
|
34
|
+
return view.value;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function encodeDeferredLightingPass(
|
|
38
|
+
frame: RenderPipelineFrame,
|
|
39
|
+
pass: RhiRenderPassEncoder,
|
|
40
|
+
resources: GraphResourceResolver,
|
|
41
|
+
targets: {
|
|
42
|
+
readonly albedo: RenderPipelineTarget;
|
|
43
|
+
readonly normal: RenderPipelineTarget;
|
|
44
|
+
readonly emissive: RenderPipelineTarget;
|
|
45
|
+
readonly depth: RenderPipelineTarget;
|
|
46
|
+
readonly output: RenderPipelineTarget;
|
|
47
|
+
},
|
|
48
|
+
): void {
|
|
49
|
+
const views: ResolveContext = {
|
|
50
|
+
resolve: (name) => {
|
|
51
|
+
switch (name) {
|
|
52
|
+
case 'gbuffer-albedo-metallic':
|
|
53
|
+
return resolveView(resources, targets.albedo);
|
|
54
|
+
case 'gbuffer-normal-roughness':
|
|
55
|
+
return resolveView(resources, targets.normal);
|
|
56
|
+
case 'gbuffer-emissive-ao':
|
|
57
|
+
return resolveView(resources, targets.emissive);
|
|
58
|
+
case 'depth':
|
|
59
|
+
return resolveView(resources, targets.depth);
|
|
60
|
+
case 'hdrp-scene-color':
|
|
61
|
+
return resolveView(resources, targets.output);
|
|
62
|
+
default:
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
// The deferred lighting shader owns a group(0) View UBO, but this pass is
|
|
68
|
+
// not a scene pass and therefore cannot inherit the main-pass context's
|
|
69
|
+
// bind group. Resolve the same graph-backed shadow views used by the main
|
|
70
|
+
// pass so the cache has one canonical view-main entry for the frame.
|
|
71
|
+
const viewBindGroup = buildPerFrameBindGroups(
|
|
72
|
+
frame.runtime as RenderSystemInternals,
|
|
73
|
+
frame.frameState,
|
|
74
|
+
frame.pipelineState,
|
|
75
|
+
true,
|
|
76
|
+
frame.bindGroupCounts,
|
|
77
|
+
{
|
|
78
|
+
directionalShadow: frame.frameState.currentDirectionalShadowView ?? undefined,
|
|
79
|
+
spotShadow: frame.frameState.currentSpotShadowView ?? undefined,
|
|
80
|
+
},
|
|
81
|
+
).viewBindGroup;
|
|
82
|
+
if (viewBindGroup !== null) pass.setBindGroup(0, viewBindGroup);
|
|
83
|
+
encodeFullscreenPass(frame, pass, {
|
|
84
|
+
name: 'lighting',
|
|
85
|
+
shader: HDRP_DEFERRED_LIGHTING_POST_PROCESS_ID,
|
|
86
|
+
color: 'hdrp-scene-color',
|
|
87
|
+
reads: ['gbuffer-albedo-metallic', 'gbuffer-normal-roughness', 'gbuffer-emissive-ao', 'depth'],
|
|
88
|
+
resolve: views,
|
|
89
|
+
outputFormat: targets.output.format as GPUTextureFormat,
|
|
90
|
+
depthView: resolveDepthView(frame, resources, targets.depth),
|
|
91
|
+
});
|
|
92
|
+
}
|