@forgeax/engine-render 0.1.4 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +268 -640
- package/dist/.tsbuildinfo +1 -1
- package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts +2 -0
- package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts.map +1 -0
- package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts +2 -0
- package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts.map +1 -0
- package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts +2 -0
- package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts.map +1 -1
- package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts +6 -0
- package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts.map +1 -1
- package/dist/{gpu-driven/view-reference.d.ts → __tests__/gpu-driven-view-reference.d.ts} +4 -4
- package/dist/__tests__/gpu-driven-view-reference.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts.map +1 -1
- package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts +2 -0
- package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts.map +1 -0
- package/dist/__tests__/morph-feature-plan.unit.test.d.ts +2 -0
- package/dist/__tests__/morph-feature-plan.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-plan.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-plan.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-plan.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-plan.unit.test.d.ts.map +1 -0
- package/dist/__tests__/ssao-config.unit.test.d.ts +2 -0
- package/dist/__tests__/ssao-config.unit.test.d.ts.map +1 -0
- package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts +2 -0
- package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts.map +1 -0
- package/dist/__tests__/standard-descriptors.test-d.d.ts +2 -0
- package/dist/__tests__/standard-descriptors.test-d.d.ts.map +1 -0
- package/dist/__tests__/standard-pipeline.dawn.test.d.ts +2 -0
- package/dist/__tests__/standard-pipeline.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/standard-pipeline.integration.test.d.ts +2 -0
- package/dist/__tests__/standard-pipeline.integration.test.d.ts.map +1 -0
- package/dist/__tests__/standard-profile-oracle.unit.test.d.ts +2 -0
- package/dist/__tests__/standard-profile-oracle.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts.map +1 -0
- package/dist/{renderer/backend-selection.d.ts → assembly/backend-contract.d.ts} +15 -4
- package/dist/assembly/backend-contract.d.ts.map +1 -0
- package/dist/assembly/factory.d.ts +214 -0
- package/dist/assembly/factory.d.ts.map +1 -0
- package/dist/assembly/host-contract.d.ts +84 -0
- package/dist/assembly/host-contract.d.ts.map +1 -0
- package/dist/{renderer → assembly}/material/assembly.d.ts +0 -1
- package/dist/{renderer → assembly}/material/assembly.d.ts.map +1 -1
- package/dist/assembly/material/pipeline-projection.d.ts +30 -0
- package/dist/assembly/material/pipeline-projection.d.ts.map +1 -0
- package/dist/authoring.d.ts +11 -11
- package/dist/authoring.d.ts.map +1 -1
- package/dist/authoring.mjs +25 -3
- package/dist/authoring.mjs.map +1 -1
- package/dist/chunk-CQXZC5XI.mjs +182 -0
- package/dist/chunk-CQXZC5XI.mjs.map +1 -0
- package/dist/chunk-HCOGPHKS.mjs +93 -0
- package/dist/chunk-HCOGPHKS.mjs.map +1 -0
- package/dist/chunk-YEJIUW7D.mjs +1152 -0
- package/dist/chunk-YEJIUW7D.mjs.map +1 -0
- package/dist/components/__tests__/points-lines-admission.unit.test.d.ts +2 -0
- package/dist/components/__tests__/points-lines-admission.unit.test.d.ts.map +1 -0
- package/dist/components/__tests__/points-lines-schema.unit.test.d.ts +2 -0
- package/dist/components/__tests__/points-lines-schema.unit.test.d.ts.map +1 -0
- package/dist/components/__tests__/schema-contract.unit.test.d.ts +2 -0
- package/dist/components/__tests__/schema-contract.unit.test.d.ts.map +1 -0
- package/dist/components/glyph-text.d.ts +1 -1
- package/dist/components/glyph-text.d.ts.map +1 -1
- package/dist/components/index.d.ts +4 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/instances.d.ts +1 -1
- package/dist/components/instances.d.ts.map +1 -1
- package/dist/components/light-helpers.d.ts +1 -1
- package/dist/components/light-helpers.d.ts.map +1 -1
- package/dist/components/lines.d.ts +5 -0
- package/dist/components/lines.d.ts.map +1 -0
- package/dist/components/mesh-filter.d.ts +7 -7
- package/dist/components/mesh-filter.d.ts.map +1 -1
- package/dist/components/points.d.ts +15 -0
- package/dist/components/points.d.ts.map +1 -0
- package/dist/components/scene-instance.d.ts +11 -11
- package/dist/components/skybox-background.d.ts +56 -0
- package/dist/components/skybox-background.d.ts.map +1 -0
- package/dist/components/skylight.d.ts +55 -0
- package/dist/components/skylight.d.ts.map +1 -0
- package/dist/components/sprite-animation.d.ts +2 -3
- package/dist/components/sprite-animation.d.ts.map +1 -1
- package/dist/components/sprite-instances.d.ts +1 -1
- package/dist/components/sprite-playback-mode.d.ts +6 -1
- package/dist/components/sprite-playback-mode.d.ts.map +1 -1
- package/dist/components/sprite-region-override.d.ts +2 -3
- package/dist/components/sprite-region-override.d.ts.map +1 -1
- package/dist/components/tile-layer.d.ts +5 -0
- package/dist/components/tile-layer.d.ts.map +1 -1
- package/dist/construct-renderer.d.ts +18 -1
- package/dist/construct-renderer.d.ts.map +1 -1
- package/dist/construct-renderer.mjs +27463 -4
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/debug-draw-glue.d.ts +2 -53
- package/dist/debug-draw-glue.d.ts.map +1 -1
- package/dist/device/device-scope.d.ts +83 -0
- package/dist/device/device-scope.d.ts.map +1 -0
- package/dist/{gpu-resource-store.d.ts → device/gpu-residency.d.ts} +91 -48
- package/dist/device/gpu-residency.d.ts.map +1 -0
- package/dist/device/resource-types.d.ts +8 -0
- package/dist/device/resource-types.d.ts.map +1 -0
- package/dist/engine-metrics.d.ts +2 -2
- package/dist/engine-metrics.d.ts.map +1 -1
- package/dist/errors/recover.d.ts +28 -1
- package/dist/errors/recover.d.ts.map +1 -1
- package/dist/errors/render.d.ts +320 -248
- package/dist/errors/render.d.ts.map +1 -1
- package/dist/features/fullscreen.d.ts +19 -0
- package/dist/features/fullscreen.d.ts.map +1 -0
- package/dist/features/host.d.ts +32 -26
- package/dist/features/host.d.ts.map +1 -1
- package/dist/features/morph/morph-feature.d.ts +39 -5
- package/dist/features/morph/morph-feature.d.ts.map +1 -1
- package/dist/features/plan.d.ts +182 -0
- package/dist/features/plan.d.ts.map +1 -0
- package/dist/features/prepared-gpu-work.d.ts +21 -17
- package/dist/features/prepared-gpu-work.d.ts.map +1 -1
- package/dist/features/prepared-graphics-store.d.ts +2 -1
- package/dist/features/prepared-graphics-store.d.ts.map +1 -1
- package/dist/features/prepared-graphics.d.ts +11 -21
- package/dist/features/prepared-graphics.d.ts.map +1 -1
- package/dist/features/render-graph-compute.d.ts +2 -2
- package/dist/features/render-graph-compute.d.ts.map +1 -1
- package/dist/features/render-graph-contribution.d.ts +4 -7
- package/dist/features/render-graph-contribution.d.ts.map +1 -1
- package/dist/features/render-graph-raster.d.ts +7 -3
- package/dist/features/render-graph-raster.d.ts.map +1 -1
- package/dist/features/render-graph-resources.d.ts +6 -6
- package/dist/features/render-graph-resources.d.ts.map +1 -1
- package/dist/features/targets.d.ts +5 -5
- package/dist/features/targets.d.ts.map +1 -1
- package/dist/features/types.d.ts +11 -190
- package/dist/features/types.d.ts.map +1 -1
- package/dist/features/vocabulary.d.ts +14 -0
- package/dist/features/vocabulary.d.ts.map +1 -0
- package/dist/fullscreen-post-process-pass.d.ts +4 -25
- package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
- package/dist/glyph-text-layout-system.d.ts +3 -2
- package/dist/glyph-text-layout-system.d.ts.map +1 -1
- package/dist/gpu-driven/batch-topology.d.ts +6 -75
- package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
- package/dist/gpu-driven/production-raster.d.ts +13 -112
- package/dist/gpu-driven/production-raster.d.ts.map +1 -1
- package/dist/gpu-driven/view-gpu.d.ts +10 -66
- package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
- package/dist/gpu-resource.d.ts +3 -3
- package/dist/gpu-scene-schema.d.ts +1 -94
- package/dist/gpu-scene-schema.d.ts.map +1 -1
- package/dist/gpu-scene.d.ts +7 -33
- package/dist/gpu-scene.d.ts.map +1 -1
- package/dist/hdrp-buffers.d.ts +3 -53
- package/dist/hdrp-buffers.d.ts.map +1 -1
- package/dist/ibl/IblPipelineCache.d.ts +74 -180
- package/dist/ibl/IblPipelineCache.d.ts.map +1 -1
- package/dist/ibl/skylight-bind-group.d.ts +1 -1
- package/dist/index.d.ts +17 -43
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +167 -3
- package/dist/index.mjs.map +1 -1
- package/dist/inspection-types.d.ts +72 -0
- package/dist/inspection-types.d.ts.map +1 -0
- package/dist/instance-buffer-cache.d.ts +1 -4
- package/dist/instance-buffer-cache.d.ts.map +1 -1
- package/dist/internal.d.ts +1 -73
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.mjs +1 -43
- package/dist/internal.mjs.map +1 -1
- package/dist/lifecycle.d.ts +36 -2
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/materials.d.ts +0 -3
- package/dist/materials.d.ts.map +1 -1
- package/dist/mesh-material-bindings.d.ts +0 -1
- package/dist/mesh-material-bindings.d.ts.map +1 -1
- package/dist/pbr-pipeline.d.ts +77 -29
- package/dist/pbr-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-forward-lane.d.ts +5 -0
- package/dist/pipeline/standard-forward-lane.d.ts.map +1 -0
- package/dist/pipeline/standard-pipeline.d.ts +31 -0
- package/dist/pipeline/standard-pipeline.d.ts.map +1 -0
- package/dist/pipeline/standard-profile.d.ts +40 -0
- package/dist/pipeline/standard-profile.d.ts.map +1 -0
- package/dist/pipeline-builder.d.ts +3 -3
- package/dist/pipeline-builder.d.ts.map +1 -1
- package/dist/pipeline-spec-types.d.ts +24 -0
- package/dist/pipeline-spec-types.d.ts.map +1 -0
- package/dist/pipeline-spec.d.ts +16 -155
- package/dist/pipeline-spec.d.ts.map +1 -1
- package/dist/plugin.d.ts +1 -14
- package/dist/plugin.d.ts.map +1 -1
- package/dist/points-lines/__tests__/bounds.unit.test.d.ts +2 -0
- package/dist/points-lines/__tests__/bounds.unit.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts +2 -0
- package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts +2 -0
- package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/inspection.unit.test.d.ts +2 -0
- package/dist/points-lines/__tests__/inspection.unit.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts +2 -0
- package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/points-lines.bench.d.ts +2 -0
- package/dist/points-lines/__tests__/points-lines.bench.d.ts.map +1 -0
- package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts +2 -0
- package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/snapshot.unit.test.d.ts +2 -0
- package/dist/points-lines/__tests__/snapshot.unit.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts +2 -0
- package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts.map +1 -0
- package/dist/points-lines/admission.d.ts +36 -0
- package/dist/points-lines/admission.d.ts.map +1 -0
- package/dist/points-lines/bounds.d.ts +8 -0
- package/dist/points-lines/bounds.d.ts.map +1 -0
- package/dist/points-lines/expansion-cache.d.ts +28 -0
- package/dist/points-lines/expansion-cache.d.ts.map +1 -0
- package/dist/points-lines/inspection.d.ts +53 -0
- package/dist/points-lines/inspection.d.ts.map +1 -0
- package/dist/points-lines/prepare.d.ts +67 -0
- package/dist/points-lines/prepare.d.ts.map +1 -0
- package/dist/points-lines/record.d.ts +60 -0
- package/dist/points-lines/record.d.ts.map +1 -0
- package/dist/points-lines/snapshot.d.ts +49 -0
- package/dist/points-lines/snapshot.d.ts.map +1 -0
- package/dist/post-process-errors.d.ts +18 -18
- package/dist/post-process-errors.d.ts.map +1 -1
- package/dist/prepare/prepared-graphics-resolver.d.ts +2 -5
- package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -1
- package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts +2 -0
- package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts.map +1 -0
- package/dist/record/frame-lighting.d.ts +7 -73
- package/dist/record/frame-lighting.d.ts.map +1 -1
- package/dist/record/frame-snapshot.d.ts +44 -44
- package/dist/record/frame-snapshot.d.ts.map +1 -1
- package/dist/record/frame-targets.d.ts +5 -38
- package/dist/record/frame-targets.d.ts.map +1 -1
- package/dist/record/frame.d.ts +64 -52
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/helpers.d.ts +3 -2
- package/dist/record/helpers.d.ts.map +1 -1
- package/dist/record/main-pass-geometry.d.ts +12 -4
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/main-pass-material.d.ts +90 -59
- package/dist/record/main-pass-material.d.ts.map +1 -1
- package/dist/record/main-pass-sprite-draws.d.ts +28 -3
- package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
- package/dist/record/main-pass.d.ts +1 -1
- package/dist/record/main-pass.d.ts.map +1 -1
- package/dist/record/mesh-ssbo.d.ts +276 -3
- package/dist/record/mesh-ssbo.d.ts.map +1 -1
- package/dist/record/render-context.d.ts +252 -0
- package/dist/record/render-context.d.ts.map +1 -0
- package/dist/record/shadow-pass.d.ts +15 -88
- package/dist/record/shadow-pass.d.ts.map +1 -1
- package/dist/record/skybox-post-pass.d.ts +1 -1
- package/dist/record/skybox-post-pass.d.ts.map +1 -1
- package/dist/record/typed-frame-graph.d.ts +29 -7
- package/dist/record/typed-frame-graph.d.ts.map +1 -1
- package/dist/record/view-ubo.d.ts +9 -3
- package/dist/record/view-ubo.d.ts.map +1 -1
- package/dist/render-contract.d.ts +424 -0
- package/dist/render-contract.d.ts.map +1 -0
- package/dist/render-data.d.ts.map +1 -1
- package/dist/render-graph-primitives.d.ts +14 -362
- package/dist/render-graph-primitives.d.ts.map +1 -1
- package/dist/render-pipeline.d.ts +25 -64
- package/dist/render-pipeline.d.ts.map +1 -1
- package/dist/render-system-extract.d.ts +110 -338
- package/dist/render-system-extract.d.ts.map +1 -1
- package/dist/render-system.d.ts +24 -713
- package/dist/render-system.d.ts.map +1 -1
- package/dist/scene/render-scene-types.d.ts +61 -0
- package/dist/scene/render-scene-types.d.ts.map +1 -0
- package/dist/scene/render-scene.d.ts +112 -0
- package/dist/scene/render-scene.d.ts.map +1 -0
- package/dist/scene-instances/post-spawn-resolve-joints.d.ts +2 -5
- package/dist/scene-instances/post-spawn-resolve-joints.d.ts.map +1 -1
- package/dist/ssao-buffers.d.ts +22 -3
- package/dist/ssao-buffers.d.ts.map +1 -1
- package/dist/systems/skin-palette-allocator.d.ts +2 -4
- package/dist/systems/skin-palette-allocator.d.ts.map +1 -1
- package/dist/systems/skin-palette-types.d.ts +14 -0
- package/dist/systems/skin-palette-types.d.ts.map +1 -0
- package/dist/systems/transparent-sort-config.d.ts +23 -2
- package/dist/systems/transparent-sort-config.d.ts.map +1 -1
- package/dist/tilemap-chunk-extract-system.d.ts +4 -3
- package/dist/tilemap-chunk-extract-system.d.ts.map +1 -1
- package/dist/typed-render-graph-primitives.d.ts +2 -4
- package/dist/typed-render-graph-primitives.d.ts.map +1 -1
- package/dist/typed-shadow-passes.d.ts +3 -3
- package/dist/typed-shadow-passes.d.ts.map +1 -1
- package/package.json +23 -23
- package/src/__tests__/authoring-path.unit.test.ts +9 -0
- package/src/__tests__/backend-selection-rhi-capture.test-d.ts +1 -1
- package/src/__tests__/callback-inference.test-d.ts +6 -3
- package/src/__tests__/cluster-grid-default-surface.unit.test.ts +7 -4
- package/src/__tests__/construct-renderer-identity.unit.test.ts +15 -2
- package/src/__tests__/device-scope-lifecycle.unit.test.ts +151 -0
- package/src/__tests__/device-scope-stale-matrix.unit.test.ts +42 -0
- package/src/__tests__/direct-extract-consumer-contract.test-d.ts +8 -19
- package/src/__tests__/direct-light-snapshot.unit.test.ts +3 -13
- package/src/__tests__/factory-contract.integration.test.ts +158 -209
- package/src/__tests__/fallback-row-stride-surface.unit.test.ts +1 -4
- package/src/__tests__/frame-observation.contract.test.ts +17 -8
- package/src/__tests__/fullscreen-feature-plan.unit.test.ts +32 -0
- package/src/__tests__/glyph-text-layout-recovery.unit.test.ts +6 -11
- package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +21 -18
- package/src/__tests__/gpu-driven-production.integration.test.ts +32 -205
- package/src/__tests__/gpu-driven-scaling.unit.test.ts +4 -7
- package/src/__tests__/gpu-driven-view-gpu-evidence.ts +87 -8
- package/src/__tests__/gpu-driven-view-graph.integration.test.ts +170 -8
- package/src/{gpu-driven/view-reference.ts → __tests__/gpu-driven-view-reference.ts} +4 -3
- package/src/__tests__/gpu-driven-view.browser.test.ts +12 -1
- package/src/__tests__/gpu-driven-view.dawn.test.ts +12 -1
- package/src/__tests__/gpu-driven-view.unit.test.ts +11 -267
- package/src/__tests__/gpu-resource-store-stride.unit.test.ts +3 -3
- package/src/__tests__/gpu-scene-render-graph-gpu.ts +2 -3
- package/src/__tests__/gpu-scene.dawn.test.ts +2 -6
- package/src/__tests__/gpu-scene.unit.test.ts +10 -24
- package/src/__tests__/ibl/face-uniforms.unit.test.ts +46 -0
- package/src/__tests__/infinite-grid-no-vertex-probe.unit.test.ts +34 -66
- package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +14 -5
- package/src/__tests__/light-buffer-layout.unit.test.ts +4 -49
- package/src/__tests__/material-cooked-projection.unit.test.ts +31 -58
- package/src/__tests__/material-snapshot-mutation.integration.test.ts +10 -15
- package/src/__tests__/material-static-dynamic-route.unit.test.ts +31 -50
- package/src/__tests__/material-stride-surface.unit.test.ts +2 -2
- package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +7 -8
- package/src/__tests__/morph-culling-reentry.dawn.test.ts +29 -38
- package/src/__tests__/morph-feature-gpu-work.integration.test.ts +45 -43
- package/src/__tests__/morph-feature-plan.unit.test.ts +53 -0
- package/src/__tests__/morph-visual-evidence.integration.test.ts +47 -33
- package/src/__tests__/nineslice-handle-surface.unit.test.ts +11 -6
- package/src/__tests__/post-process-error-policy-owner.unit.test.ts +6 -13
- package/src/__tests__/prepared-graphics-capability.unit.test.ts +6 -81
- package/src/__tests__/prepared-graphics-generation.unit.test.ts +3 -17
- package/src/__tests__/prepared-graphics-lifecycle.unit.test.ts +6 -74
- package/src/__tests__/prepared-graphics-resolver.unit.test.ts +1 -3
- package/src/__tests__/prepared-graphics-snapshot.unit.test.ts +2 -2
- package/src/__tests__/profiler-default-off.test.ts +1 -1
- package/src/__tests__/profiler-phase-catalog.test.ts +2 -2
- package/src/__tests__/profiler-phase-integration.test.ts +5 -13
- package/src/__tests__/profiler-phase-token.test.ts +3 -8
- package/src/__tests__/public-surface.test-d.ts +65 -3
- package/src/__tests__/recover-error-policy-owner.unit.test.ts +1 -21
- package/src/__tests__/render-error-code-owner.test-d.ts +24 -23
- package/src/__tests__/render-error-detail-ssot.test-d.ts +0 -95
- package/src/__tests__/render-error-exhaustive.test-d.ts +27 -1
- package/src/__tests__/render-feature-assembly.test-d.ts +8 -16
- package/src/__tests__/render-feature-context.test-d.ts +16 -40
- package/src/__tests__/render-feature-contract.test-d.ts +9 -18
- package/src/__tests__/render-feature-diagnostics.unit.test.ts +6 -8
- package/src/__tests__/render-feature-docs.unit.test.ts +8 -7
- package/src/__tests__/render-feature-gpu-work.integration.test.ts +14 -75
- package/src/__tests__/render-feature-plan.test-d.ts +161 -0
- package/src/__tests__/render-feature-plan.unit.test.ts +170 -0
- package/src/__tests__/render-feature-prepared-diagnostics.unit.test.ts +8 -19
- package/src/__tests__/render-feature-prepared-errors.test-d.ts +3 -6
- package/src/__tests__/render-feature-prepared-graphics-docs.unit.test.ts +10 -71
- package/src/__tests__/render-feature-prepared-graphics-isolation.unit.test.ts +11 -61
- package/src/__tests__/render-feature-prepared-graphics-negative.test-d.ts +20 -43
- package/src/__tests__/render-feature-prepared-graphics.test-d.ts +56 -78
- package/src/__tests__/render-feature-public-surface.test-d.ts +6 -24
- package/src/__tests__/render-feature-retry.unit.test.ts +7 -48
- package/src/__tests__/render-feature-scheduling.unit.test.ts +15 -27
- package/src/__tests__/render-feature-stage-failed-policy-owner.unit.test.ts +0 -9
- package/src/__tests__/render-feature-stage-fault-recovery.unit.test.ts +19 -109
- package/src/__tests__/render-feature-visibility-context.test-d.ts +1 -6
- package/src/__tests__/render-feature-visibility-context.unit.test.ts +1 -2
- package/src/__tests__/render-feature-zero-work.unit.test.ts +14 -20
- package/src/__tests__/render-scene-projection.unit.test.ts +73 -111
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +82 -95
- package/src/__tests__/renderer-lifecycle.integration.test.ts +49 -1
- package/src/__tests__/shader-stage-surface.unit.test.ts +14 -9
- package/src/__tests__/ssao-config.unit.test.ts +36 -0
- package/src/__tests__/ssao-kernel-surface.unit.test.ts +4 -5
- package/src/__tests__/standard-clustered-pipeline.unit.test.ts +28 -0
- package/src/__tests__/standard-descriptors.test-d.ts +22 -0
- package/src/__tests__/standard-pipeline.dawn.test.ts +61 -0
- package/src/__tests__/standard-pipeline.integration.test.ts +124 -0
- package/src/__tests__/standard-profile-oracle.unit.test.ts +62 -0
- package/src/__tests__/surface-configuration.unit.test.ts +1 -2
- package/src/__tests__/texture-usage-surface.unit.test.ts +3 -6
- package/src/__tests__/typed-pipeline-topology.unit.test.ts +40 -206
- package/src/__tests__/urp-pipeline-targets.unit.test.ts +1 -11
- package/src/__tests__/urp-pipeline.unit.test.ts +2 -2
- package/src/__tests__/vertex-color-pipeline.unit.test.ts +10 -2
- package/src/__tests__/vertex-layout-consumer.unit.test.ts +1 -1
- package/src/__tests__/visibility-diagnostics.integration.test.ts +7 -11
- package/src/__tests__/visibility-extract.integration.test.ts +20 -11
- package/src/__tests__/visibility-extract.perf.test.ts +66 -32
- package/src/__tests__/visibility-feature-dedup.integration.test.ts +2 -4
- package/src/__tests__/visibility-hidden-report.unit.test.ts +1 -2
- package/src/__tests__/visibility-instances.integration.test.ts +7 -11
- package/src/__tests__/visibility-multi-world.integration.test.ts +38 -6
- package/src/__tests__/visibility-producer-matrix.integration.test.ts +18 -41
- package/src/__tests__/visibility-public-surface.test-d.ts +10 -9
- package/src/__tests__/visibility-resolver.unit.test.ts +2 -1
- package/src/__tests__/visibility-resource-short-circuit.unit.test.ts +80 -0
- package/src/__tests__/visibility-snapshot-contract.unit.test.ts +2 -1
- package/src/__tests__/vocabulary.unit.test.ts +1 -1
- package/src/assembly/backend-contract.ts +57 -0
- package/src/{renderer/renderer-factory.ts → assembly/factory.ts} +1741 -2699
- package/src/assembly/host-contract.ts +101 -0
- package/src/{renderer → assembly}/material/assembly.ts +2 -7
- package/src/assembly/material/pipeline-projection.ts +63 -0
- package/src/authoring.ts +15 -22
- package/src/components/__tests__/points-lines-admission.unit.test.ts +219 -0
- package/src/components/__tests__/points-lines-schema.unit.test.ts +56 -0
- package/src/components/__tests__/schema-contract.unit.test.ts +10 -0
- package/src/components/glyph-text.ts +3 -2
- package/src/components/index.ts +14 -9
- package/src/components/instances.ts +4 -5
- package/src/components/light-helpers.ts +1 -1
- package/src/components/lines.ts +18 -0
- package/src/components/mesh-filter.ts +11 -10
- package/src/components/points.ts +40 -0
- package/src/components/post-process-params.ts +3 -3
- package/src/components/scene-instance.ts +12 -12
- package/src/components/skybox-background.ts +103 -0
- package/src/components/{environment.ts → skylight.ts} +2 -110
- package/src/components/sprite-animation.ts +3 -4
- package/src/components/sprite-instances.ts +2 -2
- package/src/components/sprite-playback-mode.ts +7 -1
- package/src/components/sprite-region-override.ts +2 -3
- package/src/components/tile-layer.ts +8 -2
- package/src/construct-renderer.ts +67 -4
- package/src/debug-draw-glue.ts +8 -129
- package/src/device/device-scope.ts +306 -0
- package/src/{gpu-resource-store.ts → device/gpu-residency.ts} +540 -639
- package/src/device/resource-types.ts +20 -0
- package/src/engine-metrics.ts +12 -19
- package/src/errors/recover.ts +45 -3
- package/src/errors/render.ts +469 -429
- package/src/features/fullscreen.ts +46 -0
- package/src/features/host.ts +575 -309
- package/src/features/morph/morph-feature.ts +195 -105
- package/src/features/plan.ts +447 -0
- package/src/features/prepared-gpu-work.ts +72 -15
- package/src/features/prepared-graphics-store.ts +20 -6
- package/src/features/prepared-graphics.ts +12 -71
- package/src/features/render-graph-compute.ts +14 -5
- package/src/features/render-graph-contribution.ts +43 -63
- package/src/features/render-graph-raster.ts +32 -8
- package/src/features/render-graph-resources.ts +25 -23
- package/src/features/targets.ts +8 -21
- package/src/features/types.ts +39 -227
- package/src/features/vocabulary.ts +24 -0
- package/src/fullscreen-post-process-pass.ts +14 -57
- package/src/glyph-text-layout-system.ts +70 -96
- package/src/gpu-driven/batch-topology.ts +24 -202
- package/src/gpu-driven/production-raster.ts +99 -1109
- package/src/gpu-driven/view-gpu.ts +46 -192
- package/src/gpu-resource.ts +4 -4
- package/src/gpu-scene-schema.ts +11 -99
- package/src/gpu-scene.ts +231 -364
- package/src/hdrp-buffers.ts +12 -221
- package/src/ibl/IblPipelineCache.ts +471 -711
- package/src/ibl/skylight-bind-group.ts +4 -4
- package/src/index.ts +75 -217
- package/src/inspection-types.ts +80 -0
- package/src/instance-buffer-cache.ts +1 -29
- package/src/internal.ts +6 -85
- package/src/lifecycle.ts +64 -19
- package/src/materials.ts +7 -29
- package/src/mesh-material-bindings.ts +0 -1
- package/src/pbr-pipeline.ts +441 -53
- package/src/{urp-pipeline.ts → pipeline/standard-forward-lane.ts} +38 -149
- package/src/{hdrp-pipeline.ts → pipeline/standard-pipeline.ts} +221 -191
- package/src/pipeline/standard-profile.ts +65 -0
- package/src/pipeline-builder.ts +60 -64
- package/src/pipeline-spec-types.ts +28 -0
- package/src/pipeline-spec.ts +72 -609
- package/src/plugin.ts +7 -75
- package/src/points-lines/__tests__/bounds.unit.test.ts +21 -0
- package/src/points-lines/__tests__/cache-recovery.unit.test.ts +157 -0
- package/src/points-lines/__tests__/inspection-lanes.integration.test.ts +146 -0
- package/src/points-lines/__tests__/inspection.unit.test.ts +173 -0
- package/src/points-lines/__tests__/lane-structural.integration.test.ts +122 -0
- package/src/points-lines/__tests__/points-lines.bench.ts +400 -0
- package/src/points-lines/__tests__/raster-lane.integration.test.ts +44 -0
- package/src/points-lines/__tests__/snapshot.unit.test.ts +101 -0
- package/src/points-lines/__tests__/view-ubo.unit.test.ts +73 -0
- package/src/points-lines/admission.ts +238 -0
- package/src/points-lines/bounds.ts +23 -0
- package/src/points-lines/expansion-cache.ts +215 -0
- package/src/points-lines/inspection.ts +97 -0
- package/src/points-lines/prepare.ts +177 -0
- package/src/points-lines/record.ts +125 -0
- package/src/points-lines/snapshot.ts +130 -0
- package/src/post-process-errors.ts +31 -33
- package/src/prepare/prepared-graphics-resolver.ts +5 -4
- package/src/record/__tests__/material-slot-plan.unit.test.ts +1 -33
- package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +41 -0
- package/src/record/__tests__/video-texture-view.unit.test.ts +1 -1
- package/src/record/frame-lighting.ts +88 -197
- package/src/record/frame-snapshot.ts +45 -60
- package/src/record/frame-targets.ts +8 -243
- package/src/record/frame.ts +521 -797
- package/src/record/helpers.ts +6 -11
- package/src/record/main-pass-geometry.ts +198 -147
- package/src/record/main-pass-material.ts +517 -190
- package/src/record/main-pass-sprite-draws.ts +199 -118
- package/src/record/main-pass.ts +166 -144
- package/src/record/mesh-ssbo.ts +517 -38
- package/src/record/render-context.ts +384 -0
- package/src/record/shadow-pass.ts +154 -1843
- package/src/record/skybox-post-pass.ts +14 -15
- package/src/record/typed-frame-graph.ts +224 -262
- package/src/record/view-ubo.ts +53 -37
- package/src/render-contract.ts +582 -0
- package/src/render-data.ts +3 -3
- package/src/render-graph-primitives.ts +76 -851
- package/src/render-pipeline.ts +104 -188
- package/src/render-system-extract.ts +1114 -1732
- package/src/render-system.ts +614 -1939
- package/src/scene/render-scene-types.ts +67 -0
- package/src/scene/render-scene.ts +1087 -0
- package/src/scene-instances/post-spawn-resolve-joints.ts +4 -7
- package/src/ssao-buffers.ts +167 -8
- package/src/systems/skin-palette-allocator.ts +21 -64
- package/src/systems/skin-palette-types.ts +14 -0
- package/src/systems/transparent-sort-config.ts +25 -3
- package/src/tilemap-chunk-extract-system.ts +53 -70
- package/src/typed-render-graph-primitives.ts +35 -24
- package/src/typed-shadow-passes.ts +26 -56
- package/dist/__tests__/analytic-sky-contract.test.d.ts +0 -2
- package/dist/__tests__/analytic-sky-contract.test.d.ts.map +0 -1
- package/dist/__tests__/analytic-sky-falsify.test.d.ts +0 -2
- package/dist/__tests__/analytic-sky-falsify.test.d.ts.map +0 -1
- package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts +0 -2
- package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts.map +0 -1
- package/dist/__tests__/backend-selection.integration.test.d.ts +0 -2
- package/dist/__tests__/backend-selection.integration.test.d.ts.map +0 -1
- package/dist/__tests__/camera-temporal.test-d.d.ts +0 -2
- package/dist/__tests__/camera-temporal.test-d.d.ts.map +0 -1
- package/dist/__tests__/camera-temporal.test.d.ts +0 -2
- package/dist/__tests__/camera-temporal.test.d.ts.map +0 -1
- package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts +0 -2
- package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts.map +0 -1
- package/dist/__tests__/environment-inspection.test.d.ts +0 -2
- package/dist/__tests__/environment-inspection.test.d.ts.map +0 -1
- package/dist/__tests__/fog-ai-user.fixture.d.ts +0 -2
- package/dist/__tests__/fog-ai-user.fixture.d.ts.map +0 -1
- package/dist/__tests__/fog-custom-render-feature.fixture.d.ts +0 -16
- package/dist/__tests__/fog-custom-render-feature.fixture.d.ts.map +0 -1
- package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-inspection.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-inspection.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-owner-state.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-owner-state.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-public-surface.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-public-surface.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-ray-contract.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-ray-contract.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-source-absence.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-source-absence.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-temporal.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-temporal.integration.test.d.ts.map +0 -1
- package/dist/__tests__/frame-chain.unit.test.d.ts +0 -2
- package/dist/__tests__/frame-chain.unit.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts +0 -2
- package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/hdrp-pipeline.unit.test.d.ts +0 -2
- package/dist/__tests__/hdrp-pipeline.unit.test.d.ts.map +0 -1
- package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts +0 -2
- package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts.map +0 -1
- package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts +0 -2
- package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts.map +0 -1
- package/dist/__tests__/material-derived-payload.integration.test.d.ts +0 -2
- package/dist/__tests__/material-derived-payload.integration.test.d.ts.map +0 -1
- package/dist/__tests__/materials.unit.test.d.ts +0 -2
- package/dist/__tests__/materials.unit.test.d.ts.map +0 -1
- package/dist/__tests__/param-schema-projection-census.unit.test.d.ts +0 -2
- package/dist/__tests__/param-schema-projection-census.unit.test.d.ts.map +0 -1
- package/dist/__tests__/persistent-render-scene.unit.test.d.ts +0 -2
- package/dist/__tests__/persistent-render-scene.unit.test.d.ts.map +0 -1
- package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts +0 -2
- package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts.map +0 -1
- package/dist/__tests__/pipeline-pass-trace.test.d.ts +0 -2
- package/dist/__tests__/pipeline-pass-trace.test.d.ts.map +0 -1
- package/dist/__tests__/pipeline-stage-owner.test-d.d.ts +0 -2
- package/dist/__tests__/pipeline-stage-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/plugin.test.d.ts +0 -2
- package/dist/__tests__/plugin.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts.map +0 -1
- package/dist/__tests__/public-pipeline-id.test-d.d.ts +0 -2
- package/dist/__tests__/public-pipeline-id.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-dispatch-membership.unit.test.d.ts +0 -2
- package/dist/__tests__/render-dispatch-membership.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-construction.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-construction.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-graph.integration.test.d.ts +0 -2
- package/dist/__tests__/render-feature-graph.integration.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-order.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-order.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-staging.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-staging.unit.test.d.ts.map +0 -1
- package/dist/__tests__/renderer-render-scene-public.test-d.d.ts +0 -2
- package/dist/__tests__/renderer-render-scene-public.test-d.d.ts.map +0 -1
- package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts +0 -2
- package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts.map +0 -1
- package/dist/__tests__/sun-snapshot-consumers.test.d.ts +0 -2
- package/dist/__tests__/sun-snapshot-consumers.test.d.ts.map +0 -1
- package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts +0 -2
- package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/taa-history-store.unit.test.d.ts +0 -2
- package/dist/__tests__/taa-history-store.unit.test.d.ts.map +0 -1
- package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts +0 -2
- package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts.map +0 -1
- package/dist/__tests__/temporal-inspection.unit.test.d.ts +0 -2
- package/dist/__tests__/temporal-inspection.unit.test.d.ts.map +0 -1
- package/dist/assets/__tests__/asset-decoders.unit.test.d.ts +0 -2
- package/dist/assets/__tests__/asset-decoders.unit.test.d.ts.map +0 -1
- package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts +0 -2
- package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts.map +0 -1
- package/dist/assets/__tests__/render-asset-port.unit.test.d.ts +0 -2
- package/dist/assets/__tests__/render-asset-port.unit.test.d.ts.map +0 -1
- package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts +0 -2
- package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts.map +0 -1
- package/dist/chunk-DJIMFYX6.mjs +0 -1439
- package/dist/chunk-DJIMFYX6.mjs.map +0 -1
- package/dist/chunk-F2SIOCRM.mjs +0 -7423
- package/dist/chunk-F2SIOCRM.mjs.map +0 -1
- package/dist/chunk-JMSB7AR4.mjs +0 -3
- package/dist/chunk-JMSB7AR4.mjs.map +0 -1
- package/dist/chunk-KHI6K4C6.mjs +0 -659
- package/dist/chunk-KHI6K4C6.mjs.map +0 -1
- package/dist/chunk-PORZOL2V.mjs +0 -569
- package/dist/chunk-PORZOL2V.mjs.map +0 -1
- package/dist/chunk-UOJGMDGP.mjs +0 -29913
- package/dist/chunk-UOJGMDGP.mjs.map +0 -1
- package/dist/components/__tests__/atmosphere-red.test.d.ts +0 -2
- package/dist/components/__tests__/atmosphere-red.test.d.ts.map +0 -1
- package/dist/components/__tests__/atmosphere.test.d.ts +0 -2
- package/dist/components/__tests__/atmosphere.test.d.ts.map +0 -1
- package/dist/components/__tests__/fog.test-d.d.ts +0 -2
- package/dist/components/__tests__/fog.test-d.d.ts.map +0 -1
- package/dist/components/__tests__/fog.test.d.ts +0 -2
- package/dist/components/__tests__/fog.test.d.ts.map +0 -1
- package/dist/components/atmosphere.d.ts +0 -18
- package/dist/components/atmosphere.d.ts.map +0 -1
- package/dist/components/environment.d.ts +0 -115
- package/dist/components/environment.d.ts.map +0 -1
- package/dist/deferred-lighting.d.ts +0 -13
- package/dist/deferred-lighting.d.ts.map +0 -1
- package/dist/dynamic-texture-store.d.ts +0 -42
- package/dist/dynamic-texture-store.d.ts.map +0 -1
- package/dist/environment/__tests__/failure-injection.test.d.ts +0 -2
- package/dist/environment/__tests__/failure-injection.test.d.ts.map +0 -1
- package/dist/environment/__tests__/generation-red.test.d.ts +0 -2
- package/dist/environment/__tests__/generation-red.test.d.ts.map +0 -1
- package/dist/environment/__tests__/generation.test.d.ts +0 -2
- package/dist/environment/__tests__/generation.test.d.ts.map +0 -1
- package/dist/environment/__tests__/graph-transaction.test.d.ts +0 -2
- package/dist/environment/__tests__/graph-transaction.test.d.ts.map +0 -1
- package/dist/environment/__tests__/inspection-red.test.d.ts +0 -2
- package/dist/environment/__tests__/inspection-red.test.d.ts.map +0 -1
- package/dist/environment/__tests__/lifecycle-evidence.test.d.ts +0 -2
- package/dist/environment/__tests__/lifecycle-evidence.test.d.ts.map +0 -1
- package/dist/environment/__tests__/pipeline-topology.test.d.ts +0 -2
- package/dist/environment/__tests__/pipeline-topology.test.d.ts.map +0 -1
- package/dist/environment/__tests__/readiness.test.d.ts +0 -2
- package/dist/environment/__tests__/readiness.test.d.ts.map +0 -1
- package/dist/environment/__tests__/recovery.test.d.ts +0 -2
- package/dist/environment/__tests__/recovery.test.d.ts.map +0 -1
- package/dist/environment/__tests__/resize-dispose.test.d.ts +0 -2
- package/dist/environment/__tests__/resize-dispose.test.d.ts.map +0 -1
- package/dist/environment/__tests__/signature-red.test.d.ts +0 -2
- package/dist/environment/__tests__/signature-red.test.d.ts.map +0 -1
- package/dist/environment/__tests__/signature.test.d.ts +0 -2
- package/dist/environment/__tests__/signature.test.d.ts.map +0 -1
- package/dist/environment/descriptors.d.ts +0 -2
- package/dist/environment/descriptors.d.ts.map +0 -1
- package/dist/environment/extracted-environment.d.ts +0 -53
- package/dist/environment/extracted-environment.d.ts.map +0 -1
- package/dist/environment/generation.d.ts +0 -62
- package/dist/environment/generation.d.ts.map +0 -1
- package/dist/environment/gpu-bundle.d.ts +0 -23
- package/dist/environment/gpu-bundle.d.ts.map +0 -1
- package/dist/environment/graph.d.ts +0 -108
- package/dist/environment/graph.d.ts.map +0 -1
- package/dist/environment/inspection.d.ts +0 -48
- package/dist/environment/inspection.d.ts.map +0 -1
- package/dist/environment/lifecycle.d.ts +0 -22
- package/dist/environment/lifecycle.d.ts.map +0 -1
- package/dist/environment/readiness.d.ts +0 -29
- package/dist/environment/readiness.d.ts.map +0 -1
- package/dist/environment/signature.d.ts +0 -70
- package/dist/environment/signature.d.ts.map +0 -1
- package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts +0 -2
- package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts.map +0 -1
- package/dist/extract/__tests__/environment-source.test.d.ts +0 -2
- package/dist/extract/__tests__/environment-source.test.d.ts.map +0 -1
- package/dist/extract/__tests__/schema-readers.unit.test.d.ts +0 -2
- package/dist/extract/__tests__/schema-readers.unit.test.d.ts.map +0 -1
- package/dist/extract/directional-csm.d.ts +0 -129
- package/dist/extract/directional-csm.d.ts.map +0 -1
- package/dist/extract/index.d.ts +0 -5
- package/dist/extract/index.d.ts.map +0 -1
- package/dist/extract/material-interface.d.ts +0 -56
- package/dist/extract/material-interface.d.ts.map +0 -1
- package/dist/extract/schema-readers.d.ts +0 -20
- package/dist/extract/schema-readers.d.ts.map +0 -1
- package/dist/features/graph-contribution.d.ts +0 -64
- package/dist/features/graph-contribution.d.ts.map +0 -1
- package/dist/features/index.d.ts +0 -21
- package/dist/features/index.d.ts.map +0 -1
- package/dist/features/morph/index.d.ts +0 -3
- package/dist/features/morph/index.d.ts.map +0 -1
- package/dist/features/morph/morph-bounds.d.ts +0 -42
- package/dist/features/morph/morph-bounds.d.ts.map +0 -1
- package/dist/features/scene-temporal.d.ts +0 -45
- package/dist/features/scene-temporal.d.ts.map +0 -1
- package/dist/features/taa-resolve.d.ts +0 -21
- package/dist/features/taa-resolve.d.ts.map +0 -1
- package/dist/frame-chain.d.ts +0 -14
- package/dist/frame-chain.d.ts.map +0 -1
- package/dist/gpu-driven/view-reference.d.ts.map +0 -1
- package/dist/gpu-resource-store.d.ts.map +0 -1
- package/dist/hdrp-cluster-membership.d.ts +0 -2
- package/dist/hdrp-cluster-membership.d.ts.map +0 -1
- package/dist/hdrp-pipeline.d.ts +0 -36
- package/dist/hdrp-pipeline.d.ts.map +0 -1
- package/dist/ibl/cubemap-projection.d.ts +0 -23
- package/dist/ibl/cubemap-projection.d.ts.map +0 -1
- package/dist/ibl/face-uniforms.d.ts +0 -65
- package/dist/ibl/face-uniforms.d.ts.map +0 -1
- package/dist/mesh-update-errors.d.ts +0 -71
- package/dist/mesh-update-errors.d.ts.map +0 -1
- package/dist/mipmap-generator.d.ts +0 -39
- package/dist/mipmap-generator.d.ts.map +0 -1
- package/dist/param-schema-projection-census.d.ts +0 -18
- package/dist/param-schema-projection-census.d.ts.map +0 -1
- package/dist/persistent-render-scene.d.ts +0 -158
- package/dist/persistent-render-scene.d.ts.map +0 -1
- package/dist/pipeline/index.d.ts +0 -11
- package/dist/pipeline/index.d.ts.map +0 -1
- package/dist/pipeline-errors.d.ts +0 -110
- package/dist/pipeline-errors.d.ts.map +0 -1
- package/dist/prepare/__tests__/schema-readers.unit.test.d.ts +0 -2
- package/dist/prepare/__tests__/schema-readers.unit.test.d.ts.map +0 -1
- package/dist/prepare/index.d.ts +0 -4
- package/dist/prepare/index.d.ts.map +0 -1
- package/dist/prepare/schema-readers.d.ts +0 -11
- package/dist/prepare/schema-readers.d.ts.map +0 -1
- package/dist/record/__tests__/environment-record.test.d.ts +0 -2
- package/dist/record/__tests__/environment-record.test.d.ts.map +0 -1
- package/dist/record/__tests__/frame-targets.unit.test.d.ts +0 -2
- package/dist/record/__tests__/frame-targets.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/membership-timing.unit.test.d.ts +0 -2
- package/dist/record/__tests__/membership-timing.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/render-submission.integration.test.d.ts +0 -2
- package/dist/record/__tests__/render-submission.integration.test.d.ts.map +0 -1
- package/dist/record/__tests__/render-submission.perf.test.d.ts +0 -2
- package/dist/record/__tests__/render-submission.perf.test.d.ts.map +0 -1
- package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts +0 -2
- package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts +0 -2
- package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts.map +0 -1
- package/dist/record/frame-observation.d.ts +0 -38
- package/dist/record/frame-observation.d.ts.map +0 -1
- package/dist/record/index.d.ts +0 -15
- package/dist/record/index.d.ts.map +0 -1
- package/dist/record/main-pass-skin.d.ts +0 -46
- package/dist/record/main-pass-skin.d.ts.map +0 -1
- package/dist/record/main-pass-sprite.d.ts +0 -69
- package/dist/record/main-pass-sprite.d.ts.map +0 -1
- package/dist/record/material-payload.d.ts +0 -43
- package/dist/record/material-payload.d.ts.map +0 -1
- package/dist/record/material-slot-plan.d.ts +0 -26
- package/dist/record/material-slot-plan.d.ts.map +0 -1
- package/dist/record/membership-timing.d.ts +0 -232
- package/dist/record/membership-timing.d.ts.map +0 -1
- package/dist/record/shadow-caster-uniform.d.ts +0 -8
- package/dist/record/shadow-caster-uniform.d.ts.map +0 -1
- package/dist/record/shadow-submit-mode.d.ts +0 -66
- package/dist/record/shadow-submit-mode.d.ts.map +0 -1
- package/dist/render-dispatch-membership.d.ts +0 -47
- package/dist/render-dispatch-membership.d.ts.map +0 -1
- package/dist/render-pipeline-context.d.ts +0 -289
- package/dist/render-pipeline-context.d.ts.map +0 -1
- package/dist/render-pipeline-target.d.ts +0 -16
- package/dist/render-pipeline-target.d.ts.map +0 -1
- package/dist/render-scene-projection.d.ts +0 -174
- package/dist/render-scene-projection.d.ts.map +0 -1
- package/dist/render-system-fold.d.ts +0 -266
- package/dist/render-system-fold.d.ts.map +0 -1
- package/dist/renderer/asset-service.d.ts +0 -10
- package/dist/renderer/asset-service.d.ts.map +0 -1
- package/dist/renderer/backend-selection.d.ts.map +0 -1
- package/dist/renderer/environment-classify.d.ts +0 -6
- package/dist/renderer/environment-classify.d.ts.map +0 -1
- package/dist/renderer/environment-error.d.ts +0 -13
- package/dist/renderer/environment-error.d.ts.map +0 -1
- package/dist/renderer/material/pipeline-projection.d.ts +0 -91
- package/dist/renderer/material/pipeline-projection.d.ts.map +0 -1
- package/dist/renderer/renderer-factory.d.ts +0 -289
- package/dist/renderer/renderer-factory.d.ts.map +0 -1
- package/dist/renderer.d.ts +0 -771
- package/dist/renderer.d.ts.map +0 -1
- package/dist/scene-utils/collect-subtree.d.ts +0 -11
- package/dist/scene-utils/collect-subtree.d.ts.map +0 -1
- package/dist/ssao-data.d.ts +0 -34
- package/dist/ssao-data.d.ts.map +0 -1
- package/dist/surface-format.d.ts +0 -10
- package/dist/surface-format.d.ts.map +0 -1
- package/dist/taa-history-store.d.ts +0 -88
- package/dist/taa-history-store.d.ts.map +0 -1
- package/dist/temporal-coverage.d.ts +0 -35
- package/dist/temporal-coverage.d.ts.map +0 -1
- package/dist/temporal-frame-transaction.d.ts +0 -92
- package/dist/temporal-frame-transaction.d.ts.map +0 -1
- package/dist/temporal-inspection.d.ts +0 -57
- package/dist/temporal-inspection.d.ts.map +0 -1
- package/dist/temporal-view.d.ts +0 -43
- package/dist/temporal-view.d.ts.map +0 -1
- package/dist/tilemap/resolve-tileset-runtime.d.ts +0 -23
- package/dist/tilemap/resolve-tileset-runtime.d.ts.map +0 -1
- package/dist/urp-pipeline.d.ts +0 -4
- package/dist/urp-pipeline.d.ts.map +0 -1
- package/src/__tests__/analytic-sky-contract.test.ts +0 -27
- package/src/__tests__/analytic-sky-falsify-carriers.mjs +0 -43
- package/src/__tests__/analytic-sky-falsify.test.ts +0 -94
- package/src/__tests__/assets-runtime-handoff.integration.test.ts +0 -36
- package/src/__tests__/backend-selection.integration.test.ts +0 -11
- package/src/__tests__/camera-temporal.test-d.ts +0 -8
- package/src/__tests__/camera-temporal.test.ts +0 -188
- package/src/__tests__/directional-shadow-probe-atlas-layout.unit.test.ts +0 -18
- package/src/__tests__/environment-inspection.test.ts +0 -45
- package/src/__tests__/fog-ai-user.fixture.ts +0 -350
- package/src/__tests__/fog-custom-render-feature.fixture.ts +0 -33
- package/src/__tests__/fog-custom-render-feature.integration.test.ts +0 -76
- package/src/__tests__/fog-inspection.integration.test.ts +0 -127
- package/src/__tests__/fog-owner-state.integration.test.ts +0 -112
- package/src/__tests__/fog-pipeline-topology.integration.test.ts +0 -93
- package/src/__tests__/fog-public-surface.integration.test.ts +0 -60
- package/src/__tests__/fog-ray-contract.integration.test.ts +0 -73
- package/src/__tests__/fog-source-absence.integration.test.ts +0 -51
- package/src/__tests__/fog-temporal.integration.test.ts +0 -115
- package/src/__tests__/frame-chain.unit.test.ts +0 -26
- package/src/__tests__/gpu-scene-field-type-owner.test-d.ts +0 -27
- package/src/__tests__/hdrp-pipeline.unit.test.ts +0 -100
- package/src/__tests__/ibl/ibl-fallback.unit.test.ts +0 -23
- package/src/__tests__/material-derived-error-stop-draw.integration.test.ts +0 -69
- package/src/__tests__/material-derived-payload.integration.test.ts +0 -164
- package/src/__tests__/materials.unit.test.ts +0 -25
- package/src/__tests__/param-schema-projection-census.unit.test.ts +0 -40
- package/src/__tests__/persistent-render-scene.unit.test.ts +0 -1311
- package/src/__tests__/pipeline-error-policy-owner.unit.test.ts +0 -167
- package/src/__tests__/pipeline-pass-trace.test.ts +0 -92
- package/src/__tests__/pipeline-stage-owner.test-d.ts +0 -13
- package/src/__tests__/plugin.test.ts +0 -25
- package/src/__tests__/prepared-graphics-backend-matrix.unit.test.ts +0 -129
- package/src/__tests__/prepared-graphics-resolver-recording.unit.test.ts +0 -180
- package/src/__tests__/public-pipeline-id.test-d.ts +0 -6
- package/src/__tests__/render-dispatch-membership.unit.test.ts +0 -117
- package/src/__tests__/render-feature-construction.unit.test.ts +0 -124
- package/src/__tests__/render-feature-error-code-owner.test-d.ts +0 -27
- package/src/__tests__/render-feature-gpu-buffer-usage-owner.test-d.ts +0 -46
- package/src/__tests__/render-feature-graph.integration.test.ts +0 -205
- package/src/__tests__/render-feature-graphics-staging.unit.test.ts +0 -200
- package/src/__tests__/render-feature-order.unit.test.ts +0 -66
- package/src/__tests__/render-feature-prepared-graphics-recording.unit.test.ts +0 -107
- package/src/__tests__/render-feature-staging.unit.test.ts +0 -94
- package/src/__tests__/renderer-render-scene-public.test-d.ts +0 -27
- package/src/__tests__/scene-temporal-coverage.unit.test.ts +0 -259
- package/src/__tests__/sun-snapshot-consumers.test.ts +0 -35
- package/src/__tests__/surface-backend-kind-owner.test-d.ts +0 -42
- package/src/__tests__/taa-history-store.unit.test.ts +0 -196
- package/src/__tests__/temporal-frame-transaction.integration.test.ts +0 -537
- package/src/__tests__/temporal-inspection.unit.test.ts +0 -138
- package/src/assets/__tests__/asset-decoders.unit.test.ts +0 -92
- package/src/assets/__tests__/mipmap-generator.unit.test.ts +0 -52
- package/src/assets/__tests__/render-asset-port.unit.test.ts +0 -54
- package/src/assets/__tests__/resolve-render-asset.unit.test.ts +0 -47
- package/src/components/__tests__/atmosphere-red.test.ts +0 -51
- package/src/components/__tests__/atmosphere.test.ts +0 -79
- package/src/components/__tests__/fog.test-d.ts +0 -49
- package/src/components/__tests__/fog.test.ts +0 -60
- package/src/components/atmosphere.ts +0 -64
- package/src/deferred-lighting.ts +0 -92
- package/src/dynamic-texture-store.ts +0 -111
- package/src/environment/README.md +0 -76
- package/src/environment/__tests__/failure-injection.test.ts +0 -50
- package/src/environment/__tests__/generation-red.test.ts +0 -64
- package/src/environment/__tests__/generation.test.ts +0 -37
- package/src/environment/__tests__/graph-transaction.test.ts +0 -85
- package/src/environment/__tests__/inspection-red.test.ts +0 -53
- package/src/environment/__tests__/lifecycle-evidence.test.ts +0 -40
- package/src/environment/__tests__/pipeline-topology.test.ts +0 -33
- package/src/environment/__tests__/readiness.test.ts +0 -42
- package/src/environment/__tests__/recovery.test.ts +0 -62
- package/src/environment/__tests__/resize-dispose.test.ts +0 -30
- package/src/environment/__tests__/signature-red.test.ts +0 -45
- package/src/environment/__tests__/signature.test.ts +0 -60
- package/src/environment/descriptors.ts +0 -7
- package/src/environment/extracted-environment.ts +0 -239
- package/src/environment/generation.ts +0 -158
- package/src/environment/gpu-bundle.ts +0 -144
- package/src/environment/graph.ts +0 -588
- package/src/environment/inspection.ts +0 -107
- package/src/environment/lifecycle.ts +0 -124
- package/src/environment/readiness.ts +0 -76
- package/src/environment/signature.ts +0 -185
- package/src/extract/__tests__/directional-csm-domain.unit.test.ts +0 -391
- package/src/extract/__tests__/environment-source.test.ts +0 -105
- package/src/extract/__tests__/schema-readers.unit.test.ts +0 -16
- package/src/extract/directional-csm.ts +0 -959
- package/src/extract/index.ts +0 -10
- package/src/extract/material-interface.ts +0 -604
- package/src/extract/schema-readers.ts +0 -27
- package/src/features/graph-contribution.ts +0 -577
- package/src/features/index.ts +0 -100
- package/src/features/morph/index.ts +0 -24
- package/src/features/morph/morph-bounds.ts +0 -123
- package/src/features/scene-temporal.ts +0 -274
- package/src/features/taa-resolve.ts +0 -244
- package/src/frame-chain.ts +0 -21
- package/src/hdrp-cluster-membership.ts +0 -70
- package/src/ibl/cubemap-projection.ts +0 -60
- package/src/ibl/face-uniforms.ts +0 -150
- package/src/mesh-update-errors.ts +0 -113
- package/src/mipmap-generator.ts +0 -244
- package/src/param-schema-projection-census.ts +0 -73
- package/src/persistent-render-scene.ts +0 -1752
- package/src/pipeline/index.ts +0 -40
- package/src/pipeline-errors.ts +0 -172
- package/src/prepare/__tests__/schema-readers.unit.test.ts +0 -16
- package/src/prepare/index.ts +0 -8
- package/src/prepare/schema-readers.ts +0 -20
- package/src/record/__tests__/environment-record.test.ts +0 -35
- package/src/record/__tests__/frame-targets.unit.test.ts +0 -54
- package/src/record/__tests__/membership-timing.unit.test.ts +0 -524
- package/src/record/__tests__/render-submission.integration.test.ts +0 -76
- package/src/record/__tests__/render-submission.perf.test.ts +0 -141
- package/src/record/__tests__/shadow-submit-mode.unit.test.ts +0 -88
- package/src/record/__tests__/view-ubo-layout.unit.test.ts +0 -101
- package/src/record/frame-observation.ts +0 -122
- package/src/record/index.ts +0 -15
- package/src/record/main-pass-skin.ts +0 -51
- package/src/record/main-pass-sprite.ts +0 -166
- package/src/record/material-payload.ts +0 -292
- package/src/record/material-slot-plan.ts +0 -68
- package/src/record/membership-timing.ts +0 -1012
- package/src/record/shadow-caster-uniform.ts +0 -37
- package/src/record/shadow-submit-mode.ts +0 -277
- package/src/render-dispatch-membership.ts +0 -155
- package/src/render-pipeline-context.ts +0 -332
- package/src/render-pipeline-target.ts +0 -96
- package/src/render-scene-projection.ts +0 -1738
- package/src/render-system-fold.ts +0 -531
- package/src/renderer/asset-service.ts +0 -32
- package/src/renderer/backend-selection.ts +0 -121
- package/src/renderer/environment-classify.ts +0 -30
- package/src/renderer/environment-error.ts +0 -19
- package/src/renderer/material/pipeline-projection.ts +0 -140
- package/src/renderer.ts +0 -940
- package/src/scene-utils/collect-subtree.ts +0 -40
- package/src/ssao-data.ts +0 -106
- package/src/surface-format.ts +0 -37
- package/src/taa-history-store.ts +0 -429
- package/src/temporal-coverage.ts +0 -106
- package/src/temporal-frame-transaction.ts +0 -301
- package/src/temporal-inspection.ts +0 -194
- package/src/temporal-view.ts +0 -174
- package/src/tilemap/resolve-tileset-runtime.ts +0 -72
package/dist/render-system.d.ts
CHANGED
|
@@ -1,44 +1,18 @@
|
|
|
1
1
|
import type { World } from '@forgeax/engine-ecs';
|
|
2
|
-
import type {
|
|
3
|
-
import type
|
|
4
|
-
import
|
|
5
|
-
import { type
|
|
6
|
-
import type { MaterialRuntimeArtifact } from '@forgeax/engine-shader';
|
|
7
|
-
import { type ImmutableParamSchemaProjection, type MaterialRenderState, type ParamSchemaEntry, type PassKind, type PrimitiveTopology, type RenderPipelineAsset } from '@forgeax/engine-types';
|
|
8
|
-
import type { RenderAssetPort } from './assets/render-asset-port';
|
|
9
|
-
import type { DynamicTextureStore } from './dynamic-texture-store';
|
|
10
|
-
import type { EngineMetrics } from './engine-metrics';
|
|
11
|
-
import { type EnvironmentInspection } from './environment/inspection';
|
|
12
|
-
import { type ObservationUnavailableError, type RenderError } from './errors/render';
|
|
13
|
-
import { type RenderFeatureGraphComposition, type RenderFeatureGraphContribution } from './features/graph-contribution';
|
|
14
|
-
import { type RenderFeatureHost } from './features/host';
|
|
15
|
-
import type { RenderFeaturePassContext } from './features/types';
|
|
2
|
+
import type { RenderReadLease } from '@forgeax/engine-ecs/projection';
|
|
3
|
+
import { type Result } from '@forgeax/engine-rhi';
|
|
4
|
+
import { type RenderPipelineAsset } from '@forgeax/engine-types';
|
|
5
|
+
import { type ObservationUnavailableError } from './errors/render';
|
|
16
6
|
import { type PostProcessShaderEntry } from './fullscreen-post-process-pass';
|
|
17
|
-
import {
|
|
18
|
-
import type {
|
|
19
|
-
|
|
20
|
-
import type { RhiErrorListenerRegistry } from './lifecycle';
|
|
7
|
+
import type { RenderSceneInspection } from './inspection-types';
|
|
8
|
+
import type { PointsLinesRetainedSnapshot } from './points-lines/snapshot';
|
|
9
|
+
export type { RenderSceneInspection } from './inspection-types';
|
|
21
10
|
import type { MeshMaterialBindingObservation } from './mesh-material-bindings';
|
|
22
|
-
import { type
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
import { type ShadowSubmitMode, type ShadowSubmitModeState, type ShadowSubmitResult } from './record/shadow-submit-mode';
|
|
28
|
-
import type { RenderPipeline as RenderPipelineDef } from './render-pipeline';
|
|
29
|
-
import type { RenderPipelineContext } from './render-pipeline-context';
|
|
30
|
-
import { type TemporalInspection } from './temporal-inspection';
|
|
31
|
-
export type RenderSceneInspection = PersistentRenderSceneInspection & {
|
|
32
|
-
readonly gpuDriven: GpuDrivenProductionInspection;
|
|
33
|
-
readonly temporal: TemporalInspection;
|
|
34
|
-
readonly environment: EnvironmentInspection;
|
|
35
|
-
};
|
|
36
|
-
import { type DrawOwnerOptions } from './renderer';
|
|
37
|
-
import type { MaterialRenderProjection } from './renderer/material/assembly';
|
|
38
|
-
import type { MaterialReadiness } from './renderer/material/pipeline-projection';
|
|
39
|
-
import type { SkinPaletteAllocator } from './systems/skin-palette-allocator';
|
|
40
|
-
/** Dynamic-offset stride for one derived material UBO slot. */
|
|
41
|
-
export declare const MATERIAL_PER_ENTITY_STRIDE = 512;
|
|
11
|
+
import { type FrameObservation, type FrameObservationOptions } from './record/frame';
|
|
12
|
+
import type { RenderSystemInternals } from './record/render-context';
|
|
13
|
+
import { type DrawOwnerOptions } from './render-contract';
|
|
14
|
+
export type { _InternalRenderPipelineContext, _StandardForwardSceneView, PerPassResources, PipelineState, RenderSystemInternals, RenderSystemRuntime, SurfaceBackendKind, SwapChainFormatPair, } from './record/render-context';
|
|
15
|
+
export { configureSurface, MATERIAL_PER_ENTITY_STRIDE, resolveSurfaceFormatPair, STANDARD_PBR_UBO_SIZE, selectSwapChainFormat, } from './record/render-context';
|
|
42
16
|
/**
|
|
43
17
|
* Engine-internal Extract / Prepare / Record driver; constructed by createRenderer.
|
|
44
18
|
*
|
|
@@ -57,15 +31,9 @@ export declare const MATERIAL_PER_ENTITY_STRIDE = 512;
|
|
|
57
31
|
*/
|
|
58
32
|
export interface RenderSystem {
|
|
59
33
|
/** Returns true only when this invocation reached queue submission. */
|
|
60
|
-
draw(worlds: readonly World[], opts: DrawOwnerOptions): boolean;
|
|
61
|
-
/** Apply one renderer-owned shadow submission mode for one generation. */
|
|
62
|
-
applyShadowSubmitMode(mode: ShadowSubmitMode, rendererGeneration: string): ShadowSubmitResult<ShadowSubmitModeState>;
|
|
63
|
-
/** Restore the renderer-owned mode to the independent baseline. */
|
|
64
|
-
restoreShadowSubmitMode(rendererGeneration: string): ShadowSubmitResult<ShadowSubmitModeState>;
|
|
65
|
-
/** Read the generation-bound mode and exact lifecycle counters. */
|
|
66
|
-
getShadowSubmitMode(): ShadowSubmitModeState;
|
|
34
|
+
draw(worlds: readonly World[], opts: DrawOwnerOptions, renderReadLeases?: readonly RenderReadLease[]): boolean;
|
|
67
35
|
/** Release renderer-owned persistent state for one detached World. */
|
|
68
|
-
|
|
36
|
+
detachScene(world: World): void;
|
|
69
37
|
/** Release the profiler catalog contribution owned by this RenderSystem. */
|
|
70
38
|
releaseProfilerCatalog(): void;
|
|
71
39
|
observeCurrentFrame(options: FrameObservationOptions): Promise<Result<FrameObservation, ObservationUnavailableError>>;
|
|
@@ -86,6 +54,8 @@ export interface RenderSystem {
|
|
|
86
54
|
};
|
|
87
55
|
/** Persistent scene maintenance evidence from the ordinary single-World path. */
|
|
88
56
|
readonly renderScene: RenderSceneInspection;
|
|
57
|
+
/** Retained Points/Lines authoring facts from the single scene projection. */
|
|
58
|
+
readonly pointsLinesSnapshots: readonly PointsLinesRetainedSnapshot[];
|
|
89
59
|
/** Current mesh-slot provenance and active diagnostics from the last frame. */
|
|
90
60
|
readonly meshMaterialBindings: readonly MeshMaterialBindingObservation[];
|
|
91
61
|
/**
|
|
@@ -116,45 +86,10 @@ export interface RenderSystem {
|
|
|
116
86
|
readonly createBindGroup: number;
|
|
117
87
|
readonly keys: readonly string[];
|
|
118
88
|
};
|
|
119
|
-
/**
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
* declare the `shadowDepth` color target. Read-only debug seam:
|
|
124
|
-
* the engine itself reads the same view inline in `recordFrame`;
|
|
125
|
-
* this getter exists so debug readback paths
|
|
126
|
-
* (`Renderer.debugSampleShadowFactor`) read the same SSOT view as
|
|
127
|
-
* the engine's record stage (D-2: graph owns the lifecycle; no
|
|
128
|
-
* mirror slot on `pipelineState.perPassResources`).
|
|
129
|
-
*/
|
|
130
|
-
getCurrentShadowView(): any | null;
|
|
131
|
-
/**
|
|
132
|
-
* feat-20260601-customizable-render-pipeline-seam M1 / w7: register a render-pipeline
|
|
133
|
-
* logic under `id`. Same-id re-register THROWS a PipelineError
|
|
134
|
-
* (`'pipeline-already-registered'`) - programmer-error fail-fast, mirroring
|
|
135
|
-
* ShaderRegistry.installMaterialArtifact. Engine builtins use the `forgeax::` prefix.
|
|
136
|
-
*/
|
|
137
|
-
registerPipeline(id: string, impl: RenderPipelineDef): void;
|
|
138
|
-
/**
|
|
139
|
-
* feat-20260601-customizable-render-pipeline-seam M1 / w7 (D-19): install the pipeline
|
|
140
|
-
* described by a `RenderPipelineAsset` POD. Looks up `pipelineId` in the registry; on an
|
|
141
|
-
* unregistered id returns `Result.err(PipelineError{code:'pipeline-not-found'})`. On
|
|
142
|
-
* success the next `draw` detects the install-epoch bump and rebuilds the memoized
|
|
143
|
-
* per-frame graph (hot-swap). Takes the payload directly because installation happens at
|
|
144
|
-
* boot/swap time before any World exists -- there is no handle to resolve.
|
|
145
|
-
*/
|
|
146
|
-
installPipeline(asset: RenderPipelineAsset): Result<() => void, PipelineError>;
|
|
147
|
-
/**
|
|
148
|
-
* feat-20260604-resource-owning-render-graph-and-fullscreen-postpr M2 / w13:
|
|
149
|
-
* fullscreen post-process shader registry, parallel to ShaderRegistry.installMaterialArtifact
|
|
150
|
-
* (D-4: material shader handles 4-BGL / 12-float-vertex / depth / triangle-list, while
|
|
151
|
-
* fullscreen post-process uses 0-vertex-buffer / no-depth / input-texture-BGL).
|
|
152
|
-
* Same-id re-register THROWS PostProcessError ('post-process-already-registered').
|
|
153
|
-
* Engine builtins use the `forgeax::` prefix.
|
|
154
|
-
*/
|
|
155
|
-
readonly postProcess: {
|
|
156
|
-
register(id: string, entry: PostProcessShaderEntry): () => void;
|
|
157
|
-
};
|
|
89
|
+
/** Configure the sole Standard graph owner before the first frame. */
|
|
90
|
+
configureStandard(config: RenderPipelineAsset['config']): void;
|
|
91
|
+
/** Register one engine-owned post-process shader used by the Standard lane. */
|
|
92
|
+
registerBuiltinPostProcess(id: string, entry: PostProcessShaderEntry): () => void;
|
|
158
93
|
/**
|
|
159
94
|
* feat-20260612-rhi-destroy-renderer-dispose-gpu-lifecycle / M5 / w21:
|
|
160
95
|
* release the per-RenderSystem frame-state GPU bookkeeping during
|
|
@@ -178,637 +113,13 @@ export interface RenderSystem {
|
|
|
178
113
|
* Idempotent and graph-optional (no-op when nothing has compiled yet).
|
|
179
114
|
*/
|
|
180
115
|
resetForRecover(): void;
|
|
181
|
-
/** Recreate GPU-driven production state after internals.device is replaced. */
|
|
182
|
-
restoreGpuDrivenForRecover(): void;
|
|
183
116
|
/** Recreate post-process GPU parameter resources after a device rebuild. */
|
|
184
117
|
restorePostProcessResources(): void;
|
|
185
118
|
}
|
|
119
|
+
export declare function createRenderSystem(internals: RenderSystemInternals): RenderSystem;
|
|
186
120
|
/**
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
* directly: the GPU `device`, the structured-error sink `errorRegistry`, and the two
|
|
191
|
-
* per-MaterialShader pipeline-cache / param-schema lookups. `RenderPipelineContext.runtime`
|
|
192
|
-
* is typed as this interface, NOT the full `RenderSystemInternals` - a pipeline author
|
|
193
|
-
* cannot reach `context` / `getPipelineState` / `canvas` (charter P4: a
|
|
194
|
-
* consistent narrow abstraction over the runtime, not the kitchen-sink). `internals`
|
|
195
|
-
* itself is unreachable through the public ctx (the AC-08 oracle: `ctx.internals` is a
|
|
196
|
-
* compile error).
|
|
197
|
-
*/
|
|
198
|
-
export interface RenderSystemRuntime {
|
|
199
|
-
readonly device: RhiDevice;
|
|
200
|
-
readonly errorRegistry: RhiErrorListenerRegistry;
|
|
201
|
-
/** @internal Emit directional shadow causal markers only for debug capture. */
|
|
202
|
-
readonly shadowDebugObservation?: boolean | undefined;
|
|
203
|
-
/** @internal Debug-only ParamSchema compatibility census; absent in production. */
|
|
204
|
-
readonly paramSchemaProjectionCensus?: ParamSchemaProjectionCensus | undefined;
|
|
205
|
-
/** @internal Depth-only fullscreen draw used to clear one invalid cascade tile. */
|
|
206
|
-
readonly getDirectionalShadowTileClearPipeline?: () => RenderPipeline | null;
|
|
207
|
-
/**
|
|
208
|
-
* feat-20260622-s5-device-surface-self-heal-recover M2 / w8: health registry
|
|
209
|
-
* threaded into the record stage so `recordFrame` can fire `internal-fault`
|
|
210
|
-
* when surface reconfigure+retry both fail (A-IN-2).
|
|
211
|
-
*/
|
|
212
|
-
readonly healthRegistry: import('./lifecycle').HealthListenerRegistry;
|
|
213
|
-
/**
|
|
214
|
-
* Cooked material consumption boundary. Runtime record code may obtain a
|
|
215
|
-
* projection and content-addressed artifact here; it must not resolve an
|
|
216
|
-
* authored parent chain or compile a missing specialization.
|
|
217
|
-
*/
|
|
218
|
-
readonly getMaterialProjection?: (materialGuid: string) => MaterialRenderProjection | undefined;
|
|
219
|
-
readonly getMaterialArtifact?: (specializationKey: string) => MaterialRuntimeArtifact | undefined;
|
|
220
|
-
/** Production MaterialReady/Error lookup used by the record draw gate. */
|
|
221
|
-
readonly getMaterialReadiness?: (materialGuid: string) => MaterialReadiness | undefined;
|
|
222
|
-
readonly getMaterialShaderPipeline?: (materialShaderId: string, isHdr: boolean, renderState?: MaterialRenderState, topology?: PrimitiveTopology, indexFormat?: 'uint16' | 'uint32', variantSet?: string, passKind?: PassKind, meshAttributes?: import('@forgeax/engine-types').VertexAttributeMap, sampleCount?: number, colorFormatOverride?: GPUTextureFormat, shaderUvSetCount?: number, depthFormatOverride?: GPUTextureFormat | null, vertexLayout?: string, materialGuid?: string, fragmentEntry?: string,
|
|
223
|
-
/** Geometry-owned immutable projection carried to the renderer PSO seam. */
|
|
224
|
-
vertexLayoutProjection?: VertexLayoutProjection) => RenderPipeline | null;
|
|
225
|
-
readonly getMaterialShaderBindingContract?: (materialShaderId: string) => 'group-0' | 'group-0-resource' | 'view-only' | 'view-with-resource' | 'render-material';
|
|
226
|
-
/**
|
|
227
|
-
* feat-20260527 M2 / w7: schema lookup for material param overlay.
|
|
228
|
-
* Returns the paramSchema for a registered material shader, or
|
|
229
|
-
* `undefined` when the shader is not in the ShaderRegistry.
|
|
230
|
-
* Record stage uses this instead of reading `MaterialSnapshot.paramSchema`.
|
|
231
|
-
*/
|
|
232
|
-
readonly getParamSchema?: (materialShaderId: string) => readonly ParamSchemaEntry[] | undefined;
|
|
233
|
-
/**
|
|
234
|
-
* Runtime ParamSchema projection owner lookup. Registered shader consumers
|
|
235
|
-
* must prefer this immutable projection over deriving the same schema again.
|
|
236
|
-
* The optional seam keeps feature-only and legacy test runtimes compatible.
|
|
237
|
-
*/
|
|
238
|
-
readonly getParamSchemaProjection?: (materialShaderId: string) => ImmutableParamSchemaProjection | undefined;
|
|
239
|
-
/**
|
|
240
|
-
* feat-20260621-learn-render-5-5-parallax M2 / w6 (D-1): the per-shader
|
|
241
|
-
* material BindGroupLayout for the given material shader. A custom shader
|
|
242
|
-
* declaring >3 user-region textures (e.g. parallax `heightTexture`) owns a
|
|
243
|
-
* material BGL whose entry count + injection start differ from the built-in
|
|
244
|
-
* 18-entry layout; the record stage must create the material bind group
|
|
245
|
-
* against THIS layout so the entry count matches. Returns `undefined` when
|
|
246
|
-
* the shader is unregistered or resolves to the shared built-in layout
|
|
247
|
-
* (3-texture shaders), in which case the caller falls back to
|
|
248
|
-
* `pipelineState.materialBindGroupLayout`.
|
|
249
|
-
*/
|
|
250
|
-
readonly getMaterialBindGroupLayout?: (materialShaderId: string) => BindGroupLayout | undefined;
|
|
251
|
-
/**
|
|
252
|
-
* feat-20260527-sprite-nineslice M4 / w16 (D-5): per-Renderer metrics counter
|
|
253
|
-
* surfaced through `renderer.metrics`. Record-stage soft-warns (e.g.
|
|
254
|
-
* `nineslice.scale-too-small` when Transform.scale falls below the four
|
|
255
|
-
* 9-slice corner anchors) call `runtime.metrics.increment(name)` instead of
|
|
256
|
-
* a per-entity `console.warn` so AI users observe machine-readable counters
|
|
257
|
-
* (charter P3 over P-flooded text logs). Each Renderer owns its own
|
|
258
|
-
* EngineMetrics instance (D-5 candidate 1: multi-Renderer isolation).
|
|
259
|
-
*/
|
|
260
|
-
readonly metrics: EngineMetrics;
|
|
261
|
-
/** Optional Render-owned membership timing capability. */
|
|
262
|
-
readonly membershipTiming?: MembershipTimingController | undefined;
|
|
263
|
-
/**
|
|
264
|
-
* feat-20260604-resource-owning-render-graph-and-fullscreen-postpr M3 / F-2 fix-up:
|
|
265
|
-
* post-process registry lookup. Returns the `PostProcessShaderEntry` registered
|
|
266
|
-
* via `renderer.postProcess.register(id, entry)`, or `undefined` when `id`
|
|
267
|
-
* resolves to no entry. `addFullscreenPass`'s execute closure dispatches on this
|
|
268
|
-
* to route to either the FXAA built-in path (id === 'fxaa') or the generic
|
|
269
|
-
* `buildFullscreenPostProcessPass + createFullscreenBindGroup` path; an
|
|
270
|
-
* unregistered id surfaces as a thrown `PostProcessError({code:'post-process-not-found'})`
|
|
271
|
-
* fail-fast (charter P3 / pipeline-errors throw template).
|
|
272
|
-
*
|
|
273
|
-
* Optional so a custom RenderSystemRuntime fixture (test doubles) need not
|
|
274
|
-
* supply it; the engine's own createRenderSystem populates it unconditionally.
|
|
275
|
-
*/
|
|
276
|
-
readonly lookupPostProcess?: (id: string) => PostProcessShaderEntry | undefined;
|
|
277
|
-
/**
|
|
278
|
-
* feat-20260621-fullscreen-post-process-per-frame-uniform-params-l M-A2 / w8:
|
|
279
|
-
* per-shader params UBO accessor. Returns the eager-created (at register time,
|
|
280
|
-
* M-A1 / w5) GPU buffer for `id`, or `undefined` when the id has no params
|
|
281
|
-
* (param-less consumer) / is unregistered. dispatchFullscreenPass reads this to
|
|
282
|
-
* writeBuffer the per-frame snapshot bytes and bind the buffer at group(1)
|
|
283
|
-
* binding(2). Optional so test fixtures need not supply it; createRenderSystem
|
|
284
|
-
* populates it unconditionally (mirrors lookupPostProcess / getPostProcessPipeline).
|
|
285
|
-
*/
|
|
286
|
-
readonly getPostProcessParamsBuffer?: (id: string) => Buffer | undefined;
|
|
287
|
-
/**
|
|
288
|
-
* feat-20260609-learn-render-4-5-framebuffers-demo-offscreen-rt-an M4 / T-10-a:
|
|
289
|
-
* post-process render-pipeline lookup with eager-on-first-call build. Returns a
|
|
290
|
-
* cached `RenderPipeline` (RHI handle) for `id`, lazily building on first call
|
|
291
|
-
* via the closure passed through `RenderSystemInternals.buildPostProcessPipeline`.
|
|
292
|
-
* Returns `null` when:
|
|
293
|
-
* - the id is not registered in the post-process registry (caller skips the
|
|
294
|
-
* pass — paired with the `'post-process-not-found'` throw site, this branch
|
|
295
|
-
* is unreachable on the happy path)
|
|
296
|
-
* - the underlying async shader-module compile is still pending (caller falls
|
|
297
|
-
* back for one frame and retries on the next; mirrors the
|
|
298
|
-
* `getMaterialShaderPipeline` 1-frame-warmup idiom)
|
|
299
|
-
* - the pipeline build itself fails (caller skips the pass; the build path
|
|
300
|
-
* fires a structured RhiError via errorRegistry; charter P3 explicit failure)
|
|
301
|
-
*
|
|
302
|
-
* Solves M1 CONCERN-1: the dispatcher in `dispatchFullscreenPass` previously
|
|
303
|
-
* passed `pipeline=null` to `built.createHandle` because the per-frame execute
|
|
304
|
-
* closure cannot await `createShaderModule` (async). With this lookup the
|
|
305
|
-
* dispatcher reads the pipeline synchronously; warm-up costs one frame.
|
|
306
|
-
*
|
|
307
|
-
* `bgl` is the fullscreen input-texture BGL the dispatcher already built via
|
|
308
|
-
* `buildFullscreenPostProcessPass`. The engine assumes a single static BGL
|
|
309
|
-
* shape (FULLSCREEN_BGL_DESCRIPTOR) so the pipeline cache keys on `id` only;
|
|
310
|
-
* subsequent calls reuse the cached pipeline regardless of which BGL identity
|
|
311
|
-
* is threaded.
|
|
312
|
-
*
|
|
313
|
-
* `colorFormat` is the swap-chain / target color format the post-process
|
|
314
|
-
* pipeline writes (`bgra8unorm-srgb` for swap-chain, the offscreen RT format
|
|
315
|
-
* otherwise). Cache key is `id|colorFormat`.
|
|
316
|
-
*
|
|
317
|
-
* Optional so a custom RenderSystemRuntime fixture (test doubles) need not
|
|
318
|
-
* supply it; the engine's own createRenderSystem populates it when
|
|
319
|
-
* `RenderSystemInternals.buildPostProcessPipeline` is provided.
|
|
320
|
-
*/
|
|
321
|
-
readonly getPostProcessPipeline?: (id: string, bgl: BindGroupLayout, colorFormat: GPUTextureFormat) => RenderPipeline | null;
|
|
322
|
-
/**
|
|
323
|
-
* feat-20260623-world-space-video-asset M4 / w16 (D-3): transient per-frame
|
|
324
|
-
* texture store for VideoAsset sources. Independent of {@link gpuStore} — the
|
|
325
|
-
* record stage routes a `MaterialSnapshot.videoTextureFields` field through
|
|
326
|
-
* this store (per-frame copyExternalImageToTexture upload + current-frame view)
|
|
327
|
-
* instead of `gpuStore.ensureResident` (whose static cache video must never
|
|
328
|
-
* enter, AC-08). Optional so test fixtures that drive recordFrame manually
|
|
329
|
-
* need not supply one — a video field then degrades to the default view
|
|
330
|
-
* (charter P3). The production createRenderer always wires it.
|
|
331
|
-
*/
|
|
332
|
-
readonly dynamicTextureStore?: DynamicTextureStore | undefined;
|
|
333
|
-
}
|
|
334
|
-
export interface RenderSystemInternals extends RenderSystemRuntime {
|
|
335
|
-
readonly canvas: HTMLCanvasElement | OffscreenCanvas;
|
|
336
|
-
/** Optional feature host supplied by the renderer assembly layer. */
|
|
337
|
-
readonly featureHost?: RenderFeatureHost | undefined;
|
|
338
|
-
readonly shaderModuleFactory?: import('./pipeline-builder').PipelineBuilderShaderModuleFactory;
|
|
339
|
-
/** Optional host profiler capability for the existing Render path. */
|
|
340
|
-
readonly profiler?: Profiler | undefined;
|
|
341
|
-
readonly context: RhiCanvasContext | null;
|
|
342
|
-
readonly getPipelineState: () => PipelineState | null;
|
|
343
|
-
readonly assets: RenderAssetPort;
|
|
344
|
-
readonly gpuStore: GpuResourceStore;
|
|
345
|
-
readonly growMeshSsbo?: ((neededSlots: number) => {
|
|
346
|
-
readonly ok: true;
|
|
347
|
-
} | {
|
|
348
|
-
readonly ok: false;
|
|
349
|
-
readonly code: 'mesh-ssbo-ceiling-reached' | 'mesh-ssbo-capacity-exceeded';
|
|
350
|
-
readonly degradedToSlotCount: number;
|
|
351
|
-
}) | undefined;
|
|
352
|
-
readonly meshSsboState?: {
|
|
353
|
-
readonly slotCount: number;
|
|
354
|
-
} | undefined;
|
|
355
|
-
/**
|
|
356
|
-
* feat-20260609 M4 / T-10-a: factory backing `getPostProcessPipeline`. Provided
|
|
357
|
-
* by `createRenderer.ts` (it owns the shared `getShaderModuleAdapter` and the
|
|
358
|
-
* fullscreen pipeline-layout builder); receives a registered
|
|
359
|
-
* `PostProcessShaderEntry` + the fullscreen BGL the dispatcher already
|
|
360
|
-
* composed + the target color format, returns a built `RenderPipeline`
|
|
361
|
-
* (RHI handle) or `null` (shader still compiling / build failed). The first
|
|
362
|
-
* call per id triggers the async shader compile; subsequent calls hit the
|
|
363
|
-
* RenderSystem-level cache and never reach this factory.
|
|
364
|
-
*
|
|
365
|
-
* Optional so test fixtures (createRenderSystem with a stub
|
|
366
|
-
* RenderSystemInternals) need not provide a real factory; without it
|
|
367
|
-
* `getPostProcessPipeline` resolves to `undefined` on the runtime surface
|
|
368
|
-
* and the dispatcher falls through to its existing `null`-skip branch.
|
|
369
|
-
*/
|
|
370
|
-
readonly buildPostProcessPipeline?: ((entry: PostProcessShaderEntry, bgl: BindGroupLayout, colorFormat: GPUTextureFormat, label: string) => RenderPipeline | null) | undefined;
|
|
371
|
-
}
|
|
372
|
-
export interface RenderFeatureGraphRuntimeState {
|
|
373
|
-
contributions: readonly RenderFeatureGraphContribution<RenderFeaturePassContext>[];
|
|
374
|
-
topologySignature: string | undefined;
|
|
375
|
-
composition: RenderFeatureGraphComposition<RenderPipelineContext, RenderFeaturePassContext> | undefined;
|
|
376
|
-
}
|
|
377
|
-
export declare function getRenderFeatureGraphState(internals: RenderSystemInternals): RenderFeatureGraphRuntimeState;
|
|
378
|
-
export declare function reportRenderFeatureGraphError(internals: RenderSystemInternals, error: RenderError): void;
|
|
379
|
-
export interface PipelineState {
|
|
380
|
-
readonly format: string;
|
|
381
|
-
readonly colorAttachmentFormat: string;
|
|
382
|
-
readonly viewBindGroupLayout: BindGroupLayout;
|
|
383
|
-
readonly materialBindGroupLayout: BindGroupLayout;
|
|
384
|
-
readonly meshBindGroupLayout: BindGroupLayout;
|
|
385
|
-
readonly viewUniformBuffer: Buffer;
|
|
386
|
-
readonly shadowCasterCascadeBuffer: Buffer;
|
|
387
|
-
readonly materialUniformBuffer: {
|
|
388
|
-
readonly buffer: Buffer;
|
|
389
|
-
readonly sizeInBytes: number;
|
|
390
|
-
};
|
|
391
|
-
readonly meshStorageBuffer: {
|
|
392
|
-
readonly buffer: Buffer;
|
|
393
|
-
readonly sizeInBytes: number;
|
|
394
|
-
};
|
|
395
|
-
readonly pointLightsBuffer: Buffer;
|
|
396
|
-
readonly spotLightsBuffer: Buffer;
|
|
397
|
-
readonly instancesBindGroupLayout: BindGroupLayout;
|
|
398
|
-
readonly identityInstanceBuffer: Buffer;
|
|
399
|
-
readonly defaultSampler: Sampler;
|
|
400
|
-
readonly nearestSampler: Sampler;
|
|
401
|
-
readonly fallbackTextureView: TextureView;
|
|
402
|
-
readonly unlitPipeline: RenderPipeline | null;
|
|
403
|
-
readonly standardPipeline: RenderPipeline | null;
|
|
404
|
-
/**
|
|
405
|
-
* feat-20260604-learn-render-4.10-anti-aliasing-msaa M2 / w8: count=4
|
|
406
|
-
* multisample variants of the 7 geometry pipelines that write the screen
|
|
407
|
-
* or HDR colour target. A pipeline's `multisample.count` must match the
|
|
408
|
-
* sampleCount of the colour attachment it writes (WebGPU validation),
|
|
409
|
-
* so a count=4 pass cannot reuse a count=1 pipeline -- the record stage
|
|
410
|
-
* picks the `*Msaa` variant when the active camera carries
|
|
411
|
-
* `antialias === 'msaa'`. Post-process + shadow pipelines stay single-
|
|
412
|
-
* sample (AC-06) and have no MSAA variant. `null` when the base pipeline
|
|
413
|
-
* is null (empty-manifest path).
|
|
414
|
-
*/
|
|
415
|
-
readonly unlitPipelineMsaa: RenderPipeline | null;
|
|
416
|
-
readonly standardPipelineMsaa: RenderPipeline | null;
|
|
417
|
-
readonly unlitPipelineHdrMsaa: RenderPipeline | null;
|
|
418
|
-
readonly standardPipelineHdrMsaa: RenderPipeline | null;
|
|
419
|
-
/**
|
|
420
|
-
* feat-20260523-shader-template-instance-split M9-T03 (D-PipelineBuilder):
|
|
421
|
-
* the shared 4-BindGroupLayout chain pipeline layout (`[view, material,
|
|
422
|
-
* mesh-array, instances]`) -- same handle the standard / unlit / sprite
|
|
423
|
-
* pipelines share. M9 exposes it on PipelineState so the per-MaterialShader
|
|
424
|
-
* pipeline cache (`getMaterialShaderPipeline`) can reuse it at lazy build
|
|
425
|
-
* time without re-running pbrLayouts construction (charter P4 consistent
|
|
426
|
-
* abstraction). `null` when the manifest is empty (Camera-only / clear-
|
|
427
|
-
* pass-only path; bug-20260519 D-3 nullable).
|
|
428
|
-
*/
|
|
429
|
-
readonly pbrPipelineLayout: PipelineLayout | null;
|
|
430
|
-
/**
|
|
431
|
-
* feat-20260609-hdrp-cluster-fragment-ggx M4.5 / w36 (D-10 option A):
|
|
432
|
-
* per-variant PipelineLayout for HDRP. Mirrors `pbrPipelineLayout` but
|
|
433
|
-
* substitutes the HDRP unified 7-slot group(2) BGL
|
|
434
|
-
* (`createHdrpBindGroupLayoutDescriptor`) for the 1-slot pbr-mesh-array
|
|
435
|
-
* BGL. Built once at boot and reused for any HDRP variant PSO. `null`
|
|
436
|
-
* when the manifest is empty (parallel to `pbrPipelineLayout`) or when
|
|
437
|
-
* the boot-time createBindGroupLayout / createPipelineLayout fails (in
|
|
438
|
-
* which case `selectPipelineLayoutForVariant` falls back to the URP
|
|
439
|
-
* `pbrPipelineLayout` instead of hard-disabling the build path).
|
|
440
|
-
*/
|
|
441
|
-
readonly hdrpPbrPipelineLayout: PipelineLayout | null;
|
|
442
|
-
/** WebGPU storage-path producer for ordered HDRP cluster memberships. */
|
|
443
|
-
readonly hdrpClusterMembershipPipeline: ComputePipeline | null;
|
|
444
|
-
/** Compute bind-group layout paired with the membership producer pipeline. */
|
|
445
|
-
readonly hdrpClusterMembershipBindGroupLayout: BindGroupLayout | null;
|
|
446
|
-
/**
|
|
447
|
-
* bug-20260611-skin-pipeline-layout: dedicated PipelineLayout for the
|
|
448
|
-
* `forgeax::pbr-skin` material shader. Mirrors `pbrPipelineLayout` but
|
|
449
|
-
* substitutes a 3-entry mesh-array BGL (binding 0 = meshes, bindings 1/2 =
|
|
450
|
-
* current/previous palettes) for standard PBR's 1-entry mesh-array BGL. Built once at boot
|
|
451
|
-
* by `buildPbrSkinLayouts` and selected by
|
|
452
|
-
* `selectPipelineLayoutForVariant` when the caller passes
|
|
453
|
-
* `LayoutKind = 'pbr-skin'`. `null` when manifest is empty or the skin
|
|
454
|
-
* shader is not registered (storage-buffer cap gate / register failure);
|
|
455
|
-
* `selectPipelineLayoutForVariant` returns `null` rather than silently
|
|
456
|
-
* falling back to URP layout (charter P3 explicit failure, mirroring the
|
|
457
|
-
* `hdrp-active-must-not-fallback-to-urp-pipeline` guard).
|
|
458
|
-
*/
|
|
459
|
-
readonly pbrSkinPipelineLayout: PipelineLayout | null;
|
|
460
|
-
/**
|
|
461
|
-
* feat-20260611 R2 / M8 / w28 (IS-14): record-stage handle to the
|
|
462
|
-
* 3-binding `pbr-skin-mesh-array-bgl` returned by `buildPbrSkinLayouts`
|
|
463
|
-
* (binding 0 mesh-array UBO, bindings 1/2 current/previous palette UBOs;
|
|
464
|
-
* all `hasDynamicOffset: true`). The record stage builds a BG against this
|
|
465
|
-
* BGL for skin entries (`entry.source.skin !== undefined`) and binds it
|
|
466
|
-
* at group(2) when the entry's pipeline layout is `pbr-skin-pl`. The
|
|
467
|
-
* URP path keeps using `meshBindGroupLayout` (1-binding) at group(2),
|
|
468
|
-
* so `pbr-mesh-array-bgl` is unchanged. Stays `null` when
|
|
469
|
-
* `pbrSkinPipelineLayout` itself failed to build (charter P3 explicit
|
|
470
|
-
* failure -- skin path is hard-disabled, mirroring the pipeline-layout
|
|
471
|
-
* fallback in `selectPipelineLayoutForVariant`).
|
|
472
|
-
*/
|
|
473
|
-
readonly pbrSkinMeshBindGroupLayout: BindGroupLayout | null;
|
|
474
|
-
/**
|
|
475
|
-
* feat-20260612-skin-palette-per-frame-upload M1 / m1-2: animator-ready
|
|
476
|
-
* skin-palette storage allocator. Replaces the prior identity-buffer
|
|
477
|
-
* stub (PR #353 / feat-20260611 R2 / M8 / w28 IS-14) -- a single 16320 B
|
|
478
|
-
* identity-seeded UBO shared by every skin entry. The allocator owns the
|
|
479
|
-
* lifecycle of the per-frame palette buffer (`createSkinPaletteAllocator`
|
|
480
|
-
* from `./systems/skin-palette-allocator`); the record stage reads the
|
|
481
|
-
* GPU buffer through `skinPaletteAllocator.buffer` and the extract stage
|
|
482
|
-
* (M2) calls `allocateSlice` + `writeJointPalette` to land animated
|
|
483
|
-
* palette data per skinned entity. Per plan-strategy D-1 candidate (b) the
|
|
484
|
-
* allocator is the single authoritative carrier -- no parallel fallback
|
|
485
|
-
* stub. `null` when `pbrSkinPipelineLayout` itself failed (skin path
|
|
486
|
-
* hard-disabled, mirroring the prior stub field's gating).
|
|
487
|
-
*/
|
|
488
|
-
readonly skinPaletteAllocator: SkinPaletteAllocator | null;
|
|
489
|
-
readonly defaultWhiteTextureView: TextureView;
|
|
490
|
-
readonly defaultNormalTextureView: TextureView;
|
|
491
|
-
readonly unlitPipelineHdr: RenderPipeline | null;
|
|
492
|
-
readonly standardPipelineHdr: RenderPipeline | null;
|
|
493
|
-
/**
|
|
494
|
-
* feat-20260520-directional-light-shadow-mapping M2 / w14 (D-1):
|
|
495
|
-
* 1x1 depth32float fallback bound at viewBindGroup binding(3) when no
|
|
496
|
-
* shadow RT exists (castShadow:false or allocation failed).
|
|
497
|
-
* Cleared to 1.0 (far plane) so comparison-sampler always returns fully lit.
|
|
498
|
-
*/
|
|
499
|
-
readonly shadowFallbackTextureView: TextureView;
|
|
500
|
-
/**
|
|
501
|
-
* feat-20260612-point-light-shadows-urp-hdrp Round-2 F-1: 1x1x6
|
|
502
|
-
* depth32float `texture_depth_cube_array` (layers=1) fallback bound at
|
|
503
|
-
* viewBindGroup binding(5) when no PointLightShadow snapshots are active
|
|
504
|
-
* (zero-shadow scene = AC-09 zero allocation -- the real cube_array atlas
|
|
505
|
-
* stays in `ShadowAtlas` and is only allocated when the extract stage
|
|
506
|
-
* sees its first PointLightShadow). Cleared to 1.0 so the
|
|
507
|
-
* comparison-sampler returns fully lit on the no-shadow path. The view
|
|
508
|
-
* dimension is `cube-array` to satisfy the BGL `viewDimension:
|
|
509
|
-
* 'cube-array'`; the underlying texture has 6 layers (one cube).
|
|
510
|
-
*/
|
|
511
|
-
readonly shadowAtlasFallbackTextureView: TextureView;
|
|
512
|
-
/**
|
|
513
|
-
* feat-20260612-point-light-shadows-urp-hdrp Round-2 F-1: 64 B uniform
|
|
514
|
-
* buffer carrying `array<vec4<f32>, 4>` -- one lane per shadow-casting
|
|
515
|
-
* point light slot. Lane N stores `(near, far, 1/(far-near), 0)` for the
|
|
516
|
-
* point light with `shadowAtlasLayer === N`. Lanes for non-shadow-casting
|
|
517
|
-
* slots stay zeroed; the WGSL sample path is gated by
|
|
518
|
-
* `PointLight.shadowAtlasLayer >= 0` so zeroed lanes are never read.
|
|
519
|
-
* Bound at viewBindGroup binding(6); written per frame from the
|
|
520
|
-
* `pointShadowSnapshots` array.
|
|
521
|
-
*/
|
|
522
|
-
readonly shadowParamsBuffer: Buffer;
|
|
523
|
-
readonly shadowProbePipeline: RenderPipeline | null;
|
|
524
|
-
readonly shadowProbeBindGroupLayout: BindGroupLayout | null;
|
|
525
|
-
readonly shadowProbeLsmUbo: Buffer | null;
|
|
526
|
-
readonly shadowProbeInputBuf: Buffer | null;
|
|
527
|
-
readonly shadowProbeOutputTex: any | null;
|
|
528
|
-
readonly shadowProbeOutputView: TextureView | null;
|
|
529
|
-
readonly shadowProbeStagingBuf: Buffer | null;
|
|
530
|
-
/**
|
|
531
|
-
* Fallback Skylight resource bundle (feat-20260520-skylight-ibl-cubemap
|
|
532
|
-
* M2 round-2 / t40, plan-strategy D-5). 1x1 all-zero rgba16float
|
|
533
|
-
* texture_cube * 2 (irradiance + prefilter) + 1x1 approximate rg16float
|
|
534
|
-
* brdfLut + intensity=0 16 B uniform buffer + 7-entry BindGroup compose
|
|
535
|
-
* the @group(4) skylight binding for the "no Skylight ECS entity"
|
|
536
|
-
* branch. The M4 round-2 recordFrame branch binds `bindGroup` when
|
|
537
|
-
* `skylightCount === 0` so `standardPipeline` / `standardPipelineHdr`
|
|
538
|
-
* (which keep a 4-slot pipeline layout per D-5 round-4) dispatch with
|
|
539
|
-
* ambient=0 -- physical convergence with D-4 (charter F1: AI users
|
|
540
|
-
* writing demos do not need a "is there a skylight?" branch).
|
|
541
|
-
*
|
|
542
|
-
* D-5 round-4: the fallback bundle no longer carries a stand-alone
|
|
543
|
-
* BindGroup. The PBR material BindGroupLayout now holds 14 entries
|
|
544
|
-
* (material 0..6 + Skylight 7..13) and the per-frame material
|
|
545
|
-
* BindGroup assembly site (render-system-record) merges Skylight
|
|
546
|
-
* resources at binding 7..13 -- active when a Skylight component
|
|
547
|
-
* exists, fallback identity when `skylightCount === 0`.
|
|
548
|
-
*
|
|
549
|
-
* bug-20260519 D-3 nullable extension: the empty-manifest path
|
|
550
|
-
* (Camera-only / clear-pass-only) skips the entire PBR pipeline build
|
|
551
|
-
* block; we still allocate the fallback bundle in the normal path,
|
|
552
|
-
* but tests / OOS paths that mock the manifest empty land here with
|
|
553
|
-
* `null` (charter P3 explicit failure: M4 record-stage gates on
|
|
554
|
-
* `skylightFallback !== null` before binding fallback resources at
|
|
555
|
-
* material BG entries 7..13).
|
|
556
|
-
*/
|
|
557
|
-
readonly skylightFallback: any | null;
|
|
558
|
-
/**
|
|
559
|
-
* feat-20260529-rendergraph-pass-abstraction M3 / w11 (D-2 + Finding 3):
|
|
560
|
-
* per-pass mutable texture cache slots extracted from the global
|
|
561
|
-
* PipelineState. These fields are the lazily-allocated texture attachments
|
|
562
|
-
* + pass-specific pipelines and bindgroups that belong to a single render
|
|
563
|
-
* pass (depth / shadow / tonemap / FXAA). M4 render-graph resource
|
|
564
|
-
* declarations will read these descriptors to derive transient/persistent
|
|
565
|
-
* resources; shadow probe (OOS-4) stays on PipelineState directly.
|
|
566
|
-
*/
|
|
567
|
-
readonly perPassResources: PerPassResources;
|
|
568
|
-
}
|
|
569
|
-
/**
|
|
570
|
-
* Configure a canvas surface from the two PipelineState format fields, applying
|
|
571
|
-
* the WebGL2-fallback gate: native WebGPU uses the storage format plus an sRGB
|
|
572
|
-
* view format, while the wgpu WebGL2 surface uses its direct sRGB format and
|
|
573
|
-
* COLOR_TARGET-only usage because its GLES surface rejects COPY_SRC. The
|
|
574
|
-
* storage-buffer capability still controls TEXTURE_BINDING usage, but it does
|
|
575
|
-
* not determine whether native WebGPU supports viewFormats. Single SSOT for
|
|
576
|
-
* the configure descriptor consumed by both the
|
|
577
|
-
* lazy first-frame path (ensureContextConfigured in createRenderer.ts) and the
|
|
578
|
-
* F2 surface-outdated reconfigure-and-retry branch (render-system-record.ts) so
|
|
579
|
-
* the two cannot drift (architecture-principles #1 SSOT). Returns the configure
|
|
580
|
-
* Result; callers own the `state.perPassResources.configured` flag + the
|
|
581
|
-
* `__forgeaxSwapChainFormat` probe write (those differ per call site).
|
|
582
|
-
*/
|
|
583
|
-
export declare function configureSurface(context: RhiCanvasContext, device: RhiDevice, format: string, colorAttachmentFormat: string): Result<void, RhiError>;
|
|
584
|
-
/**
|
|
585
|
-
* feat-20260529-rendergraph-pass-abstraction M3 / w11 (D-2):
|
|
586
|
-
* per-pass mutable resource slots extracted from PipelineState per
|
|
587
|
-
* research Finding 3 fact-based grouping (depth / shadow / tonemap / fxaa).
|
|
588
|
-
* These fields are the lazily-allocated texture caches + pass-specific
|
|
589
|
-
* pipeline/bindgroup handles that belong to a single render pass.
|
|
590
|
-
* Mutable (non-readonly) because the record stage writes back after
|
|
591
|
-
* lazy-alloc on size drift.
|
|
121
|
+
* Package-private extension consumed by the built-in record closures only.
|
|
122
|
+
* Custom pipeline authors see the leaf RenderPipelineContext contract and
|
|
123
|
+
* never this surface.
|
|
592
124
|
*/
|
|
593
|
-
export interface PerPassResources {
|
|
594
|
-
/**
|
|
595
|
-
* Per-frame depth attachment. Lazily allocated by
|
|
596
|
-
* `ensureContextConfigured` and recreated whenever the canvas resizes
|
|
597
|
-
* (see `ensureDepthTexture` in createRenderer.ts). Bound at the
|
|
598
|
-
* `beginRenderPass.depthStencilAttachment` slot with `depthLoadOp:'clear'`
|
|
599
|
-
* + `clearValue:1` so each frame starts with a far-plane depth buffer
|
|
600
|
-
* and the back-face / inside-of-cube fragments are correctly occluded
|
|
601
|
-
* (bug-20260519).
|
|
602
|
-
*
|
|
603
|
-
* `depthTextureView` is `null` until the canvas dimensions are known
|
|
604
|
-
* (first draw); the record stage skips the frame and fires
|
|
605
|
-
* `webgpu-runtime-error` if it stays null past configure.
|
|
606
|
-
*/
|
|
607
|
-
depthTexture: any | null;
|
|
608
|
-
depthTextureView: any | null;
|
|
609
|
-
depthTextureWidth: number;
|
|
610
|
-
depthTextureHeight: number;
|
|
611
|
-
configured: boolean;
|
|
612
|
-
/**
|
|
613
|
-
* Lazy HDR colour + depth attachments for the opt-in tonemap path. Both
|
|
614
|
-
* are `null` until the first frame whose active camera carries
|
|
615
|
-
* `tonemap !== 'none'`; the record stage allocates them at the swap-chain
|
|
616
|
-
* size and re-creates on resize (mirrors `depthTexture` / `depthTextureView`
|
|
617
|
-
* idiom; AC-12).
|
|
618
|
-
*
|
|
619
|
-
* `hdrColor`'s format is `rgba16float` (AC-03(d)); the depth attachment is
|
|
620
|
-
* the same `depth24plus-stencil8` format the geometry pipelines already declare
|
|
621
|
-
* (`DEPTH_TEXTURE_FORMAT` SSOT in `createRenderer.ts`). When a camera
|
|
622
|
-
* downgrades to `tonemap === 'none'` between frames the textures stay
|
|
623
|
-
* allocated for cheap re-opt-in; full dispose happens via
|
|
624
|
-
* `Renderer.dispose()` -> browser GC (matches the `depthTexture` fix-f6
|
|
625
|
-
* placeholder).
|
|
626
|
-
*/
|
|
627
|
-
hdrColorTexture: any | null;
|
|
628
|
-
hdrColorView: any | null;
|
|
629
|
-
hdrDepthTexture: any | null;
|
|
630
|
-
hdrDepthView: any | null;
|
|
631
|
-
hdrTextureWidth: number;
|
|
632
|
-
hdrTextureHeight: number;
|
|
633
|
-
/**
|
|
634
|
-
* feat-20260604 M2 / w10: sampleCount the `hdrDepth` attachment was last
|
|
635
|
-
* allocated at (1 or 4). The HDR colour target is always sampled
|
|
636
|
-
* single-sample (`hdrColorView`); the depth pairs with the geometry colour
|
|
637
|
-
* target's sampleCount, which flips with `antialias === 'msaa'`. Tracking it
|
|
638
|
-
* lets the record stage reallocate depth when MSAA toggles between frames
|
|
639
|
-
* (a stale count=4 depth under a count=1 pipeline fails WebGPU validation).
|
|
640
|
-
*/
|
|
641
|
-
hdrDepthSampleCount: number;
|
|
642
|
-
readonly fxaaPipeline: RenderPipeline | null;
|
|
643
|
-
readonly fxaaBindGroupLayout: BindGroupLayout | null;
|
|
644
|
-
readonly fxaaSampler: Sampler | null;
|
|
645
|
-
/** Fixed two-attachment linear TAA resolve resources, owned by this renderer. */
|
|
646
|
-
readonly taaResolvePipeline: RenderPipeline | null;
|
|
647
|
-
readonly taaResolveBindGroupLayout: BindGroupLayout | null;
|
|
648
|
-
readonly taaResolveSampler: Sampler | null;
|
|
649
|
-
taaResolveParamsBuffer: Buffer | null;
|
|
650
|
-
msaaColorTexture: any | null;
|
|
651
|
-
msaaColorView: any | null;
|
|
652
|
-
msaaSpriteColorTexture: any | null;
|
|
653
|
-
msaaSpriteColorView: any | null;
|
|
654
|
-
msaaDepthTexture: any | null;
|
|
655
|
-
msaaDepthView: any | null;
|
|
656
|
-
msaaTextureWidth: number;
|
|
657
|
-
msaaTextureHeight: number;
|
|
658
|
-
hdrColorMsaaTexture: any | null;
|
|
659
|
-
hdrColorMsaaView: any | null;
|
|
660
|
-
readonly skyboxPipeline: RenderPipeline | null;
|
|
661
|
-
readonly skyboxPipelineMsaa: RenderPipeline | null;
|
|
662
|
-
readonly skyboxBindGroupLayout: BindGroupLayout | null;
|
|
663
|
-
readonly skyboxSampler: Sampler | null;
|
|
664
|
-
/** Stable 16 B quaternion UBO updated by the skybox record pass. */
|
|
665
|
-
readonly skyboxRotationBuffer: Buffer | null;
|
|
666
|
-
/** Executable analytic-atmosphere producer and background resources. */
|
|
667
|
-
readonly atmosphereCubemapPipeline?: RenderPipeline | null;
|
|
668
|
-
readonly atmosphereCubemapBindGroupLayout?: BindGroupLayout | null;
|
|
669
|
-
readonly atmosphereIrradiancePipeline?: RenderPipeline | null;
|
|
670
|
-
readonly atmospherePrefilterPipeline?: RenderPipeline | null;
|
|
671
|
-
readonly atmosphereIblParamsBindGroupLayout?: BindGroupLayout | null;
|
|
672
|
-
readonly atmosphereIblSkyBindGroupLayout?: BindGroupLayout | null;
|
|
673
|
-
readonly atmosphereBackgroundPipeline?: RenderPipeline | null;
|
|
674
|
-
readonly atmosphereBackgroundBindGroupLayout?: BindGroupLayout | null;
|
|
675
|
-
readonly atmosphereParamsBuffer?: Buffer | null;
|
|
676
|
-
readonly atmosphereCubeVertexBuffer?: Buffer | null;
|
|
677
|
-
shadowTexture: any | null;
|
|
678
|
-
shadowMapSize: number;
|
|
679
|
-
shadowCascadeCount: number;
|
|
680
|
-
/** Exact dimensions of the compiled directional cascade atlas. */
|
|
681
|
-
shadowAtlasWidth: number;
|
|
682
|
-
shadowAtlasHeight: number;
|
|
683
|
-
shadowSampler: any | null;
|
|
684
|
-
/**
|
|
685
|
-
* feat-20260520-directional-light-shadow-mapping M1c / w11 +
|
|
686
|
-
* feat-20260613-csm-cascaded-shadow-maps M5 / w28:
|
|
687
|
-
* latest cascade-0 lightViewProj mat4 (16 f32, col-major). Kept under
|
|
688
|
-
* the legacy field name as an Inspector backward-compat surface
|
|
689
|
-
* (`runtime.lights.directionalShadow.lightSpaceMatrix` JSON-RPC), per
|
|
690
|
-
* AGENTS.md §Change stance exception for external-visible wire
|
|
691
|
-
* protocols with known downstream consumers. Populated each frame
|
|
692
|
-
* from `lights.lightViewProj[0]`. Null before the first extract with
|
|
693
|
-
* an active shadow-casting DirectionalLight.
|
|
694
|
-
*/
|
|
695
|
-
shadowLightSpaceMatrix: Float32Array | null;
|
|
696
|
-
/**
|
|
697
|
-
* feat-20260613-csm-cascaded-shadow-maps M5 / w28: full 4-cascade
|
|
698
|
-
* lightViewProj concatenation (4 × 16 = 64 f32, col-major) consumed by
|
|
699
|
-
* `debugSampleShadowFactor` so the probe can project against the selected
|
|
700
|
-
* cascade. Null before the first extract
|
|
701
|
-
* with an active shadow-casting DirectionalLight.
|
|
702
|
-
*/
|
|
703
|
-
shadowCsmLightViewProj: Float32Array | null;
|
|
704
|
-
/**
|
|
705
|
-
* Producer-owned CSM receiver-selection facts. The debug probe must use the
|
|
706
|
-
* same view-space depth + split-plane selector as the main receiver path;
|
|
707
|
-
* keeping the two inputs together prevents a selector mirror from silently
|
|
708
|
-
* drifting at cascade boundaries.
|
|
709
|
-
*/
|
|
710
|
-
shadowCsmSelection: {
|
|
711
|
-
readonly viewMatrix: Float32Array;
|
|
712
|
-
readonly splitPlanes: Float32Array;
|
|
713
|
-
readonly cascadeBlend: number;
|
|
714
|
-
} | null;
|
|
715
|
-
/** Producer-owned directional shadow comparison parameters for GPU probes. */
|
|
716
|
-
shadowLightDirection: Float32Array | null;
|
|
717
|
-
shadowDepthBias: number;
|
|
718
|
-
shadowNormalBias: number;
|
|
719
|
-
shadowPcfKernelSize: number;
|
|
720
|
-
readonly bloomBrightPipeline: RenderPipeline | null;
|
|
721
|
-
readonly bloomBlurHPipeline: RenderPipeline | null;
|
|
722
|
-
readonly bloomBlurVPipeline: RenderPipeline | null;
|
|
723
|
-
readonly bloomCompositePipeline: RenderPipeline | null;
|
|
724
|
-
readonly bloomBrightBindGroupLayout: BindGroupLayout | null;
|
|
725
|
-
readonly bloomBlurBindGroupLayout: BindGroupLayout | null;
|
|
726
|
-
readonly bloomCompositeBindGroupLayout: BindGroupLayout | null;
|
|
727
|
-
readonly bloomSampler: Sampler | null;
|
|
728
|
-
readonly bloomBrightParamsBuffer: Buffer | null;
|
|
729
|
-
readonly bloomBlurHParamsBuffer: Buffer | null;
|
|
730
|
-
readonly bloomBlurVParamsBuffer: Buffer | null;
|
|
731
|
-
readonly bloomCompositeParamsBuffer: Buffer | null;
|
|
732
|
-
bloomBrightTexture: any | null;
|
|
733
|
-
bloomBrightView: any | null;
|
|
734
|
-
bloomBrightWidth: number;
|
|
735
|
-
bloomBrightHeight: number;
|
|
736
|
-
bloomBlurHTexture: any | null;
|
|
737
|
-
bloomBlurHView: any | null;
|
|
738
|
-
bloomBlurHWidth: number;
|
|
739
|
-
bloomBlurHHeight: number;
|
|
740
|
-
bloomBlurVTexture: any | null;
|
|
741
|
-
bloomBlurVView: any | null;
|
|
742
|
-
bloomBlurVWidth: number;
|
|
743
|
-
bloomBlurVHeight: number;
|
|
744
|
-
readonly ssaoCalcPipeline: RenderPipeline | null;
|
|
745
|
-
readonly ssaoBlurPipeline: RenderPipeline | null;
|
|
746
|
-
readonly ssaoBgl: BindGroupLayout | null;
|
|
747
|
-
/** Filtering sampler shared by ssao_noise_sampler (binding 3) + ssaoSampler (binding 8). */
|
|
748
|
-
ssaoFilteringSampler: Sampler | null;
|
|
749
|
-
/** Non-filtering sampler dedicated to hdr_depth (binding 6); WebGPU validation. */
|
|
750
|
-
ssaoDepthSampler: Sampler | null;
|
|
751
|
-
/** 1x1 fallback view bound at ssaoRaw (binding 7) in the calc pass. */
|
|
752
|
-
ssaoFallbackRawView: any | null;
|
|
753
|
-
}
|
|
754
|
-
export interface MeshGpuHandles {
|
|
755
|
-
/**
|
|
756
|
-
* Vertex buffer wrapped as a GpuBuffer (M-3 / w11). Consumers reach the
|
|
757
|
-
* raw RHI Buffer via `.handle` for `setVertexBuffer` etc.; `.destroy()`
|
|
758
|
-
* routes through the RHI shim's lifecycle SSOT (charter §F1 single-entry
|
|
759
|
-
* indexability + plan-strategy D-9 wrapper migration).
|
|
760
|
-
*/
|
|
761
|
-
readonly vertexBuffer: GpuBuffer;
|
|
762
|
-
/**
|
|
763
|
-
* Index buffer wrapper, or `null` for a vertex-only mesh (no
|
|
764
|
-
* `MeshAsset.indices`). When `null` the record stage takes the non-indexed
|
|
765
|
-
* `pass.draw(vertexCount)` path and never calls `setIndexBuffer`. Gated
|
|
766
|
-
* on `indexed` below.
|
|
767
|
-
*/
|
|
768
|
-
readonly indexBuffer: GpuBuffer | null;
|
|
769
|
-
/** Allocation byte size of the vertex buffer (mirrors GPUBuffer.size). */
|
|
770
|
-
readonly vboBytes: number;
|
|
771
|
-
/** Allocation byte size of the index buffer, or 0 when `indexBuffer` is null. */
|
|
772
|
-
readonly iboBytes: number;
|
|
773
|
-
readonly indexCount: number;
|
|
774
|
-
/**
|
|
775
|
-
* Index buffer format inferred from the source `MeshAsset.indices` typed
|
|
776
|
-
* array (`Uint16Array` -> `'uint16'`, `Uint32Array` -> `'uint32'`). The
|
|
777
|
-
* record stage threads this into `pass.setIndexBuffer(..., format)` so
|
|
778
|
-
* the GPU reads the correct stride per index. bug-20260519: the prior
|
|
779
|
-
* hard-coded `'uint16'` corrupted procedural meshes whose factories
|
|
780
|
-
* (`createBoxGeometry` etc) emit Uint32Array indices.
|
|
781
|
-
*/
|
|
782
|
-
readonly indexFormat: 'uint16' | 'uint32';
|
|
783
|
-
/** Geometry-owned immutable projection carried through every GPU consumer. */
|
|
784
|
-
readonly layoutProjection: VertexLayoutProjection;
|
|
785
|
-
/**
|
|
786
|
-
* Vertex count is derived from the projection stride at upload time. The
|
|
787
|
-
* non-indexed draw path passes this to `pass.draw(vertexCount)`.
|
|
788
|
-
*/
|
|
789
|
-
readonly vertexCount: number;
|
|
790
|
-
/**
|
|
791
|
-
* True when the mesh carries an index buffer (`MeshAsset.indices` present).
|
|
792
|
-
* `false` for vertex-only meshes. The record stage branches on this to pick
|
|
793
|
-
* `drawIndexed` vs `draw` and to gate `setIndexBuffer`.
|
|
794
|
-
*/
|
|
795
|
-
readonly indexed: boolean;
|
|
796
|
-
/**
|
|
797
|
-
* Primitive topology of this mesh (first submesh's topology, default
|
|
798
|
-
* 'triangle-list'). WebGPU bakes topology into the immutable PSO, so the
|
|
799
|
-
* record stage threads this into `getMaterialShaderPipeline` to select a
|
|
800
|
-
* per-topology PSO (feat-20260604 M3 / w9).
|
|
801
|
-
*
|
|
802
|
-
* feat-20260608 M4 / w16: topology is per-submesh; this field reflects
|
|
803
|
-
* `submeshes[0].topology` for backward compat. Use `submeshes` field for
|
|
804
|
-
* per-submesh draw iteration.
|
|
805
|
-
*/
|
|
806
|
-
readonly topology: PrimitiveTopology;
|
|
807
|
-
/**
|
|
808
|
-
* Submeshes from MeshAsset.submeshes, carried through from the GPU store
|
|
809
|
-
* so the record stage can iterate per-submesh drawIndexed (feat-20260608 M4 / w16).
|
|
810
|
-
*/
|
|
811
|
-
readonly submeshes: readonly import('@forgeax/engine-types').Submesh[];
|
|
812
|
-
}
|
|
813
|
-
export declare function createRenderSystem(internals: RenderSystemInternals): RenderSystem;
|
|
814
125
|
//# sourceMappingURL=render-system.d.ts.map
|