@forgeax/engine-render 0.1.19 → 0.1.21
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/README.md +215 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/assembly/device-feature-admission.d.ts +18 -0
- package/dist/assembly/device-feature-admission.d.ts.map +1 -0
- package/dist/assembly/directional-shadow-inspection.d.ts +38 -0
- package/dist/assembly/directional-shadow-inspection.d.ts.map +1 -0
- package/dist/assembly/factory.d.ts +34 -20
- package/dist/assembly/factory.d.ts.map +1 -1
- package/dist/assembly/host-contract.d.ts +9 -0
- package/dist/assembly/host-contract.d.ts.map +1 -1
- package/dist/assembly/render-target-host.d.ts +46 -0
- package/dist/assembly/render-target-host.d.ts.map +1 -0
- package/dist/assets/render-asset-port.d.ts.map +1 -1
- package/dist/authoring.mjs +3 -0
- package/dist/authoring.mjs.map +1 -1
- package/dist/capture/cube-views.d.ts +21 -0
- package/dist/capture/cube-views.d.ts.map +1 -0
- package/dist/capture/scheduler.d.ts +54 -0
- package/dist/capture/scheduler.d.ts.map +1 -0
- package/dist/{chunk-RJRUS55L.mjs → chunk-5YADUCA7.mjs} +1896 -1624
- package/dist/chunk-5YADUCA7.mjs.map +1 -0
- package/dist/{chunk-LOSO4CTV.mjs → chunk-6OPXDQ2E.mjs} +423 -46
- package/dist/chunk-6OPXDQ2E.mjs.map +1 -0
- package/dist/{chunk-IPXCABEP.mjs → chunk-BXBQQKFQ.mjs} +3 -9
- package/dist/chunk-BXBQQKFQ.mjs.map +1 -0
- package/dist/chunk-FS2KNUQH.mjs +1294 -0
- package/dist/chunk-FS2KNUQH.mjs.map +1 -0
- package/dist/components/camera.d.ts +1 -0
- package/dist/components/camera.d.ts.map +1 -1
- package/dist/components/cube-camera.d.ts +20 -0
- package/dist/components/cube-camera.d.ts.map +1 -0
- package/dist/components/directional-light.d.ts +11 -2
- package/dist/components/directional-light.d.ts.map +1 -1
- package/dist/components/directional-shadow-filter.d.ts +25 -0
- package/dist/components/directional-shadow-filter.d.ts.map +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/light-helpers.d.ts.map +1 -1
- package/dist/components/reflection-probe.d.ts +17 -0
- package/dist/components/reflection-probe.d.ts.map +1 -0
- package/dist/components/spot-light.d.ts +12 -0
- package/dist/components/spot-light.d.ts.map +1 -1
- package/dist/construct-renderer.mjs +8552 -1612
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/device/gpu-residency.d.ts +19 -2
- package/dist/device/gpu-residency.d.ts.map +1 -1
- package/dist/environment/frame.d.ts.map +1 -1
- package/dist/environment/lifecycle.d.ts +5 -0
- package/dist/environment/lifecycle.d.ts.map +1 -1
- package/dist/errors/render.d.ts +209 -93
- package/dist/errors/render.d.ts.map +1 -1
- package/dist/extract/directional-shadow-projection.d.ts +23 -0
- package/dist/extract/directional-shadow-projection.d.ts.map +1 -0
- package/dist/extract/environment.d.ts +14 -0
- package/dist/extract/environment.d.ts.map +1 -1
- package/dist/extract/visibility.d.ts.map +1 -1
- package/dist/features/fullscreen.d.ts.map +1 -1
- package/dist/features/targets.d.ts.map +1 -1
- package/dist/features/types.d.ts +10 -0
- package/dist/features/types.d.ts.map +1 -1
- package/dist/fullscreen-post-process-pass.d.ts +13 -2
- package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
- package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
- package/dist/gpu-driven/production-raster.d.ts +0 -1
- package/dist/gpu-driven/production-raster.d.ts.map +1 -1
- package/dist/gpu-scene.d.ts.map +1 -1
- package/dist/gpu-usage.d.ts +2 -0
- package/dist/gpu-usage.d.ts.map +1 -1
- package/dist/hdrp-buffers.d.ts +19 -17
- package/dist/hdrp-buffers.d.ts.map +1 -1
- package/dist/ibl/IblPipelineCache.d.ts +4 -0
- package/dist/ibl/IblPipelineCache.d.ts.map +1 -1
- package/dist/ibl/kernel-cache.d.ts +36 -0
- package/dist/ibl/kernel-cache.d.ts.map +1 -0
- package/dist/index.d.ts +35 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +4 -4
- package/dist/index.mjs.map +1 -1
- package/dist/inspection-types.d.ts +51 -0
- package/dist/inspection-types.d.ts.map +1 -1
- package/dist/instances-derived-bounds.d.ts +50 -0
- package/dist/instances-derived-bounds.d.ts.map +1 -0
- package/dist/internal.mjs +1 -1
- package/dist/light-buffer-layout.d.ts +30 -13
- package/dist/light-buffer-layout.d.ts.map +1 -1
- package/dist/mesh-material-bindings.d.ts +54 -0
- package/dist/mesh-material-bindings.d.ts.map +1 -1
- package/dist/pbr-pipeline.d.ts +20 -7
- package/dist/pbr-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-forward-lane.d.ts +2 -1
- package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
- package/dist/pipeline/standard-lighting/errors.d.ts +4 -0
- package/dist/pipeline/standard-lighting/errors.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/graph.d.ts +24 -0
- package/dist/pipeline/standard-lighting/graph.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/inspection.d.ts +38 -0
- package/dist/pipeline/standard-lighting/inspection.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/layout.d.ts +28 -0
- package/dist/pipeline/standard-lighting/layout.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/light-frame.d.ts +33 -0
- package/dist/pipeline/standard-lighting/light-frame.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/membership.d.ts +14 -0
- package/dist/pipeline/standard-lighting/membership.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/prepare.d.ts +16 -0
- package/dist/pipeline/standard-lighting/prepare.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/topology.d.ts +45 -0
- package/dist/pipeline/standard-lighting/topology.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/transport.d.ts +36 -0
- package/dist/pipeline/standard-lighting/transport.d.ts.map +1 -0
- package/dist/pipeline/standard-pipeline.d.ts +4 -13
- package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-post.d.ts.map +1 -1
- package/dist/pipeline/standard-profile.d.ts +12 -20
- package/dist/pipeline/standard-profile.d.ts.map +1 -1
- package/dist/pipeline-spec.d.ts +40 -7
- package/dist/pipeline-spec.d.ts.map +1 -1
- package/dist/point-shadow-inspection.d.ts +21 -0
- package/dist/point-shadow-inspection.d.ts.map +1 -0
- package/dist/record/frame-lighting.d.ts +29 -32
- package/dist/record/frame-lighting.d.ts.map +1 -1
- package/dist/record/frame-snapshot.d.ts +65 -15
- package/dist/record/frame-snapshot.d.ts.map +1 -1
- package/dist/record/frame-targets.d.ts +5 -0
- package/dist/record/frame-targets.d.ts.map +1 -1
- package/dist/record/frame.d.ts +12 -5
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/gpu-pass-timing/contract.d.ts +96 -0
- package/dist/record/gpu-pass-timing/contract.d.ts.map +1 -0
- package/dist/record/gpu-pass-timing/errors.d.ts +18 -0
- package/dist/record/gpu-pass-timing/errors.d.ts.map +1 -0
- package/dist/record/gpu-pass-timing/index.d.ts +8 -0
- package/dist/record/gpu-pass-timing/index.d.ts.map +1 -0
- package/dist/record/gpu-pass-timing/parser.d.ts +11 -0
- package/dist/record/gpu-pass-timing/parser.d.ts.map +1 -0
- package/dist/record/gpu-pass-timing/session.d.ts +43 -0
- package/dist/record/gpu-pass-timing/session.d.ts.map +1 -0
- package/dist/record/gpu-timing.d.ts +37 -0
- package/dist/record/gpu-timing.d.ts.map +1 -0
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/main-pass-material.d.ts +23 -2
- package/dist/record/main-pass-material.d.ts.map +1 -1
- package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
- package/dist/record/main-pass.d.ts +2 -0
- package/dist/record/main-pass.d.ts.map +1 -1
- package/dist/record/render-context.d.ts +48 -3
- package/dist/record/render-context.d.ts.map +1 -1
- package/dist/record/shadow-pass.d.ts.map +1 -1
- package/dist/record/skybox-post-pass.d.ts.map +1 -1
- package/dist/record/typed-frame-graph.d.ts +81 -5
- package/dist/record/typed-frame-graph.d.ts.map +1 -1
- package/dist/record/view-ubo.d.ts +7 -4
- package/dist/record/view-ubo.d.ts.map +1 -1
- package/dist/reflection/filter.d.ts +22 -0
- package/dist/reflection/filter.d.ts.map +1 -0
- package/dist/reflection/gpu-table.d.ts +25 -0
- package/dist/reflection/gpu-table.d.ts.map +1 -0
- package/dist/reflection/projection.d.ts +91 -0
- package/dist/reflection/projection.d.ts.map +1 -0
- package/dist/render-contract.d.ts +114 -7
- package/dist/render-contract.d.ts.map +1 -1
- package/dist/render-data.d.ts +10 -6
- package/dist/render-data.d.ts.map +1 -1
- package/dist/render-graph-primitives.d.ts +1 -0
- package/dist/render-graph-primitives.d.ts.map +1 -1
- package/dist/render-pipeline.d.ts +78 -2
- package/dist/render-pipeline.d.ts.map +1 -1
- package/dist/render-system-extract.d.ts +113 -20
- package/dist/render-system-extract.d.ts.map +1 -1
- package/dist/render-system.d.ts +24 -3
- package/dist/render-system.d.ts.map +1 -1
- package/dist/renderer-inspect.d.ts +29 -0
- package/dist/renderer-inspect.d.ts.map +1 -0
- package/dist/renderer.d.ts +43 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/scene/render-scene.d.ts +14 -0
- package/dist/scene/render-scene.d.ts.map +1 -1
- package/dist/shadow-atlas.d.ts +3 -3
- package/dist/shadow-atlas.d.ts.map +1 -1
- package/dist/ssao-buffers.d.ts +3 -0
- package/dist/ssao-buffers.d.ts.map +1 -1
- package/dist/targets/contracts.d.ts +66 -0
- package/dist/targets/contracts.d.ts.map +1 -0
- package/dist/targets/graph-projection.d.ts +29 -0
- package/dist/targets/graph-projection.d.ts.map +1 -0
- package/dist/targets/material-source.d.ts +34 -0
- package/dist/targets/material-source.d.ts.map +1 -0
- package/dist/targets/owner.d.ts +32 -0
- package/dist/targets/owner.d.ts.map +1 -0
- package/dist/targets/physical.d.ts +18 -0
- package/dist/targets/physical.d.ts.map +1 -0
- package/dist/targets/readback.d.ts +39 -0
- package/dist/targets/readback.d.ts.map +1 -0
- package/dist/temporal/frame.d.ts +44 -0
- package/dist/temporal/frame.d.ts.map +1 -0
- package/dist/temporal/index.mjs +3 -3
- package/dist/typed-render-graph-primitives.d.ts +6 -1
- package/dist/typed-render-graph-primitives.d.ts.map +1 -1
- package/dist/typed-shadow-atlas.d.ts +10 -0
- package/dist/typed-shadow-atlas.d.ts.map +1 -0
- package/dist/typed-shadow-passes.d.ts +1 -1
- package/dist/typed-shadow-passes.d.ts.map +1 -1
- package/dist/volume/capability.d.ts +57 -0
- package/dist/volume/capability.d.ts.map +1 -0
- package/dist/volume/component.d.ts +61 -0
- package/dist/volume/component.d.ts.map +1 -0
- package/dist/volume/extract.d.ts +11 -0
- package/dist/volume/extract.d.ts.map +1 -0
- package/dist/volume/inspection.d.ts +38 -0
- package/dist/volume/inspection.d.ts.map +1 -0
- package/dist/volume/passes.d.ts +38 -0
- package/dist/volume/passes.d.ts.map +1 -0
- package/dist/volume/recovery.d.ts +38 -0
- package/dist/volume/recovery.d.ts.map +1 -0
- package/dist/volume/resources.d.ts +57 -0
- package/dist/volume/resources.d.ts.map +1 -0
- package/dist/volume/temporal.d.ts +35 -0
- package/dist/volume/temporal.d.ts.map +1 -0
- package/package.json +20 -20
- package/src/__tests__/bloom-exact-zero.unit.test.ts +48 -19
- package/src/__tests__/bloom-lifecycle.integration.test.ts +41 -13
- package/src/__tests__/camera-target-consumption.unit.test.ts +53 -0
- package/src/__tests__/cluster-binner.unit.test.ts +35 -0
- package/src/__tests__/cluster-grid-default-surface.unit.test.ts +7 -2
- package/src/__tests__/cube-camera-scheduler.unit.test.ts +70 -0
- package/src/__tests__/cube-camera-single-submit.perf.test.ts +75 -0
- package/src/__tests__/cube-camera-view-matrices.unit.test.ts +41 -0
- package/src/__tests__/cube-camera-vocabulary.unit.test.ts +47 -0
- package/src/__tests__/cube-camera.integration.test.ts +42 -0
- package/src/__tests__/device-feature-admission.unit.test.ts +73 -0
- package/src/__tests__/direct-light-snapshot.unit.test.ts +3 -3
- package/src/__tests__/docs-gate-green.unit.test.ts +38 -0
- package/src/__tests__/factory-contract.integration.test.ts +255 -29
- package/src/__tests__/fog-component.unit.test.ts +67 -0
- package/src/__tests__/fog.integration.test.ts +86 -0
- package/src/__tests__/fullscreen-feature-plan.unit.test.ts +37 -0
- package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +10 -9
- package/src/__tests__/gpu-driven-indirect-raster.dawn.test.ts +17 -1
- package/src/__tests__/gpu-driven-production.integration.test.ts +16 -17
- package/src/__tests__/gpu-driven-view-graph.integration.test.ts +12 -4
- package/src/__tests__/gpu-pass-timing-browser-runner.ts +281 -0
- package/src/__tests__/gpu-pass-timing-coexistence.integration.test.ts +80 -0
- package/src/__tests__/gpu-pass-timing-contract.unit.test.ts +243 -0
- package/src/__tests__/gpu-pass-timing-exact-zero.unit.test.ts +131 -0
- package/src/__tests__/gpu-pass-timing-lifecycle.integration.test.ts +230 -0
- package/src/__tests__/gpu-pass-timing-observation.unit.test.ts +233 -0
- package/src/__tests__/gpu-pass-timing-session.unit.test.ts +438 -0
- package/src/__tests__/gpu-pass-timing.browser.test.ts +26 -0
- package/src/__tests__/gpu-pass-timing.rhi-null.unit.test.ts +125 -0
- package/src/__tests__/hdrp-group2-visibility.unit.test.ts +24 -0
- package/src/__tests__/instances-culling.integration.test.ts +94 -0
- package/src/__tests__/instances-derived-bounds.unit.test.ts +118 -0
- package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +14 -14
- package/src/__tests__/material-observation.integration.test.ts +101 -0
- package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +1 -1
- package/src/__tests__/pbr-view-layout.unit.test.ts +16 -0
- package/src/__tests__/point-shadow-inspection.unit.test.ts +60 -0
- package/src/__tests__/public-surface.test-d.ts +10 -0
- package/src/__tests__/reflection-probe-authoring.unit.test.ts +71 -0
- package/src/__tests__/reflection-probe-filter.unit.test.ts +54 -0
- package/src/__tests__/reflection-probe-ibl-topology.unit.test.ts +45 -0
- package/src/__tests__/reflection-probe-pass-encode.integration.test.ts +101 -0
- package/src/__tests__/reflection-probe-performance.perf.test.ts +60 -0
- package/src/__tests__/reflection-probe-recovery.integration.test.ts +55 -0
- package/src/__tests__/reflection-probe-selection.unit.test.ts +46 -0
- package/src/__tests__/render-error-code-owner.test-d.ts +23 -3
- package/src/__tests__/render-feature-docs.unit.test.ts +1 -1
- package/src/__tests__/render-target-admission.unit.test.ts +80 -0
- package/src/__tests__/render-target-graph-projection.unit.test.ts +102 -0
- package/src/__tests__/render-target-inspection.unit.test.ts +52 -0
- package/src/__tests__/render-target-material-source.test-d.ts +30 -0
- package/src/__tests__/render-target-material-source.unit.test.ts +97 -0
- package/src/__tests__/render-target-owner-placement.unit.test.ts +203 -0
- package/src/__tests__/render-target-owner.unit.test.ts +122 -0
- package/src/__tests__/render-target-probe-soak.perf.test.ts +94 -0
- package/src/__tests__/render-target-public-schema.json +107 -0
- package/src/__tests__/render-target-public-schema.unit.test.ts +91 -0
- package/src/__tests__/render-target-public-surface.test-d.ts +83 -0
- package/src/__tests__/render-target-readback.integration.test.ts +90 -0
- package/src/__tests__/render-target-recovery.integration.test.ts +85 -0
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +76 -0
- package/src/__tests__/renderer-frame-transaction.integration.test.ts +1 -1
- package/src/__tests__/renderer-lifecycle.integration.test.ts +14 -0
- package/src/__tests__/shader-stage-surface.unit.test.ts +19 -4
- package/src/__tests__/skin-motion-regression.unit.test.ts +132 -0
- package/src/__tests__/skinned-shadow-caster.test.ts +32 -2
- package/src/__tests__/standard-cluster-capability.integration.test.ts +63 -0
- package/src/__tests__/standard-cluster-transport.unit.test.ts +121 -0
- package/src/__tests__/standard-cluster-variant-resolution.unit.test.ts +232 -0
- package/src/__tests__/standard-clustered-pipeline.unit.test.ts +8 -5
- package/src/__tests__/standard-lighting-inspection.integration.test.ts +138 -0
- package/src/__tests__/standard-lighting-ssot.unit.test.ts +18 -0
- package/src/__tests__/standard-lighting-write.unit.test.ts +377 -0
- package/src/__tests__/standard-lighting.integration.test.ts +67 -0
- package/src/__tests__/standard-pipeline.dawn.test.ts +206 -5
- package/src/__tests__/standard-pipeline.integration.test.ts +181 -150
- package/src/__tests__/standard-probe-binding.unit.test.ts +25 -0
- package/src/__tests__/standard-profile-oracle.unit.test.ts +23 -36
- package/src/__tests__/typed-pipeline-topology.unit.test.ts +395 -14
- package/src/__tests__/urp-pipeline-targets.unit.test.ts +2 -2
- package/src/__tests__/visibility-resolver.unit.test.ts +15 -0
- package/src/__tests__/volume-optics-oracle.unit.test.ts +85 -0
- package/src/__tests__/volumetric-fog-budget-recovery.integration.test.ts +655 -0
- package/src/__tests__/volumetric-fog-component.unit.test.ts +71 -0
- package/src/__tests__/volumetric-fog-composite-stage-readback.dawn.test.ts +376 -0
- package/src/__tests__/volumetric-fog-errors.unit.test.ts +51 -0
- package/src/__tests__/volumetric-fog-inspection.unit.test.ts +77 -0
- package/src/__tests__/volumetric-fog-light-capability.unit.test.ts +19 -0
- package/src/__tests__/volumetric-fog-light-consumers.integration.test.ts +18 -0
- package/src/__tests__/volumetric-fog-light-errors.unit.test.ts +17 -0
- package/src/__tests__/volumetric-fog-light-topology.unit.test.ts +21 -0
- package/src/__tests__/volumetric-fog-light-transaction.integration.test.ts +53 -0
- package/src/__tests__/volumetric-fog-m9-watcher.integration.test.ts +27 -0
- package/src/__tests__/volumetric-fog-point-light-owner.integration.test.ts +44 -0
- package/src/__tests__/volumetric-fog-point-spot-accumulation.integration.test.ts +49 -0
- package/src/__tests__/volumetric-fog-point-spot-contract.unit.test.ts +28 -0
- package/src/__tests__/volumetric-fog-point-spot-lkg.integration.test.ts +65 -0
- package/src/__tests__/volumetric-fog-point-spot-selection.integration.test.ts +49 -0
- package/src/__tests__/volumetric-fog-point-spot-temporal.unit.test.ts +55 -0
- package/src/__tests__/volumetric-fog-projector-contract.unit.test.ts +22 -0
- package/src/__tests__/volumetric-fog-projector-inspection.unit.test.ts +12 -0
- package/src/__tests__/volumetric-fog-projector-surface-volume.integration.test.ts +11 -0
- package/src/__tests__/volumetric-fog-projector-transaction.integration.test.ts +26 -0
- package/src/__tests__/volumetric-fog-recovery.integration.test.ts +47 -0
- package/src/__tests__/volumetric-fog-selected-light-resolution.integration.test.ts +63 -0
- package/src/__tests__/volumetric-fog-spot-closure.integration.test.ts +26 -0
- package/src/__tests__/volumetric-fog-spot-contract.test-d.ts +21 -0
- package/src/__tests__/volumetric-fog-spot-contract.unit.test.ts +27 -0
- package/src/__tests__/volumetric-fog-spot-frame-optics.integration.test.ts +14 -0
- package/src/__tests__/volumetric-fog-spot-optics.integration.test.ts +29 -0
- package/src/__tests__/volumetric-fog-stage-readback.dawn.test.ts +550 -0
- package/src/__tests__/volumetric-fog-temporal-selected-light.unit.test.ts +33 -0
- package/src/__tests__/volumetric-fog-temporal.unit.test.ts +45 -0
- package/src/__tests__/volumetric-fog-topology.unit.test.ts +237 -0
- package/src/__tests__/volumetric-fog-transparent.integration.test.ts +27 -0
- package/src/assembly/device-feature-admission.ts +73 -0
- package/src/assembly/directional-shadow-inspection.ts +122 -0
- package/src/assembly/factory.ts +1093 -246
- package/src/assembly/host-contract.ts +25 -0
- package/src/assembly/render-target-host.ts +847 -0
- package/src/assets/asset-decoders.ts +1 -1
- package/src/assets/render-asset-port.ts +7 -1
- package/src/capture/cube-views.ts +69 -0
- package/src/capture/scheduler.ts +265 -0
- package/src/components/__tests__/schema-contract.unit.test.ts +12 -0
- package/src/components/__tests__/schema-parity.unit.test.ts +9 -0
- package/src/components/camera.ts +4 -0
- package/src/components/cube-camera.ts +52 -0
- package/src/components/directional-light.ts +22 -2
- package/src/components/directional-shadow-filter.ts +57 -0
- package/src/components/index.ts +2 -0
- package/src/components/light-helpers.ts +85 -7
- package/src/components/reflection-probe.ts +49 -0
- package/src/components/spot-light.ts +22 -3
- package/src/device/gpu-residency.ts +168 -58
- package/src/environment/frame.ts +6 -24
- package/src/environment/lifecycle.ts +12 -0
- package/src/errors/render.ts +405 -143
- package/src/extract/directional-shadow-projection.ts +61 -0
- package/src/extract/environment.ts +57 -0
- package/src/extract/visibility.ts +25 -1
- package/src/features/fullscreen.ts +3 -0
- package/src/features/targets.ts +4 -1
- package/src/features/types.ts +10 -0
- package/src/fullscreen-post-process-pass.ts +43 -2
- package/src/gpu-driven/batch-topology.ts +1 -0
- package/src/gpu-driven/production-raster.ts +1 -3
- package/src/gpu-scene.ts +8 -1
- package/src/gpu-usage.ts +2 -0
- package/src/hdrp-buffers.ts +165 -59
- package/src/ibl/IblPipelineCache.ts +11 -0
- package/src/ibl/kernel-cache.ts +88 -0
- package/src/index.ts +186 -1
- package/src/inspection-types.ts +56 -0
- package/src/instances-derived-bounds.ts +171 -0
- package/src/light-buffer-layout.ts +74 -26
- package/src/mesh-material-bindings.ts +132 -0
- package/src/pbr-pipeline.ts +139 -27
- package/src/pipeline/standard-forward-lane.ts +65 -15
- package/src/pipeline/standard-lighting/errors.ts +6 -0
- package/src/pipeline/standard-lighting/graph.ts +157 -0
- package/src/pipeline/standard-lighting/inspection.ts +88 -0
- package/src/pipeline/standard-lighting/layout.ts +31 -0
- package/src/pipeline/standard-lighting/light-frame.ts +34 -0
- package/src/pipeline/standard-lighting/membership.ts +43 -0
- package/src/pipeline/standard-lighting/prepare.ts +37 -0
- package/src/pipeline/standard-lighting/topology.ts +120 -0
- package/src/pipeline/standard-lighting/transport.ts +77 -0
- package/src/pipeline/standard-pipeline.ts +141 -192
- package/src/pipeline/standard-post.ts +26 -7
- package/src/pipeline/standard-profile.ts +23 -30
- package/src/pipeline-spec.ts +84 -21
- package/src/point-shadow-inspection.ts +55 -0
- package/src/record/__tests__/temporal-payload.unit.test.ts +42 -1
- package/src/record/__tests__/transparent-group2-selection.unit.test.ts +73 -0
- package/src/record/__tests__/view-ubo-layout.unit.test.ts +40 -0
- package/src/record/frame-lighting.ts +470 -516
- package/src/record/frame-snapshot.ts +76 -28
- package/src/record/frame-targets.ts +23 -2
- package/src/record/frame.ts +1169 -79
- package/src/record/gpu-pass-timing/contract.ts +180 -0
- package/src/record/gpu-pass-timing/errors.ts +34 -0
- package/src/record/gpu-pass-timing/index.ts +37 -0
- package/src/record/gpu-pass-timing/parser.ts +97 -0
- package/src/record/gpu-pass-timing/session.ts +938 -0
- package/src/record/gpu-timing.ts +233 -0
- package/src/record/main-pass-geometry.ts +120 -80
- package/src/record/main-pass-material.ts +101 -11
- package/src/record/main-pass-sprite-draws.ts +54 -25
- package/src/record/main-pass.ts +71 -15
- package/src/record/render-context.ts +77 -0
- package/src/record/shadow-pass.ts +104 -66
- package/src/record/skybox-post-pass.ts +20 -4
- package/src/record/typed-frame-graph.ts +1016 -32
- package/src/record/view-ubo.ts +63 -28
- package/src/reflection/filter.ts +81 -0
- package/src/reflection/gpu-table.ts +44 -0
- package/src/reflection/projection.ts +281 -0
- package/src/render-contract.ts +147 -4
- package/src/render-data.ts +50 -22
- package/src/render-graph-primitives.ts +9 -4
- package/src/render-pipeline.ts +161 -2
- package/src/render-system-extract.ts +886 -103
- package/src/render-system.ts +1174 -66
- package/src/renderer-inspect.ts +66 -0
- package/src/renderer.ts +222 -0
- package/src/scene/render-scene.ts +117 -9
- package/src/shadow-atlas.ts +5 -5
- package/src/ssao-buffers.ts +9 -2
- package/src/targets/contracts.ts +182 -0
- package/src/targets/graph-projection.ts +169 -0
- package/src/targets/material-source.ts +143 -0
- package/src/targets/owner.ts +214 -0
- package/src/targets/physical.ts +18 -0
- package/src/targets/readback.ts +153 -0
- package/src/temporal/frame.ts +128 -0
- package/src/transmission/__tests__/standard-transmission.dawn.test.ts +61 -23
- package/src/typed-render-graph-primitives.ts +34 -2
- package/src/typed-shadow-atlas.ts +17 -0
- package/src/typed-shadow-passes.ts +47 -40
- package/src/volume/capability.ts +173 -0
- package/src/volume/component.ts +110 -0
- package/src/volume/extract.ts +21 -0
- package/src/volume/inspection.ts +78 -0
- package/src/volume/passes.ts +686 -0
- package/src/volume/recovery.ts +86 -0
- package/src/volume/resources.ts +236 -0
- package/src/volume/temporal.ts +89 -0
- package/dist/chunk-IPXCABEP.mjs.map +0 -1
- package/dist/chunk-LOSO4CTV.mjs.map +0 -1
- package/dist/chunk-RJRUS55L.mjs.map +0 -1
- package/dist/chunk-YTQ5C7YQ.mjs +0 -584
- package/dist/chunk-YTQ5C7YQ.mjs.map +0 -1
package/dist/shadow-atlas.d.ts
CHANGED
|
@@ -5,17 +5,17 @@ import { type RhiDevice, type Sampler, type Texture, type TextureView } from '@f
|
|
|
5
5
|
export interface ShadowAtlasOptions {
|
|
6
6
|
/** Per-face square size in pixels. Default 512 (PointLightShadow.mapSize default). */
|
|
7
7
|
readonly faceSize?: number;
|
|
8
|
-
/** Number of cube layers. Default
|
|
8
|
+
/** Number of cube layers. Default is the renderer atlas admission capacity. */
|
|
9
9
|
readonly layers?: number;
|
|
10
10
|
}
|
|
11
11
|
/** Default per-face square size in pixels. Mirrors PointLightShadow.mapSize default. */
|
|
12
12
|
export declare const SHADOW_ATLAS_DEFAULT_FACE_SIZE = 512;
|
|
13
|
-
/** Default cube layer count.
|
|
13
|
+
/** Default cube layer count. Renderer-owned point-shadow admission capacity. */
|
|
14
14
|
export declare const SHADOW_ATLAS_DEFAULT_LAYERS = 4;
|
|
15
15
|
/**
|
|
16
16
|
* Cube-array depth atlas for point-light shadows.
|
|
17
17
|
*
|
|
18
|
-
* Shape: `texture_depth_cube_array` (depth32float) with `layers
|
|
18
|
+
* Shape: `texture_depth_cube_array` (depth32float) with `layers` and per-
|
|
19
19
|
* face size `faceSize x faceSize`. The cube_array sampling view feeds
|
|
20
20
|
* `@group(0) @binding(5)` in URP shaders; the per-face 2D view feeds the
|
|
21
21
|
* shadow-caster render pass attachment for one (layer, face) at a time
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadow-atlas.d.ts","sourceRoot":"","sources":["../src/shadow-atlas.ts"],"names":[],"mappings":"AAiCA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAQ7B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B
|
|
1
|
+
{"version":3,"file":"shadow-atlas.d.ts","sourceRoot":"","sources":["../src/shadow-atlas.ts"],"names":[],"mappings":"AAiCA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAQ7B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wFAAwF;AACxF,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,gFAAgF;AAChF,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,WAAW;IACtB,yEAAyE;IACzE,OAAO,CAAC,OAAO,CAAwB;IACvC;;;OAGG;IACH,OAAO,CAAC,aAAa,CAA4B;IACjD,yDAAyD;IACzD,OAAO,CAAC,cAAc,CAAwB;IAC9C,iEAAiE;IACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wBAAwB;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,kBAAuB;IAM/D;;;;;;OAMG;IACH,WAAW,IAAI,OAAO;IAItB;;;;;;;;;OASG;IACH,MAAM,IAAI,IAAI;IAkCd;;;;OAIG;IACH,YAAY,IAAI,WAAW,GAAG,IAAI;IAIlC;;;OAGG;IACH,oBAAoB,IAAI,OAAO,GAAG,IAAI;IAItC;;OAEG;IACH,UAAU,IAAI,OAAO,GAAG,IAAI;IAI5B;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW;IAoBlD;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAShB"}
|
package/dist/ssao-buffers.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export declare function generateSsaoNoise(seed?: number): Float32Array;
|
|
|
6
6
|
export declare const SSAO_UNIFORM_INTENSITY_OFFSET = 192;
|
|
7
7
|
export declare const SSAO_UNIFORM_BYTES = 256;
|
|
8
8
|
interface SsaoFallbackResources {
|
|
9
|
+
readonly device: RenderSystemRuntime['device'];
|
|
9
10
|
readonly texture: Texture;
|
|
10
11
|
readonly view: TextureView;
|
|
11
12
|
readonly sampler: Sampler;
|
|
@@ -26,6 +27,8 @@ export declare function getOrCreateSsaoFallbackTexture(runtime: RenderSystemRunt
|
|
|
26
27
|
* Fields are readonly per charter P5: one resource, one owner.
|
|
27
28
|
*/
|
|
28
29
|
export interface SsaoBuffers {
|
|
30
|
+
/** Device identity that owns every handle in this bundle. */
|
|
31
|
+
readonly device: RenderSystemRuntime['device'];
|
|
29
32
|
/** 64 padded vec4 uniform buffer for hemisphere samples. */
|
|
30
33
|
readonly kernelBuffer: Buffer;
|
|
31
34
|
readonly kernelBytes: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssao-buffers.d.ts","sourceRoot":"","sources":["../src/ssao-buffers.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAInE,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAiB3C,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAAU,GAAG,SAAS,YAAY,EAAE,CAuB5E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,MAAU,GAAG,YAAY,CAShE;AAiBD,eAAO,MAAM,6BAA6B,MAAiC,CAAC;AAC5E,eAAO,MAAM,kBAAkB,MAAgB,CAAC;AAYhD,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAID;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,mBAAmB,GAC3B,qBAAqB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"ssao-buffers.d.ts","sourceRoot":"","sources":["../src/ssao-buffers.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAInE,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAiB3C,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAAU,GAAG,SAAS,YAAY,EAAE,CAuB5E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,MAAU,GAAG,YAAY,CAShE;AAiBD,eAAO,MAAM,6BAA6B,MAAiC,CAAC;AAC5E,eAAO,MAAM,kBAAkB,MAAgB,CAAC;AAYhD,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAID;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,mBAAmB,GAC3B,qBAAqB,GAAG,IAAI,CA2E9B;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC/C,4DAA4D;IAC5D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,oFAAoF;IACpF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAID;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,GAAG,WAAW,GAAG,IAAI,CA0GvF"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { RenderError } from '../errors/render';
|
|
2
|
+
import type { RenderResult } from '../render-contract';
|
|
3
|
+
export type RenderTargetFormat = 'rgba16float' | 'rgba8unorm' | 'rgba8unorm-srgb';
|
|
4
|
+
export type RenderTargetShape = '2d' | 'cube';
|
|
5
|
+
export type RenderTargetMipLevels = 1 | 'full';
|
|
6
|
+
export type RenderTargetSampleCount = 1 | 4;
|
|
7
|
+
export type RenderTargetDepthFormat = 'depth24plus-stencil8' | 'depth32float';
|
|
8
|
+
export interface RenderTargetDescriptor {
|
|
9
|
+
readonly shape: RenderTargetShape;
|
|
10
|
+
readonly width: number;
|
|
11
|
+
readonly height: number;
|
|
12
|
+
readonly format: RenderTargetFormat;
|
|
13
|
+
readonly mipLevels: RenderTargetMipLevels;
|
|
14
|
+
readonly sampleCount: RenderTargetSampleCount;
|
|
15
|
+
readonly depth?: RenderTargetDepthFormat;
|
|
16
|
+
readonly sampled: boolean;
|
|
17
|
+
readonly readback: boolean;
|
|
18
|
+
}
|
|
19
|
+
declare const RenderTargetBrand: unique symbol;
|
|
20
|
+
declare const RenderTargetTextureSourceBrand: unique symbol;
|
|
21
|
+
declare const RenderTargetReadbackTicketBrand: unique symbol;
|
|
22
|
+
/** Opaque logical target lease owned by one Renderer. */
|
|
23
|
+
export interface RenderTarget {
|
|
24
|
+
readonly [RenderTargetBrand]: 'RenderTarget';
|
|
25
|
+
}
|
|
26
|
+
export type RenderTargetTextureAspect = 'color';
|
|
27
|
+
export interface RenderTargetTextureSourceOptions {
|
|
28
|
+
readonly aspect: RenderTargetTextureAspect;
|
|
29
|
+
readonly dimension: RenderTargetShape;
|
|
30
|
+
readonly mipLevel: number;
|
|
31
|
+
}
|
|
32
|
+
/** Renderer-local runtime material source; it is not an asset handle. */
|
|
33
|
+
export interface RenderTargetTextureSource {
|
|
34
|
+
readonly [RenderTargetTextureSourceBrand]: 'RenderTargetTextureSource';
|
|
35
|
+
}
|
|
36
|
+
export interface RenderTargetReadbackRequest {
|
|
37
|
+
readonly mipLevel: number;
|
|
38
|
+
/** Cube array layer to copy; 2D targets accept only the omitted form. */
|
|
39
|
+
readonly face?: number;
|
|
40
|
+
}
|
|
41
|
+
/** One-shot readback request bound to a future matching FrameReceipt. */
|
|
42
|
+
export interface RenderTargetReadbackTicket {
|
|
43
|
+
readonly [RenderTargetReadbackTicketBrand]: 'RenderTargetReadbackTicket';
|
|
44
|
+
}
|
|
45
|
+
/** Bytes released by observe after the ticket's matching frame completes. */
|
|
46
|
+
export interface RenderTargetReadbackData {
|
|
47
|
+
readonly ticket: RenderTargetReadbackTicket;
|
|
48
|
+
readonly bytes: Uint8Array;
|
|
49
|
+
readonly frameId: number;
|
|
50
|
+
readonly deviceGeneration: number;
|
|
51
|
+
readonly mipLevel: number;
|
|
52
|
+
readonly face?: number;
|
|
53
|
+
readonly bytesPerRow: number;
|
|
54
|
+
readonly byteLength: number;
|
|
55
|
+
}
|
|
56
|
+
export interface RenderTargetAdmissionLimits {
|
|
57
|
+
readonly maxTextureDimension2D: number;
|
|
58
|
+
readonly maxBytesPerTarget: number;
|
|
59
|
+
readonly renderableFormats: readonly RenderTargetFormat[];
|
|
60
|
+
readonly sampleCounts: readonly RenderTargetSampleCount[];
|
|
61
|
+
readonly depthFormats: readonly RenderTargetDepthFormat[];
|
|
62
|
+
}
|
|
63
|
+
/** Validate descriptor facts before a renderer allocates a physical target. */
|
|
64
|
+
export declare function admitRenderTargetDescriptor(descriptor: RenderTargetDescriptor, limits: RenderTargetAdmissionLimits): RenderResult<RenderTargetDescriptor, RenderError>;
|
|
65
|
+
export {};
|
|
66
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/targets/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { GraphTexture, GraphTextureView, GraphTextureViewDescriptor, RenderGraphBuilder, RenderGraphFrame } from '@forgeax/engine-render-graph';
|
|
2
|
+
import type { Texture, TextureView } from '@forgeax/engine-rhi';
|
|
3
|
+
import type { RenderError } from '../errors/render';
|
|
4
|
+
import type { RenderResult } from '../render-contract';
|
|
5
|
+
import type { RenderTarget, RenderTargetDescriptor } from './contracts';
|
|
6
|
+
export interface RenderTargetGraphInput {
|
|
7
|
+
readonly target: RenderTarget;
|
|
8
|
+
readonly generation: number;
|
|
9
|
+
readonly descriptor: RenderTargetDescriptor;
|
|
10
|
+
readonly texture: Texture;
|
|
11
|
+
readonly view: TextureView;
|
|
12
|
+
readonly resolveView?: TextureView | undefined;
|
|
13
|
+
}
|
|
14
|
+
export interface RenderTargetGraphSubresource {
|
|
15
|
+
readonly mipLevel?: number;
|
|
16
|
+
readonly face?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface RenderTargetGraphProjection {
|
|
19
|
+
readonly ownership: 'imported';
|
|
20
|
+
readonly generation: number;
|
|
21
|
+
readonly texture: GraphTexture;
|
|
22
|
+
readonly view: GraphTextureView;
|
|
23
|
+
readonly sampleView: GraphTextureView;
|
|
24
|
+
readonly resolveView?: GraphTextureView | undefined;
|
|
25
|
+
readonly viewDescriptor: GraphTextureViewDescriptor;
|
|
26
|
+
readonly usage: readonly ('sampled-read' | 'copy-src')[];
|
|
27
|
+
}
|
|
28
|
+
export declare function projectRenderTargetGraph<FrameCtx extends RenderGraphFrame>(graph: RenderGraphBuilder<FrameCtx>, input: RenderTargetGraphInput, subresource?: RenderTargetGraphSubresource): RenderResult<RenderTargetGraphProjection, RenderError>;
|
|
29
|
+
//# sourceMappingURL=graph-projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-projection.d.ts","sourceRoot":"","sources":["../../src/targets/graph-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,0BAA0B,EAC1B,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAiB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAExE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAChD;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,0BAA0B,CAAC;IACpD,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC;CAC1D;AAsED,wBAAgB,wBAAwB,CAAC,QAAQ,SAAS,gBAAgB,EACxE,KAAK,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACnC,KAAK,EAAE,sBAAsB,EAC7B,WAAW,GAAE,4BAAiC,GAC7C,YAAY,CAAC,2BAA2B,EAAE,WAAW,CAAC,CA0DxD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { TextureView } from '@forgeax/engine-rhi';
|
|
2
|
+
import type { RenderError } from '../errors/render';
|
|
3
|
+
import type { RenderResult } from '../render-contract';
|
|
4
|
+
import type { RenderTarget, RenderTargetDescriptor, RenderTargetTextureSource, RenderTargetTextureSourceOptions } from './contracts';
|
|
5
|
+
export interface RenderTargetMaterialSourceView {
|
|
6
|
+
readonly dimension: RenderTargetTextureSourceOptions['dimension'];
|
|
7
|
+
readonly mipLevel: number;
|
|
8
|
+
readonly resolveRequired: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface RenderTargetMaterialSourceBinding {
|
|
11
|
+
readonly source: RenderTargetTextureSource;
|
|
12
|
+
readonly target: RenderTarget;
|
|
13
|
+
readonly generation: number;
|
|
14
|
+
readonly shape: RenderTargetDescriptor['shape'];
|
|
15
|
+
readonly format: RenderTargetDescriptor['format'];
|
|
16
|
+
readonly view: RenderTargetMaterialSourceView;
|
|
17
|
+
/** Renderer-local physical view, present only for the active generation. */
|
|
18
|
+
readonly textureView?: TextureView;
|
|
19
|
+
}
|
|
20
|
+
export interface RenderTargetMaterialSourceExpectation {
|
|
21
|
+
readonly target: RenderTarget;
|
|
22
|
+
readonly generation: number;
|
|
23
|
+
readonly shape: RenderTargetDescriptor['shape'];
|
|
24
|
+
readonly format: RenderTargetDescriptor['format'];
|
|
25
|
+
readonly dimension: RenderTargetTextureSourceOptions['dimension'];
|
|
26
|
+
readonly mipLevel: number;
|
|
27
|
+
}
|
|
28
|
+
/** Resolve a source only inside the renderer-owned material projection. */
|
|
29
|
+
export declare function resolveRenderTargetMaterialSource(source: RenderTargetTextureSource): RenderTargetMaterialSourceBinding | undefined;
|
|
30
|
+
export declare function createRenderTargetMaterialSource(target: RenderTarget, descriptor: RenderTargetDescriptor, options: RenderTargetTextureSourceOptions & {
|
|
31
|
+
readonly generation: number;
|
|
32
|
+
}): RenderResult<RenderTargetMaterialSourceBinding, RenderError>;
|
|
33
|
+
export declare function validateRenderTargetMaterialSource(binding: RenderTargetMaterialSourceBinding, expected: RenderTargetMaterialSourceExpectation): RenderResult<void, RenderError>;
|
|
34
|
+
//# sourceMappingURL=material-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"material-source.d.ts","sourceRoot":"","sources":["../../src/targets/material-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EACjC,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,SAAS,EAAE,gCAAgC,CAAC,WAAW,CAAC,CAAC;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,8BAA8B,CAAC;IAC9C,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;CACpC;AAED,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,gCAAgC,CAAC,WAAW,CAAC,CAAC;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAQD,2EAA2E;AAC3E,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,yBAAyB,GAChC,iCAAiC,GAAG,SAAS,CAE/C;AAaD,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,sBAAsB,EAClC,OAAO,EAAE,gCAAgC,GAAG;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC1E,YAAY,CAAC,iCAAiC,EAAE,WAAW,CAAC,CAgC9D;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,iCAAiC,EAC1C,QAAQ,EAAE,qCAAqC,GAC9C,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAqCjC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { RenderError } from '../errors/render';
|
|
2
|
+
import type { RenderResult } from '../render-contract';
|
|
3
|
+
import type { RenderTarget, RenderTargetDescriptor } from './contracts';
|
|
4
|
+
export type RenderTargetOwnerState = 'uninitialized' | 'candidate' | 'active' | 'rebuilding' | 'destroyed';
|
|
5
|
+
export interface RenderTargetPhysicalCandidate {
|
|
6
|
+
readonly generation: number;
|
|
7
|
+
readonly descriptor: RenderTargetDescriptor;
|
|
8
|
+
}
|
|
9
|
+
export interface RenderTargetOwnerInspection {
|
|
10
|
+
readonly token: RenderTarget;
|
|
11
|
+
readonly state: RenderTargetOwnerState;
|
|
12
|
+
readonly generation: number;
|
|
13
|
+
readonly descriptor: RenderTargetDescriptor;
|
|
14
|
+
readonly candidate?: RenderTargetPhysicalCandidate;
|
|
15
|
+
}
|
|
16
|
+
export interface RenderTargetOwnerOptions {
|
|
17
|
+
readonly rendererId: symbol;
|
|
18
|
+
readonly initialGeneration: number;
|
|
19
|
+
}
|
|
20
|
+
export interface RenderTargetOwner {
|
|
21
|
+
create(descriptor: RenderTargetDescriptor): RenderResult<RenderTarget, RenderError>;
|
|
22
|
+
stage(target: RenderTarget, descriptor?: RenderTargetDescriptor): RenderResult<RenderTargetPhysicalCandidate, RenderError>;
|
|
23
|
+
promote(target: RenderTarget, generation: number): RenderResult<void, RenderError>;
|
|
24
|
+
rejectCandidate(target: RenderTarget, generation: number, stage: 'allocation' | 'compile' | 'write' | 'submit'): RenderResult<void, RenderError>;
|
|
25
|
+
beginRecovery(target: RenderTarget, generation: number): RenderResult<void, RenderError>;
|
|
26
|
+
finishRecovery(target: RenderTarget): RenderResult<void, RenderError>;
|
|
27
|
+
retire(target: RenderTarget, generation: number): RenderResult<void, RenderError>;
|
|
28
|
+
destroy(target: RenderTarget): RenderResult<void, RenderError>;
|
|
29
|
+
inspect(target: RenderTarget): RenderResult<RenderTargetOwnerInspection, RenderError>;
|
|
30
|
+
}
|
|
31
|
+
export declare function createRenderTargetOwner(options: RenderTargetOwnerOptions): RenderTargetOwner;
|
|
32
|
+
//# sourceMappingURL=owner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner.d.ts","sourceRoot":"","sources":["../../src/targets/owner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAExE,MAAM,MAAM,sBAAsB,GAC9B,eAAe,GACf,WAAW,GACX,QAAQ,GACR,YAAY,GACZ,WAAW,CAAC;AAEhB,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;CAC7C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,6BAA6B,CAAC;CACpD;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,UAAU,EAAE,sBAAsB,GAAG,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACpF,KAAK,CACH,MAAM,EAAE,YAAY,EACpB,UAAU,CAAC,EAAE,sBAAsB,GAClC,YAAY,CAAC,6BAA6B,EAAE,WAAW,CAAC,CAAC;IAC5D,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACnF,eAAe,CACb,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GACnD,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACnC,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACzF,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACtE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAClF,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC/D,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAAC,2BAA2B,EAAE,WAAW,CAAC,CAAC;CACvF;AAgCD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CAsI5F"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Texture, TextureView } from '@forgeax/engine-rhi';
|
|
2
|
+
import type { RenderTargetDescriptor } from './contracts';
|
|
3
|
+
/** Renderer-private physical storage for one logical target generation. */
|
|
4
|
+
export interface RenderTargetPhysical {
|
|
5
|
+
readonly generation: number;
|
|
6
|
+
readonly descriptor: RenderTargetDescriptor;
|
|
7
|
+
readonly texture: Texture;
|
|
8
|
+
readonly view: TextureView;
|
|
9
|
+
readonly mipViews: readonly TextureView[];
|
|
10
|
+
readonly colorTextures: readonly Texture[];
|
|
11
|
+
readonly faceViews: readonly TextureView[];
|
|
12
|
+
readonly depthTextures: readonly Texture[];
|
|
13
|
+
readonly depthViews: readonly TextureView[];
|
|
14
|
+
readonly resolveTexture?: Texture;
|
|
15
|
+
readonly resolveView: TextureView;
|
|
16
|
+
readonly resolveFaceViews: readonly TextureView[];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=physical.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"physical.d.ts","sourceRoot":"","sources":["../../src/targets/physical.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,2EAA2E;AAC3E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,SAAS,OAAO,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,SAAS,OAAO,EAAE,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,WAAW,EAAE,CAAC;CACnD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { RenderError } from '../errors/render';
|
|
2
|
+
import type { RenderResult } from '../render-contract';
|
|
3
|
+
import type { RenderTarget } from './contracts';
|
|
4
|
+
export interface RenderTargetReadbackReceipt {
|
|
5
|
+
readonly frameId: number;
|
|
6
|
+
readonly deviceGeneration: number;
|
|
7
|
+
}
|
|
8
|
+
export interface RenderTargetReadbackTicketInput {
|
|
9
|
+
readonly frameId?: number;
|
|
10
|
+
deviceGeneration: number;
|
|
11
|
+
readonly mipLevel: number;
|
|
12
|
+
readonly face?: number;
|
|
13
|
+
readonly width: number;
|
|
14
|
+
readonly height: number;
|
|
15
|
+
readonly bytesPerPixel: number;
|
|
16
|
+
}
|
|
17
|
+
export interface RenderTargetReadbackTicket {
|
|
18
|
+
readonly target: RenderTarget;
|
|
19
|
+
frameId: number | undefined;
|
|
20
|
+
deviceGeneration: number;
|
|
21
|
+
readonly mipLevel: number;
|
|
22
|
+
readonly face?: number;
|
|
23
|
+
readonly width: number;
|
|
24
|
+
readonly height: number;
|
|
25
|
+
readonly bytesPerRow: number;
|
|
26
|
+
readonly byteLength: number;
|
|
27
|
+
consumed: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface RenderTargetReadbackResult {
|
|
30
|
+
readonly bytes: Uint8Array;
|
|
31
|
+
readonly frameId: number;
|
|
32
|
+
readonly deviceGeneration: number;
|
|
33
|
+
readonly mipLevel: number;
|
|
34
|
+
readonly face?: number;
|
|
35
|
+
}
|
|
36
|
+
export declare function bindRenderTargetReadbackTicket(ticket: RenderTargetReadbackTicket, receipt: RenderTargetReadbackReceipt): RenderResult<void, RenderError>;
|
|
37
|
+
export declare function createRenderTargetReadbackTicket(target: RenderTarget, input: RenderTargetReadbackTicketInput): RenderResult<RenderTargetReadbackTicket, RenderError>;
|
|
38
|
+
export declare function completeRenderTargetReadback(ticket: RenderTargetReadbackTicket, receipt: RenderTargetReadbackReceipt, bytes: Uint8Array): RenderResult<RenderTargetReadbackResult, RenderError>;
|
|
39
|
+
//# sourceMappingURL=readback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readback.d.ts","sourceRoot":"","sources":["../../src/targets/readback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAiBD,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,0BAA0B,EAClC,OAAO,EAAE,2BAA2B,GACnC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAQjC;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,+BAA+B,GACrC,YAAY,CAAC,0BAA0B,EAAE,WAAW,CAAC,CA0CvD;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,0BAA0B,EAClC,OAAO,EAAE,2BAA2B,EACpC,KAAK,EAAE,UAAU,GAChB,YAAY,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAgCvD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type Result } from '@forgeax/engine-types';
|
|
2
|
+
import { TemporalFrameSubmitError } from '../errors/render';
|
|
3
|
+
export type TemporalResetReason = 'none' | 'camera-cut' | 'resize' | 'signature-change' | 'depth-discontinuity' | 'out-of-screen' | 'queue-submit-failed' | 'device-recovery';
|
|
4
|
+
export interface TemporalFrameInput {
|
|
5
|
+
readonly frameId: number;
|
|
6
|
+
readonly currentViewProjection: Float32Array;
|
|
7
|
+
readonly jitter: readonly [number, number];
|
|
8
|
+
readonly viewport: {
|
|
9
|
+
readonly width: number;
|
|
10
|
+
readonly height: number;
|
|
11
|
+
};
|
|
12
|
+
/** Current camera origin, retained only as accepted temporal history. */
|
|
13
|
+
readonly cameraPosition?: readonly [number, number, number];
|
|
14
|
+
readonly resetReason?: Exclude<TemporalResetReason, 'none' | 'queue-submit-failed'>;
|
|
15
|
+
}
|
|
16
|
+
export interface TemporalFrame {
|
|
17
|
+
readonly frameId: number;
|
|
18
|
+
readonly currentViewProjection: Float32Array;
|
|
19
|
+
readonly previousViewProjection: Float32Array | undefined;
|
|
20
|
+
readonly jitter: readonly [number, number];
|
|
21
|
+
readonly viewport: {
|
|
22
|
+
readonly width: number;
|
|
23
|
+
readonly height: number;
|
|
24
|
+
};
|
|
25
|
+
readonly currentCameraPosition: readonly [number, number, number];
|
|
26
|
+
readonly previousCameraPosition: readonly [number, number, number] | undefined;
|
|
27
|
+
readonly resetReason: TemporalResetReason;
|
|
28
|
+
readonly historyEpoch: number;
|
|
29
|
+
readonly deviceEpoch: number;
|
|
30
|
+
}
|
|
31
|
+
export interface TemporalSubmitResult {
|
|
32
|
+
readonly accepted: boolean;
|
|
33
|
+
readonly reason?: 'queue-submit-failed';
|
|
34
|
+
readonly resetReason?: Exclude<TemporalResetReason, 'none' | 'queue-submit-failed'>;
|
|
35
|
+
}
|
|
36
|
+
export interface TemporalFrameTransaction {
|
|
37
|
+
stage(input: TemporalFrameInput): void;
|
|
38
|
+
commit(submit: TemporalSubmitResult): Result<TemporalFrame, TemporalFrameSubmitError>;
|
|
39
|
+
snapshot(): TemporalFrame;
|
|
40
|
+
}
|
|
41
|
+
export declare function createTemporalFrameTransaction(options: {
|
|
42
|
+
readonly deviceEpoch: number;
|
|
43
|
+
}): TemporalFrameTransaction;
|
|
44
|
+
//# sourceMappingURL=frame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/temporal/frame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAC3B,MAAM,GACN,YAAY,GACZ,QAAQ,GACR,kBAAkB,GAClB,qBAAqB,GACrB,eAAe,GACf,qBAAqB,GACrB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,qBAAqB,EAAE,YAAY,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,yEAAyE;IACzE,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5D,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,mBAAmB,EAAE,MAAM,GAAG,qBAAqB,CAAC,CAAC;CACrF;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,qBAAqB,EAAE,YAAY,CAAC;IAC7C,QAAQ,CAAC,sBAAsB,EAAE,YAAY,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,QAAQ,CAAC,qBAAqB,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClE,QAAQ,CAAC,sBAAsB,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC/E,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,mBAAmB,EAAE,MAAM,GAAG,qBAAqB,CAAC,CAAC;CACrF;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACvC,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAAC,aAAa,EAAE,wBAAwB,CAAC,CAAC;IACtF,QAAQ,IAAI,aAAa,CAAC;CAC3B;AAgCD,wBAAgB,8BAA8B,CAAC,OAAO,EAAE;IACtD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,GAAG,wBAAwB,CA+C3B"}
|
package/dist/temporal/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { addStandardSceneDataPass, addTaaResolvePass, aggregateTemporalDemand, createStandardSceneDataTarget, describeTemporalDemand, standardTemporalLaneAdmission, standardTemporalPostOrder } from '../chunk-
|
|
1
|
+
export { addStandardSceneDataPass, addTaaResolvePass, aggregateTemporalDemand, createStandardSceneDataTarget, describeTemporalDemand, standardTemporalLaneAdmission, standardTemporalPostOrder } from '../chunk-5YADUCA7.mjs';
|
|
2
2
|
import '../chunk-RXZ3RGOU.mjs';
|
|
3
|
-
export { SCENE_DATA_TEMPORAL_V1_DESCRIPTOR, SCENE_DATA_TEMPORAL_V1_SCHEMA, createSceneDataCatalog, isSceneDataTarget, registerSceneDataTarget, sceneDataError, sceneDataTargetAsAttachment, sceneDataTargetOwner, sceneDataTokenMismatch } from '../chunk-
|
|
3
|
+
export { SCENE_DATA_TEMPORAL_V1_DESCRIPTOR, SCENE_DATA_TEMPORAL_V1_SCHEMA, createSceneDataCatalog, isSceneDataTarget, registerSceneDataTarget, sceneDataError, sceneDataTargetAsAttachment, sceneDataTargetOwner, sceneDataTokenMismatch } from '../chunk-6OPXDQ2E.mjs';
|
|
4
4
|
import '../chunk-VFPLTKCU.mjs';
|
|
5
5
|
export { TEMPORAL_JITTER_SAMPLE_COUNT, TemporalFrameCoordinator, classifySceneDataCoverage, createTemporalCoverage, projectTemporalView, scanSceneDataCoverage, snapshotSubmittedTemporalView, temporalJitterSample, temporalViewId } from '../chunk-PCHBPYML.mjs';
|
|
6
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-BXBQQKFQ.mjs';
|
|
7
7
|
//# sourceMappingURL=index.mjs.map
|
|
8
8
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -60,6 +60,8 @@ export interface TypedFullscreenPassOptions {
|
|
|
60
60
|
readonly key: string;
|
|
61
61
|
readonly target: RenderPipelineTarget;
|
|
62
62
|
}[];
|
|
63
|
+
/** Optional per-pass copy of the params UBO payload. */
|
|
64
|
+
readonly paramsTransform?: ((params: Uint8Array | undefined) => Uint8Array | undefined) | undefined;
|
|
63
65
|
}
|
|
64
66
|
export interface TypedTemporalResolveTargets {
|
|
65
67
|
readonly scene: RenderPipelineTarget;
|
|
@@ -76,5 +78,8 @@ export declare function addTypedCompositePostEffects(graph: RenderGraphBuilder<R
|
|
|
76
78
|
readonly width: number;
|
|
77
79
|
readonly height: number;
|
|
78
80
|
}): Result<void, RenderGraphError>;
|
|
79
|
-
export declare function addTypedOutputTransformPass(graph: RenderGraphBuilder<RenderPipelineFrame>, input: RenderPipelineTarget, output: RenderPipelineTarget,
|
|
81
|
+
export declare function addTypedOutputTransformPass(graph: RenderGraphBuilder<RenderPipelineFrame>, input: RenderPipelineTarget, output: RenderPipelineTarget, options?: {
|
|
82
|
+
readonly outputOnly?: boolean;
|
|
83
|
+
readonly dither?: boolean;
|
|
84
|
+
}): Result<void, RenderGraphError>;
|
|
80
85
|
//# sourceMappingURL=typed-render-graph-primitives.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-render-graph-primitives.d.ts","sourceRoot":"","sources":["../src/typed-render-graph-primitives.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAEX,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAEjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAM,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAyB1F,OAAO,KAAK,EAAE,mBAAmB,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAyB1F,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,QAAQ,CAOzE;AAkCD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,KAAK,EAAE,oBAAoB,GAC1B,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAahC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAC9D,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,CAAC;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;IAC5E,QAAQ,CAAC,oBAAoB,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,iCAAiC,GAAG,SAAS,CAAC;CACpE;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,OAAO,EAAE,qBAAqB,GAC7B,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"typed-render-graph-primitives.d.ts","sourceRoot":"","sources":["../src/typed-render-graph-primitives.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAEX,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAEjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAM,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAyB1F,OAAO,KAAK,EAAE,mBAAmB,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAyB1F,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,QAAQ,CAOzE;AAkCD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,KAAK,EAAE,oBAAoB,GAC1B,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAahC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAC9D,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,CAAC;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;IAC5E,QAAQ,CAAC,oBAAoB,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,iCAAiC,GAAG,SAAS,CAAC;CACpE;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,OAAO,EAAE,qBAAqB,GAC7B,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAqHhC;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,MAAM,EAAE,oBAAoB,EAC5B,UAAU,EAAE,mBAAmB,GAC9B,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAyBhC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;CACtC;AAED,sFAAsF;AACtF,eAAO,MAAM,sBAAsB;;;;;CAKzB,CAAC;AAEX,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,OAAO,EAAE,iBAAiB,GACzB,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CA6DhC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;CACxC;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,OAAO,EAAE,gBAAgB,GACxB,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAwEhC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,KAAK,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS;QAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;KACvC,EAAE,CAAC;IACJ,wDAAwD;IACxD,QAAQ,CAAC,eAAe,CAAC,EACrB,CAAC,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,GAC5D,SAAS,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC5C,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;CAC9C;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,OAAO,EAAE,2BAA2B,GACnC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAuFhC;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,OAAO,EAAE,0BAA0B,GAClC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAuDhC;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,oBAAoB,EAC3B,IAAI,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxD,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAgDhC;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,oBAAoB,EAC5B,OAAO,GAAE;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACzE,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAwBhC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface DirectionalShadowAtlasGrid {
|
|
2
|
+
readonly columns: 1 | 2;
|
|
3
|
+
readonly rows: 1 | 2;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* The directional CSM atlas layout is one compact contract for raster writes
|
|
7
|
+
* and shader reads: 1 -> 1x1, 2 -> 2x1, and 3/4 -> 2x2.
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveDirectionalShadowAtlasGrid(cascadeCount: number): DirectionalShadowAtlasGrid;
|
|
10
|
+
//# sourceMappingURL=typed-shadow-atlas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-shadow-atlas.d.ts","sourceRoot":"","sources":["../src/typed-shadow-atlas.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,YAAY,EAAE,MAAM,GACnB,0BAA0B,CAK5B"}
|
|
@@ -3,7 +3,7 @@ import { type Result } from '@forgeax/engine-types';
|
|
|
3
3
|
import type { RenderPipelineFrame, RenderPipelineTopology } from './render-pipeline';
|
|
4
4
|
import { type RenderPipelineTarget } from './render-pipeline';
|
|
5
5
|
export interface TypedShadowTargets {
|
|
6
|
-
readonly directional
|
|
6
|
+
readonly directional?: RenderPipelineTarget | undefined;
|
|
7
7
|
readonly spot: RenderPipelineTarget;
|
|
8
8
|
readonly point?: RenderPipelineTarget | undefined;
|
|
9
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-shadow-passes.d.ts","sourceRoot":"","sources":["../src/typed-shadow-passes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AASxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"typed-shadow-passes.d.ts","sourceRoot":"","sources":["../src/typed-shadow-passes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AASxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG1F,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;CACnD;AAwBD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,QAAQ,EAAE,sBAAsB,GAC/B,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CA8H9C"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type EntityHandle, type World } from '@forgeax/engine-ecs';
|
|
2
|
+
import type { RhiCaps } from '@forgeax/engine-rhi';
|
|
3
|
+
/**
|
|
4
|
+
* The single capability predicate for the authored volumetric-fog producer.
|
|
5
|
+
* Shader sources are part of the device-bound bundle: compute/storage alone
|
|
6
|
+
* is not enough to claim that the three fused graph passes can execute.
|
|
7
|
+
*/
|
|
8
|
+
export declare function hasVolumetricFogCapability(caps: Pick<RhiCaps, 'compute' | 'storageTexture'>, shaders: unknown): boolean;
|
|
9
|
+
export type VolumetricFogLightKind = 'directional' | 'point' | 'spot';
|
|
10
|
+
export type VolumetricFogLightResolution = {
|
|
11
|
+
readonly status: 'available';
|
|
12
|
+
readonly entity: EntityHandle;
|
|
13
|
+
readonly kind: VolumetricFogLightKind;
|
|
14
|
+
} | {
|
|
15
|
+
readonly status: 'unresolved';
|
|
16
|
+
readonly reason: 'missing-entity' | 'wrong-component' | 'ambiguous';
|
|
17
|
+
readonly entity: EntityHandle;
|
|
18
|
+
readonly expected: 'DirectionalLight | PointLight | SpotLight';
|
|
19
|
+
readonly actual: string;
|
|
20
|
+
readonly hint: string;
|
|
21
|
+
};
|
|
22
|
+
export type VolumetricFogLightPairResolution = {
|
|
23
|
+
readonly status: 'available';
|
|
24
|
+
readonly mode: 'point-spot';
|
|
25
|
+
readonly point: EntityHandle;
|
|
26
|
+
readonly spot: EntityHandle;
|
|
27
|
+
} | {
|
|
28
|
+
readonly status: 'unresolved';
|
|
29
|
+
readonly reason: 'missing-entity' | 'same-entity' | 'wrong-component';
|
|
30
|
+
readonly point: EntityHandle;
|
|
31
|
+
readonly spot: EntityHandle;
|
|
32
|
+
readonly expected: 'PointLight + SpotLight in the same World';
|
|
33
|
+
readonly actual: string;
|
|
34
|
+
readonly hint: string;
|
|
35
|
+
};
|
|
36
|
+
/** Resolve the narrow official Point+Spot pair without creating a light owner. */
|
|
37
|
+
export declare function resolveVolumetricFogLightPair(world: World, point: EntityHandle, spot: EntityHandle): VolumetricFogLightPairResolution;
|
|
38
|
+
/**
|
|
39
|
+
* Resolve the required VolumetricFog.light reference in its owning World.
|
|
40
|
+
* PointLight is a valid primary selection for the exact Point+Spot pair.
|
|
41
|
+
* EntityHandle has no portable world tag, so a handle absent from this World
|
|
42
|
+
* (the same World contract) is reported as missing-entity;
|
|
43
|
+
* is reported as missing-entity; callers must not manufacture a light.
|
|
44
|
+
*/
|
|
45
|
+
export declare function resolveSelectedVolumetricLight(world: World, entity: EntityHandle): VolumetricFogLightResolution;
|
|
46
|
+
export interface IntegratedVolumeResource {
|
|
47
|
+
/** Logical resolved-volume identity; this is not a physical graph resource. */
|
|
48
|
+
readonly identity: 'volume-integrated';
|
|
49
|
+
readonly format: 'rgba16float';
|
|
50
|
+
readonly stage: 'resolved';
|
|
51
|
+
}
|
|
52
|
+
export type VolumeConsumer = 'opaque' | 'transparent' | 'sprite' | 'vfx' | 'custom';
|
|
53
|
+
export declare function resolveIntegratedVolumeConsumer(resource: IntegratedVolumeResource, consumer: VolumeConsumer): {
|
|
54
|
+
readonly consumer: VolumeConsumer;
|
|
55
|
+
readonly resource: IntegratedVolumeResource;
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=capability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../src/volume/capability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAMnD;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,gBAAgB,CAAC,EACjD,OAAO,EAAE,OAAO,GACf,OAAO,CAET;AAED,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;AAGtE,MAAM,MAAM,4BAA4B,GACpC;IACE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;CACvC,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,WAAW,CAAC;IACpE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,2CAA2C,CAAC;IAC/D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEN,MAAM,MAAM,gCAAgC,GACxC;IACE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,GAAG,iBAAiB,CAAC;IACtE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,0CAA0C,CAAC;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEN,kFAAkF;AAClF,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,YAAY,GACjB,gCAAgC,CAsClC;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,YAAY,GACnB,4BAA4B,CA4C9B;AAED,MAAM,WAAW,wBAAwB;IACvC,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC5B;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEpF,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,wBAAwB,EAClC,QAAQ,EAAE,cAAc,GACvB;IAAE,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAA;CAAE,CAKpF"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type EntityHandle } from '@forgeax/engine-ecs';
|
|
2
|
+
import { type Result } from '@forgeax/engine-types';
|
|
3
|
+
import { type VolumeError } from '../errors/render';
|
|
4
|
+
export interface VolumeDensityBinding {
|
|
5
|
+
readonly guid: string;
|
|
6
|
+
readonly generation: number;
|
|
7
|
+
readonly shape: {
|
|
8
|
+
readonly viewDimension: '2d' | '2d-array' | '3d';
|
|
9
|
+
readonly extent: {
|
|
10
|
+
readonly width: number;
|
|
11
|
+
readonly height: number;
|
|
12
|
+
readonly depth?: number;
|
|
13
|
+
readonly layers?: number;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
readonly format: string;
|
|
17
|
+
readonly colorSpace?: 'linear' | 'srgb';
|
|
18
|
+
}
|
|
19
|
+
export interface VolumeBounds {
|
|
20
|
+
readonly min: readonly [number, number, number];
|
|
21
|
+
readonly max: readonly [number, number, number];
|
|
22
|
+
}
|
|
23
|
+
export interface VolumetricFogAuthoring {
|
|
24
|
+
/** Invalid authoring reports closed code, expected, hint, and detail fields. */
|
|
25
|
+
/** The selected DirectionalLight or PointLight in this World. */
|
|
26
|
+
readonly light: EntityHandle;
|
|
27
|
+
/** The optional same-World SpotLight paired with a PointLight. */
|
|
28
|
+
readonly spotLight?: EntityHandle;
|
|
29
|
+
readonly density: VolumeDensityBinding;
|
|
30
|
+
readonly bounds: VolumeBounds;
|
|
31
|
+
readonly extinction: readonly [number, number, number];
|
|
32
|
+
readonly albedo: readonly [number, number, number];
|
|
33
|
+
readonly emission: readonly [number, number, number];
|
|
34
|
+
readonly anisotropy: number;
|
|
35
|
+
readonly maxDistance: number;
|
|
36
|
+
readonly ownerCount?: number;
|
|
37
|
+
}
|
|
38
|
+
export type VolumetricFogLightSelection = {
|
|
39
|
+
readonly light: EntityHandle;
|
|
40
|
+
readonly spotLight?: undefined;
|
|
41
|
+
} | {
|
|
42
|
+
readonly light: EntityHandle;
|
|
43
|
+
readonly spotLight: EntityHandle;
|
|
44
|
+
};
|
|
45
|
+
export interface ValidatedVolumetricFog extends VolumetricFogAuthoring {
|
|
46
|
+
readonly ownerCount: 1;
|
|
47
|
+
}
|
|
48
|
+
export declare const VolumetricFog: import("@forgeax/engine-ecs").Component<"VolumetricFog", {
|
|
49
|
+
readonly light: "entity";
|
|
50
|
+
readonly spotLight: "entity";
|
|
51
|
+
readonly density: "shared<TextureAsset>";
|
|
52
|
+
readonly boundsMin: "array<f32, 3>";
|
|
53
|
+
readonly boundsMax: "array<f32, 3>";
|
|
54
|
+
readonly extinction: "array<f32, 3>";
|
|
55
|
+
readonly albedo: "array<f32, 3>";
|
|
56
|
+
readonly emission: "array<f32, 3>";
|
|
57
|
+
readonly anisotropy: "f32";
|
|
58
|
+
readonly maxDistance: "f32";
|
|
59
|
+
}>;
|
|
60
|
+
export declare function validateVolumetricFog(input: VolumetricFogAuthoring): Result<ValidatedVolumetricFog, VolumeError>;
|
|
61
|
+
//# sourceMappingURL=component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/volume/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAEL,KAAK,WAAW,EAIjB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG,UAAU,GAAG,IAAI,CAAC;QACjD,QAAQ,CAAC,MAAM,EAAE;YACf,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;YACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;YACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;SAC1B,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,sBAAsB;IACrC,gFAAgF;IAChF,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,2BAA2B,GACnC;IAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,GAChE;IAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACpE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;CACxB;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;EAWxB,CAAC;AAmBH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,sBAAsB,GAC5B,MAAM,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAsB7C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Result } from '@forgeax/engine-types';
|
|
2
|
+
import { type VolumeError } from '../errors/render';
|
|
3
|
+
import { type ValidatedVolumetricFog, type VolumetricFogAuthoring } from './component';
|
|
4
|
+
export type VolumetricFogExtract = {
|
|
5
|
+
readonly status: 'off';
|
|
6
|
+
} | {
|
|
7
|
+
readonly status: 'available';
|
|
8
|
+
readonly fog: ValidatedVolumetricFog;
|
|
9
|
+
};
|
|
10
|
+
export declare function extractVolumetricFog(inputs: readonly VolumetricFogAuthoring[]): Result<VolumetricFogExtract, VolumeError>;
|
|
11
|
+
//# sourceMappingURL=extract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/volume/extract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,KAAK,WAAW,EAA4B,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAE5B,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAE3E,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,sBAAsB,EAAE,GACxC,MAAM,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAM3C"}
|