@forgeax/engine-render 0.0.0-dev.8d955ade1c79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +647 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/__tests__/authoring-path.unit.test.d.ts +2 -0
- package/dist/__tests__/authoring-path.unit.test.d.ts.map +1 -0
- package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts +2 -0
- package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts.map +1 -0
- package/dist/__tests__/callback-inference.test-d.d.ts +2 -0
- package/dist/__tests__/callback-inference.test-d.d.ts.map +1 -0
- package/dist/__tests__/cluster-binner.test.d.ts +2 -0
- package/dist/__tests__/cluster-binner.test.d.ts.map +1 -0
- package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/construct-renderer-identity.unit.test.d.ts +2 -0
- package/dist/__tests__/construct-renderer-identity.unit.test.d.ts.map +1 -0
- package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts +2 -0
- package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts.map +1 -0
- package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts +2 -0
- package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts.map +1 -0
- package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts +2 -0
- package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts.map +1 -0
- package/dist/__tests__/direct-light-snapshot.unit.test.d.ts +2 -0
- package/dist/__tests__/direct-light-snapshot.unit.test.d.ts.map +1 -0
- package/dist/__tests__/factory-contract.integration.test.d.ts +2 -0
- package/dist/__tests__/factory-contract.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/frame-observation.contract.test.d.ts +2 -0
- package/dist/__tests__/frame-observation.contract.test.d.ts.map +1 -0
- package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts +2 -0
- package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts.map +1 -0
- package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts +2 -0
- package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts +6 -0
- package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-production.integration.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-production.integration.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts +18 -0
- package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view-reference.d.ts +15 -0
- package/dist/__tests__/gpu-driven-view-reference.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view.browser.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-view.browser.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view.dawn.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-view.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view.unit.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-view.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts +2 -0
- package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts +7 -0
- package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts +2 -0
- package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts +2 -0
- package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene-schema.unit.test.d.ts +2 -0
- package/dist/__tests__/gpu-scene-schema.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene.dawn.test.d.ts +2 -0
- package/dist/__tests__/gpu-scene.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene.unit.test.d.ts +2 -0
- package/dist/__tests__/gpu-scene.unit.test.d.ts.map +1 -0
- package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts +2 -0
- package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts.map +1 -0
- package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts +2 -0
- package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts.map +1 -0
- package/dist/__tests__/injection-kind-owner.test-d.d.ts +2 -0
- package/dist/__tests__/injection-kind-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts +2 -0
- package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/light-buffer-layout.unit.test.d.ts +2 -0
- package/dist/__tests__/light-buffer-layout.unit.test.d.ts.map +1 -0
- package/dist/__tests__/material-contract-inventory.unit.test.d.ts +2 -0
- package/dist/__tests__/material-contract-inventory.unit.test.d.ts.map +1 -0
- package/dist/__tests__/material-cooked-projection.unit.test.d.ts +2 -0
- package/dist/__tests__/material-cooked-projection.unit.test.d.ts.map +1 -0
- package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts +2 -0
- package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts.map +1 -0
- package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts +2 -0
- package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts.map +1 -0
- package/dist/__tests__/material-stride-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/material-stride-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/mesh-material-bindings.unit.test.d.ts +2 -0
- package/dist/__tests__/mesh-material-bindings.unit.test.d.ts.map +1 -0
- package/dist/__tests__/mesh-stride-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/mesh-stride-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts +2 -0
- package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts +2 -0
- package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts.map +1 -0
- package/dist/__tests__/morph-feature-plan.unit.test.d.ts +2 -0
- package/dist/__tests__/morph-feature-plan.unit.test.d.ts.map +1 -0
- package/dist/__tests__/morph-visual-evidence.integration.test.d.ts +2 -0
- package/dist/__tests__/morph-visual-evidence.integration.test.d.ts.map +1 -0
- package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts +2 -0
- package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts +2 -0
- package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-store.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-store.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-default-off.test.d.ts +2 -0
- package/dist/__tests__/profiler-default-off.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-phase-catalog.test.d.ts +2 -0
- package/dist/__tests__/profiler-phase-catalog.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-phase-integration.test.d.ts +2 -0
- package/dist/__tests__/profiler-phase-integration.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-phase-token.test.d.ts +2 -0
- package/dist/__tests__/profiler-phase-token.test.d.ts.map +1 -0
- package/dist/__tests__/public-surface.test-d.d.ts +2 -0
- package/dist/__tests__/public-surface.test-d.d.ts.map +1 -0
- package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts +2 -0
- package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-error-code-owner.test-d.d.ts +2 -0
- package/dist/__tests__/render-error-code-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-error-detail-ssot.test-d.d.ts +2 -0
- package/dist/__tests__/render-error-detail-ssot.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-error-exhaustive.test-d.d.ts +2 -0
- package/dist/__tests__/render-error-exhaustive.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-assembly.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-assembly.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-context.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-context.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-contract.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-contract.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-docs.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-docs.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-errors.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-errors.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts +2 -0
- package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-plan.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-plan.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-plan.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-plan.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-public-surface.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-public-surface.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-retry.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-retry.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-scheduling.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-scheduling.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-visibility-context.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-visibility-context.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-zero-work.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-zero-work.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-compute-raster-gpu.d.ts +7 -0
- package/dist/__tests__/render-graph-compute-raster-gpu.d.ts.map +1 -0
- package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts +2 -0
- package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts +2 -0
- package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-hzb-gpu.d.ts +7 -0
- package/dist/__tests__/render-graph-hzb-gpu.d.ts.map +1 -0
- package/dist/__tests__/render-graph-hzb.browser.test.d.ts +2 -0
- package/dist/__tests__/render-graph-hzb.browser.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-hzb.dawn.test.d.ts +2 -0
- package/dist/__tests__/render-graph-hzb.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-primitives.unit.test.d.ts +2 -0
- package/dist/__tests__/render-graph-primitives.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts +12 -0
- package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts.map +1 -0
- package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts +2 -0
- package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts +2 -0
- package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/render-scene-projection.unit.test.d.ts +2 -0
- package/dist/__tests__/render-scene-projection.unit.test.d.ts.map +1 -0
- package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts +2 -0
- package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts.map +1 -0
- package/dist/__tests__/renderer-lifecycle.integration.test.d.ts +2 -0
- package/dist/__tests__/renderer-lifecycle.integration.test.d.ts.map +1 -0
- package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts +2 -0
- package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts.map +1 -0
- package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts +2 -0
- package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts.map +1 -0
- package/dist/__tests__/shader-stage-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/shader-stage-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/ssao-config.unit.test.d.ts +2 -0
- package/dist/__tests__/ssao-config.unit.test.d.ts.map +1 -0
- package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts +2 -0
- package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts.map +1 -0
- package/dist/__tests__/standard-descriptors.test-d.d.ts +2 -0
- package/dist/__tests__/standard-descriptors.test-d.d.ts.map +1 -0
- package/dist/__tests__/standard-pipeline.dawn.test.d.ts +2 -0
- package/dist/__tests__/standard-pipeline.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/standard-pipeline.integration.test.d.ts +2 -0
- package/dist/__tests__/standard-pipeline.integration.test.d.ts.map +1 -0
- package/dist/__tests__/standard-profile-oracle.unit.test.d.ts +2 -0
- package/dist/__tests__/standard-profile-oracle.unit.test.d.ts.map +1 -0
- package/dist/__tests__/surface-configuration.unit.test.d.ts +2 -0
- package/dist/__tests__/surface-configuration.unit.test.d.ts.map +1 -0
- package/dist/__tests__/texture-usage-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/texture-usage-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts +2 -0
- package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts.map +1 -0
- package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts +2 -0
- package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts.map +1 -0
- package/dist/__tests__/urp-pipeline.unit.test.d.ts +2 -0
- package/dist/__tests__/urp-pipeline.unit.test.d.ts.map +1 -0
- package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts +2 -0
- package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts.map +1 -0
- package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts +2 -0
- package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-diagnostics.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-diagnostics.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-extract.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-extract.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-extract.perf.test.d.ts +2 -0
- package/dist/__tests__/visibility-extract.perf.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-hidden-report.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-hidden-report.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-instances.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-instances.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-multi-world.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-multi-world.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-public-surface.test-d.d.ts +2 -0
- package/dist/__tests__/visibility-public-surface.test-d.d.ts.map +1 -0
- package/dist/__tests__/visibility-resolver.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-resolver.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts.map +1 -0
- package/dist/__tests__/vocabulary.unit.test.d.ts +2 -0
- package/dist/__tests__/vocabulary.unit.test.d.ts.map +1 -0
- package/dist/assembly/backend-contract.d.ts +37 -0
- package/dist/assembly/backend-contract.d.ts.map +1 -0
- package/dist/assembly/factory.d.ts +207 -0
- package/dist/assembly/factory.d.ts.map +1 -0
- package/dist/assembly/host-contract.d.ts +84 -0
- package/dist/assembly/host-contract.d.ts.map +1 -0
- package/dist/assembly/material/assembly.d.ts +21 -0
- package/dist/assembly/material/assembly.d.ts.map +1 -0
- package/dist/assembly/material/pipeline-projection.d.ts +30 -0
- package/dist/assembly/material/pipeline-projection.d.ts.map +1 -0
- package/dist/assets/asset-decoders.d.ts +5 -0
- package/dist/assets/asset-decoders.d.ts.map +1 -0
- package/dist/assets/render-asset-port.d.ts +17 -0
- package/dist/assets/render-asset-port.d.ts.map +1 -0
- package/dist/assets/resolve-render-asset.d.ts +6 -0
- package/dist/assets/resolve-render-asset.d.ts.map +1 -0
- package/dist/authoring.d.ts +12 -0
- package/dist/authoring.d.ts.map +1 -0
- package/dist/authoring.mjs +27 -0
- package/dist/authoring.mjs.map +1 -0
- package/dist/chunk-CQXZC5XI.mjs +182 -0
- package/dist/chunk-CQXZC5XI.mjs.map +1 -0
- package/dist/chunk-HCOGPHKS.mjs +93 -0
- package/dist/chunk-HCOGPHKS.mjs.map +1 -0
- package/dist/chunk-YEJIUW7D.mjs +1152 -0
- package/dist/chunk-YEJIUW7D.mjs.map +1 -0
- package/dist/cluster-binner.d.ts +152 -0
- package/dist/cluster-binner.d.ts.map +1 -0
- package/dist/components/__tests__/points-lines-admission.unit.test.d.ts +2 -0
- package/dist/components/__tests__/points-lines-admission.unit.test.d.ts.map +1 -0
- package/dist/components/__tests__/points-lines-schema.unit.test.d.ts +2 -0
- package/dist/components/__tests__/points-lines-schema.unit.test.d.ts.map +1 -0
- package/dist/components/__tests__/schema-contract.unit.test.d.ts +2 -0
- package/dist/components/__tests__/schema-contract.unit.test.d.ts.map +1 -0
- package/dist/components/__tests__/schema-parity.unit.test.d.ts +2 -0
- package/dist/components/__tests__/schema-parity.unit.test.d.ts.map +1 -0
- package/dist/components/__tests__/visibility-schema.unit.test.d.ts +2 -0
- package/dist/components/__tests__/visibility-schema.unit.test.d.ts.map +1 -0
- package/dist/components/camera.d.ts +311 -0
- package/dist/components/camera.d.ts.map +1 -0
- package/dist/components/directional-light.d.ts +76 -0
- package/dist/components/directional-light.d.ts.map +1 -0
- package/dist/components/glyph-text.d.ts +26 -0
- package/dist/components/glyph-text.d.ts.map +1 -0
- package/dist/components/index.d.ts +24 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/instances.d.ts +41 -0
- package/dist/components/instances.d.ts.map +1 -0
- package/dist/components/layer.d.ts +34 -0
- package/dist/components/layer.d.ts.map +1 -0
- package/dist/components/light-helpers.d.ts +53 -0
- package/dist/components/light-helpers.d.ts.map +1 -0
- package/dist/components/lines.d.ts +5 -0
- package/dist/components/lines.d.ts.map +1 -0
- package/dist/components/mesh-filter.d.ts +24 -0
- package/dist/components/mesh-filter.d.ts.map +1 -0
- package/dist/components/mesh-renderer.d.ts +33 -0
- package/dist/components/mesh-renderer.d.ts.map +1 -0
- package/dist/components/point-light-shadow.d.ts +27 -0
- package/dist/components/point-light-shadow.d.ts.map +1 -0
- package/dist/components/point-light.d.ts +35 -0
- package/dist/components/point-light.d.ts.map +1 -0
- package/dist/components/points.d.ts +15 -0
- package/dist/components/points.d.ts.map +1 -0
- package/dist/components/post-process-params.d.ts +5 -0
- package/dist/components/post-process-params.d.ts.map +1 -0
- package/dist/components/scene-instance.d.ts +140 -0
- package/dist/components/scene-instance.d.ts.map +1 -0
- package/dist/components/skybox-background.d.ts +56 -0
- package/dist/components/skybox-background.d.ts.map +1 -0
- package/dist/components/skylight.d.ts +55 -0
- package/dist/components/skylight.d.ts.map +1 -0
- package/dist/components/sort-key.d.ts +44 -0
- package/dist/components/sort-key.d.ts.map +1 -0
- package/dist/components/spot-light.d.ts +81 -0
- package/dist/components/spot-light.d.ts.map +1 -0
- package/dist/components/sprite-animation.d.ts +74 -0
- package/dist/components/sprite-animation.d.ts.map +1 -0
- package/dist/components/sprite-instances.d.ts +51 -0
- package/dist/components/sprite-instances.d.ts.map +1 -0
- package/dist/components/sprite-playback-mode.d.ts +42 -0
- package/dist/components/sprite-playback-mode.d.ts.map +1 -0
- package/dist/components/sprite-region-override.d.ts +46 -0
- package/dist/components/sprite-region-override.d.ts.map +1 -0
- package/dist/components/tile-layer.d.ts +106 -0
- package/dist/components/tile-layer.d.ts.map +1 -0
- package/dist/components/tilemap.d.ts +25 -0
- package/dist/components/tilemap.d.ts.map +1 -0
- package/dist/components/visibility.d.ts +22 -0
- package/dist/components/visibility.d.ts.map +1 -0
- package/dist/construct-renderer.d.ts +19 -0
- package/dist/construct-renderer.d.ts.map +1 -0
- package/dist/construct-renderer.mjs +27462 -0
- package/dist/construct-renderer.mjs.map +1 -0
- package/dist/debug-draw-glue.d.ts +5 -0
- package/dist/debug-draw-glue.d.ts.map +1 -0
- package/dist/device/device-scope.d.ts +83 -0
- package/dist/device/device-scope.d.ts.map +1 -0
- package/dist/device/gpu-residency.d.ts +337 -0
- package/dist/device/gpu-residency.d.ts.map +1 -0
- package/dist/device/resource-types.d.ts +8 -0
- package/dist/device/resource-types.d.ts.map +1 -0
- package/dist/engine-metrics.d.ts +23 -0
- package/dist/engine-metrics.d.ts.map +1 -0
- package/dist/errors/ecs-validation.d.ts +3 -0
- package/dist/errors/ecs-validation.d.ts.map +1 -0
- package/dist/errors/index.d.ts +4 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/recover.d.ts +105 -0
- package/dist/errors/recover.d.ts.map +1 -0
- package/dist/errors/render.d.ts +705 -0
- package/dist/errors/render.d.ts.map +1 -0
- package/dist/extract/visibility.d.ts +26 -0
- package/dist/extract/visibility.d.ts.map +1 -0
- package/dist/features/fullscreen.d.ts +19 -0
- package/dist/features/fullscreen.d.ts.map +1 -0
- package/dist/features/host.d.ts +106 -0
- package/dist/features/host.d.ts.map +1 -0
- package/dist/features/morph/morph-feature.d.ts +79 -0
- package/dist/features/morph/morph-feature.d.ts.map +1 -0
- package/dist/features/plan.d.ts +182 -0
- package/dist/features/plan.d.ts.map +1 -0
- package/dist/features/prepared-gpu-work.d.ts +117 -0
- package/dist/features/prepared-gpu-work.d.ts.map +1 -0
- package/dist/features/prepared-graphics-store.d.ts +66 -0
- package/dist/features/prepared-graphics-store.d.ts.map +1 -0
- package/dist/features/prepared-graphics.d.ts +215 -0
- package/dist/features/prepared-graphics.d.ts.map +1 -0
- package/dist/features/render-graph-compute.d.ts +13 -0
- package/dist/features/render-graph-compute.d.ts.map +1 -0
- package/dist/features/render-graph-contribution.d.ts +12 -0
- package/dist/features/render-graph-contribution.d.ts.map +1 -0
- package/dist/features/render-graph-raster.d.ts +38 -0
- package/dist/features/render-graph-raster.d.ts.map +1 -0
- package/dist/features/render-graph-resources.d.ts +11 -0
- package/dist/features/render-graph-resources.d.ts.map +1 -0
- package/dist/features/targets.d.ts +32 -0
- package/dist/features/targets.d.ts.map +1 -0
- package/dist/features/types.d.ts +68 -0
- package/dist/features/types.d.ts.map +1 -0
- package/dist/features/vocabulary.d.ts +14 -0
- package/dist/features/vocabulary.d.ts.map +1 -0
- package/dist/fullscreen-post-process-pass.d.ts +157 -0
- package/dist/fullscreen-post-process-pass.d.ts.map +1 -0
- package/dist/glyph-text-layout-system.d.ts +19 -0
- package/dist/glyph-text-layout-system.d.ts.map +1 -0
- package/dist/gpu-driven/batch-topology.d.ts +55 -0
- package/dist/gpu-driven/batch-topology.d.ts.map +1 -0
- package/dist/gpu-driven/production-raster.d.ts +51 -0
- package/dist/gpu-driven/production-raster.d.ts.map +1 -0
- package/dist/gpu-driven/view-gpu.d.ts +85 -0
- package/dist/gpu-driven/view-gpu.d.ts.map +1 -0
- package/dist/gpu-resource.d.ts +73 -0
- package/dist/gpu-resource.d.ts.map +1 -0
- package/dist/gpu-scene-schema.d.ts +78 -0
- package/dist/gpu-scene-schema.d.ts.map +1 -0
- package/dist/gpu-scene.d.ts +55 -0
- package/dist/gpu-scene.d.ts.map +1 -0
- package/dist/gpu-stage.d.ts +4 -0
- package/dist/gpu-stage.d.ts.map +1 -0
- package/dist/gpu-texture-usage.d.ts +6 -0
- package/dist/gpu-texture-usage.d.ts.map +1 -0
- package/dist/gpu-usage.d.ts +9 -0
- package/dist/gpu-usage.d.ts.map +1 -0
- package/dist/hdrp-buffers.d.ts +163 -0
- package/dist/hdrp-buffers.d.ts.map +1 -0
- package/dist/ibl/IblPipelineCache.d.ts +168 -0
- package/dist/ibl/IblPipelineCache.d.ts.map +1 -0
- package/dist/ibl/skylight-bind-group.d.ts +130 -0
- package/dist/ibl/skylight-bind-group.d.ts.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +169 -0
- package/dist/index.mjs.map +1 -0
- package/dist/inspection-types.d.ts +72 -0
- package/dist/inspection-types.d.ts.map +1 -0
- package/dist/instance-buffer-cache.d.ts +56 -0
- package/dist/instance-buffer-cache.d.ts.map +1 -0
- package/dist/internal.d.ts +2 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.mjs +3 -0
- package/dist/internal.mjs.map +1 -0
- package/dist/lifecycle.d.ts +62 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/light-buffer-layout.d.ts +164 -0
- package/dist/light-buffer-layout.d.ts.map +1 -0
- package/dist/materials.d.ts +47 -0
- package/dist/materials.d.ts.map +1 -0
- package/dist/mesh-material-bindings.d.ts +43 -0
- package/dist/mesh-material-bindings.d.ts.map +1 -0
- package/dist/pbr-pipeline.d.ts +301 -0
- package/dist/pbr-pipeline.d.ts.map +1 -0
- package/dist/pipeline/standard-forward-lane.d.ts +5 -0
- package/dist/pipeline/standard-forward-lane.d.ts.map +1 -0
- package/dist/pipeline/standard-pipeline.d.ts +31 -0
- package/dist/pipeline/standard-pipeline.d.ts.map +1 -0
- package/dist/pipeline/standard-profile.d.ts +40 -0
- package/dist/pipeline/standard-profile.d.ts.map +1 -0
- package/dist/pipeline-builder.d.ts +122 -0
- package/dist/pipeline-builder.d.ts.map +1 -0
- package/dist/pipeline-spec-types.d.ts +24 -0
- package/dist/pipeline-spec-types.d.ts.map +1 -0
- package/dist/pipeline-spec.d.ts +367 -0
- package/dist/pipeline-spec.d.ts.map +1 -0
- package/dist/plugin.d.ts +4 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/points-lines/__tests__/bounds.unit.test.d.ts +2 -0
- package/dist/points-lines/__tests__/bounds.unit.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts +2 -0
- package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts +2 -0
- package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/inspection.unit.test.d.ts +2 -0
- package/dist/points-lines/__tests__/inspection.unit.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts +2 -0
- package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/points-lines.bench.d.ts +2 -0
- package/dist/points-lines/__tests__/points-lines.bench.d.ts.map +1 -0
- package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts +2 -0
- package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/snapshot.unit.test.d.ts +2 -0
- package/dist/points-lines/__tests__/snapshot.unit.test.d.ts.map +1 -0
- package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts +2 -0
- package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts.map +1 -0
- package/dist/points-lines/admission.d.ts +36 -0
- package/dist/points-lines/admission.d.ts.map +1 -0
- package/dist/points-lines/bounds.d.ts +8 -0
- package/dist/points-lines/bounds.d.ts.map +1 -0
- package/dist/points-lines/expansion-cache.d.ts +28 -0
- package/dist/points-lines/expansion-cache.d.ts.map +1 -0
- package/dist/points-lines/inspection.d.ts +53 -0
- package/dist/points-lines/inspection.d.ts.map +1 -0
- package/dist/points-lines/prepare.d.ts +67 -0
- package/dist/points-lines/prepare.d.ts.map +1 -0
- package/dist/points-lines/record.d.ts +60 -0
- package/dist/points-lines/record.d.ts.map +1 -0
- package/dist/points-lines/snapshot.d.ts +49 -0
- package/dist/points-lines/snapshot.d.ts.map +1 -0
- package/dist/post-process-errors.d.ts +182 -0
- package/dist/post-process-errors.d.ts.map +1 -0
- package/dist/prepare/prepared-graphics-resolver.d.ts +59 -0
- package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -0
- package/dist/record/__tests__/material-bg-cache.unit.test.d.ts +2 -0
- package/dist/record/__tests__/material-bg-cache.unit.test.d.ts.map +1 -0
- package/dist/record/__tests__/material-slot-plan.unit.test.d.ts +2 -0
- package/dist/record/__tests__/material-slot-plan.unit.test.d.ts.map +1 -0
- package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts +2 -0
- package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts.map +1 -0
- package/dist/record/__tests__/video-texture-view.unit.test.d.ts +2 -0
- package/dist/record/__tests__/video-texture-view.unit.test.d.ts.map +1 -0
- package/dist/record/frame-lighting.d.ts +121 -0
- package/dist/record/frame-lighting.d.ts.map +1 -0
- package/dist/record/frame-snapshot.d.ts +429 -0
- package/dist/record/frame-snapshot.d.ts.map +1 -0
- package/dist/record/frame-targets.d.ts +20 -0
- package/dist/record/frame-targets.d.ts.map +1 -0
- package/dist/record/frame.d.ts +71 -0
- package/dist/record/frame.d.ts.map +1 -0
- package/dist/record/helpers.d.ts +102 -0
- package/dist/record/helpers.d.ts.map +1 -0
- package/dist/record/main-pass-geometry.d.ts +28 -0
- package/dist/record/main-pass-geometry.d.ts.map +1 -0
- package/dist/record/main-pass-material.d.ts +204 -0
- package/dist/record/main-pass-material.d.ts.map +1 -0
- package/dist/record/main-pass-sprite-draws.d.ts +43 -0
- package/dist/record/main-pass-sprite-draws.d.ts.map +1 -0
- package/dist/record/main-pass.d.ts +20 -0
- package/dist/record/main-pass.d.ts.map +1 -0
- package/dist/record/mesh-ssbo.d.ts +446 -0
- package/dist/record/mesh-ssbo.d.ts.map +1 -0
- package/dist/record/render-context.d.ts +252 -0
- package/dist/record/render-context.d.ts.map +1 -0
- package/dist/record/shadow-pass.d.ts +52 -0
- package/dist/record/shadow-pass.d.ts.map +1 -0
- package/dist/record/skybox-post-pass.d.ts +33 -0
- package/dist/record/skybox-post-pass.d.ts.map +1 -0
- package/dist/record/typed-frame-graph.d.ts +35 -0
- package/dist/record/typed-frame-graph.d.ts.map +1 -0
- package/dist/record/view-ubo.d.ts +45 -0
- package/dist/record/view-ubo.d.ts.map +1 -0
- package/dist/render-contract.d.ts +424 -0
- package/dist/render-contract.d.ts.map +1 -0
- package/dist/render-data.d.ts +143 -0
- package/dist/render-data.d.ts.map +1 -0
- package/dist/render-graph-primitives.d.ts +76 -0
- package/dist/render-graph-primitives.d.ts.map +1 -0
- package/dist/render-pipeline.d.ts +110 -0
- package/dist/render-pipeline.d.ts.map +1 -0
- package/dist/render-system-extract.d.ts +868 -0
- package/dist/render-system-extract.d.ts.map +1 -0
- package/dist/render-system.d.ts +125 -0
- package/dist/render-system.d.ts.map +1 -0
- package/dist/scene/render-scene-types.d.ts +61 -0
- package/dist/scene/render-scene-types.d.ts.map +1 -0
- package/dist/scene/render-scene.d.ts +112 -0
- package/dist/scene/render-scene.d.ts.map +1 -0
- package/dist/scene-instances/post-spawn-resolve-joints.d.ts +30 -0
- package/dist/scene-instances/post-spawn-resolve-joints.d.ts.map +1 -0
- package/dist/shadow-atlas.d.ts +117 -0
- package/dist/shadow-atlas.d.ts.map +1 -0
- package/dist/ssao-buffers.d.ts +50 -0
- package/dist/ssao-buffers.d.ts.map +1 -0
- package/dist/ssao-config.d.ts +28 -0
- package/dist/ssao-config.d.ts.map +1 -0
- package/dist/systems/active-camera.d.ts +53 -0
- package/dist/systems/active-camera.d.ts.map +1 -0
- package/dist/systems/pass-selector.d.ts +24 -0
- package/dist/systems/pass-selector.d.ts.map +1 -0
- package/dist/systems/skin-palette-allocator.d.ts +49 -0
- package/dist/systems/skin-palette-allocator.d.ts.map +1 -0
- package/dist/systems/skin-palette-types.d.ts +14 -0
- package/dist/systems/skin-palette-types.d.ts.map +1 -0
- package/dist/systems/transparent-sort-config.d.ts +112 -0
- package/dist/systems/transparent-sort-config.d.ts.map +1 -0
- package/dist/tilemap-chunk-extract-system.d.ts +143 -0
- package/dist/tilemap-chunk-extract-system.d.ts.map +1 -0
- package/dist/typed-render-graph-primitives.d.ts +57 -0
- package/dist/typed-render-graph-primitives.d.ts.map +1 -0
- package/dist/typed-shadow-passes.d.ts +11 -0
- package/dist/typed-shadow-passes.d.ts.map +1 -0
- package/package.json +94 -0
- package/src/__tests__/authoring-path.unit.test.ts +23 -0
- package/src/__tests__/backend-selection-rhi-capture.test-d.ts +21 -0
- package/src/__tests__/callback-inference.test-d.ts +8 -0
- package/src/__tests__/cluster-binner.test.ts +272 -0
- package/src/__tests__/cluster-grid-default-surface.unit.test.ts +20 -0
- package/src/__tests__/construct-renderer-identity.unit.test.ts +23 -0
- package/src/__tests__/device-scope-lifecycle.unit.test.ts +151 -0
- package/src/__tests__/device-scope-stale-matrix.unit.test.ts +42 -0
- package/src/__tests__/direct-extract-consumer-contract.test-d.ts +23 -0
- package/src/__tests__/direct-light-snapshot.unit.test.ts +61 -0
- package/src/__tests__/factory-contract.integration.test.ts +280 -0
- package/src/__tests__/fallback-row-stride-surface.unit.test.ts +15 -0
- package/src/__tests__/frame-observation.contract.test.ts +112 -0
- package/src/__tests__/fullscreen-feature-plan.unit.test.ts +32 -0
- package/src/__tests__/glyph-text-layout-recovery.unit.test.ts +167 -0
- package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +350 -0
- package/src/__tests__/gpu-driven-indirect-raster.browser.test.ts +12 -0
- package/src/__tests__/gpu-driven-indirect-raster.dawn.test.ts +16 -0
- package/src/__tests__/gpu-driven-production.integration.test.ts +436 -0
- package/src/__tests__/gpu-driven-scaling.unit.test.ts +87 -0
- package/src/__tests__/gpu-driven-view-gpu-evidence.ts +271 -0
- package/src/__tests__/gpu-driven-view-graph.integration.test.ts +290 -0
- package/src/__tests__/gpu-driven-view-reference.ts +111 -0
- package/src/__tests__/gpu-driven-view.browser.test.ts +30 -0
- package/src/__tests__/gpu-driven-view.dawn.test.ts +28 -0
- package/src/__tests__/gpu-driven-view.unit.test.ts +199 -0
- package/src/__tests__/gpu-resource-store-stride.unit.test.ts +59 -0
- package/src/__tests__/gpu-scene-render-graph-gpu.ts +308 -0
- package/src/__tests__/gpu-scene-render-graph.browser.test.ts +19 -0
- package/src/__tests__/gpu-scene-render-graph.dawn.test.ts +19 -0
- package/src/__tests__/gpu-scene-schema.unit.test.ts +16 -0
- package/src/__tests__/gpu-scene.dawn.test.ts +205 -0
- package/src/__tests__/gpu-scene.unit.test.ts +147 -0
- package/src/__tests__/ibl/face-uniforms.unit.test.ts +46 -0
- package/src/__tests__/infinite-grid-no-vertex-probe.unit.test.ts +92 -0
- package/src/__tests__/injection-kind-owner.test-d.ts +14 -0
- package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +728 -0
- package/src/__tests__/light-buffer-layout.unit.test.ts +40 -0
- package/src/__tests__/material-contract-inventory.unit.test.ts +24 -0
- package/src/__tests__/material-cooked-projection.unit.test.ts +150 -0
- package/src/__tests__/material-snapshot-mutation.integration.test.ts +53 -0
- package/src/__tests__/material-static-dynamic-route.unit.test.ts +94 -0
- package/src/__tests__/material-stride-surface.unit.test.ts +32 -0
- package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +106 -0
- package/src/__tests__/mesh-material-bindings.unit.test.ts +89 -0
- package/src/__tests__/mesh-stride-surface.unit.test.ts +16 -0
- package/src/__tests__/morph-culling-reentry.dawn.test.ts +157 -0
- package/src/__tests__/morph-feature-gpu-work.integration.test.ts +80 -0
- package/src/__tests__/morph-feature-plan.unit.test.ts +53 -0
- package/src/__tests__/morph-visual-evidence.integration.test.ts +80 -0
- package/src/__tests__/nineslice-handle-surface.unit.test.ts +19 -0
- package/src/__tests__/post-process-error-policy-owner.unit.test.ts +201 -0
- package/src/__tests__/prepared-buffer-kind-owner.test-d.ts +29 -0
- package/src/__tests__/prepared-graphics-capability.unit.test.ts +65 -0
- package/src/__tests__/prepared-graphics-generation.unit.test.ts +161 -0
- package/src/__tests__/prepared-graphics-lifecycle.unit.test.ts +138 -0
- package/src/__tests__/prepared-graphics-pipeline-warmup.unit.test.ts +29 -0
- package/src/__tests__/prepared-graphics-resolver.unit.test.ts +285 -0
- package/src/__tests__/prepared-graphics-snapshot.unit.test.ts +105 -0
- package/src/__tests__/prepared-graphics-store.unit.test.ts +154 -0
- package/src/__tests__/prepared-graphics-validation.unit.test.ts +176 -0
- package/src/__tests__/profiler-default-off.test.ts +22 -0
- package/src/__tests__/profiler-phase-catalog.test.ts +66 -0
- package/src/__tests__/profiler-phase-integration.test.ts +62 -0
- package/src/__tests__/profiler-phase-token.test.ts +79 -0
- package/src/__tests__/public-surface.test-d.ts +94 -0
- package/src/__tests__/recover-error-policy-owner.unit.test.ts +107 -0
- package/src/__tests__/render-error-code-owner.test-d.ts +116 -0
- package/src/__tests__/render-error-detail-ssot.test-d.ts +139 -0
- package/src/__tests__/render-error-exhaustive.test-d.ts +110 -0
- package/src/__tests__/render-feature-assembly.test-d.ts +43 -0
- package/src/__tests__/render-feature-context.test-d.ts +57 -0
- package/src/__tests__/render-feature-contract.test-d.ts +49 -0
- package/src/__tests__/render-feature-diagnostics.unit.test.ts +149 -0
- package/src/__tests__/render-feature-docs.unit.test.ts +89 -0
- package/src/__tests__/render-feature-errors.unit.test.ts +47 -0
- package/src/__tests__/render-feature-gpu-work.integration.test.ts +316 -0
- package/src/__tests__/render-feature-plan.test-d.ts +161 -0
- package/src/__tests__/render-feature-plan.unit.test.ts +170 -0
- package/src/__tests__/render-feature-prepared-diagnostics.unit.test.ts +90 -0
- package/src/__tests__/render-feature-prepared-errors.test-d.ts +79 -0
- package/src/__tests__/render-feature-prepared-graphics-docs.unit.test.ts +80 -0
- package/src/__tests__/render-feature-prepared-graphics-isolation.unit.test.ts +72 -0
- package/src/__tests__/render-feature-prepared-graphics-negative.test-d.ts +36 -0
- package/src/__tests__/render-feature-prepared-graphics.test-d.ts +74 -0
- package/src/__tests__/render-feature-prepared-graphics.unit.test.ts +121 -0
- package/src/__tests__/render-feature-public-surface.test-d.ts +57 -0
- package/src/__tests__/render-feature-retry.unit.test.ts +87 -0
- package/src/__tests__/render-feature-scheduling.unit.test.ts +110 -0
- package/src/__tests__/render-feature-stage-failed-policy-owner.unit.test.ts +137 -0
- package/src/__tests__/render-feature-stage-fault-recovery.unit.test.ts +146 -0
- package/src/__tests__/render-feature-visibility-context.test-d.ts +33 -0
- package/src/__tests__/render-feature-visibility-context.unit.test.ts +37 -0
- package/src/__tests__/render-feature-zero-work.unit.test.ts +76 -0
- package/src/__tests__/render-graph-compute-raster-gpu.ts +342 -0
- package/src/__tests__/render-graph-compute-raster.browser.test.ts +16 -0
- package/src/__tests__/render-graph-compute-raster.dawn.test.ts +22 -0
- package/src/__tests__/render-graph-hzb-gpu.ts +239 -0
- package/src/__tests__/render-graph-hzb.browser.test.ts +16 -0
- package/src/__tests__/render-graph-hzb.dawn.test.ts +23 -0
- package/src/__tests__/render-graph-primitives.unit.test.ts +22 -0
- package/src/__tests__/render-graph-storage-indirect-gpu.ts +162 -0
- package/src/__tests__/render-graph-storage-indirect.browser.test.ts +21 -0
- package/src/__tests__/render-graph-storage-indirect.dawn.test.ts +28 -0
- package/src/__tests__/render-scene-projection.unit.test.ts +168 -0
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +121 -0
- package/src/__tests__/renderer-lifecycle.integration.test.ts +58 -0
- package/src/__tests__/rhi-backend-package-boundary.unit.test.ts +11 -0
- package/src/__tests__/scriptable-pack-consumer.test-d.ts +14 -0
- package/src/__tests__/shader-stage-surface.unit.test.ts +43 -0
- package/src/__tests__/ssao-config.unit.test.ts +36 -0
- package/src/__tests__/ssao-kernel-surface.unit.test.ts +14 -0
- package/src/__tests__/standard-clustered-pipeline.unit.test.ts +28 -0
- package/src/__tests__/standard-descriptors.test-d.ts +22 -0
- package/src/__tests__/standard-pipeline.dawn.test.ts +61 -0
- package/src/__tests__/standard-pipeline.integration.test.ts +124 -0
- package/src/__tests__/standard-profile-oracle.unit.test.ts +62 -0
- package/src/__tests__/surface-configuration.unit.test.ts +91 -0
- package/src/__tests__/texture-usage-surface.unit.test.ts +58 -0
- package/src/__tests__/typed-pipeline-topology.unit.test.ts +223 -0
- package/src/__tests__/urp-pipeline-targets.unit.test.ts +42 -0
- package/src/__tests__/urp-pipeline.unit.test.ts +14 -0
- package/src/__tests__/vertex-color-pipeline.unit.test.ts +132 -0
- package/src/__tests__/vertex-layout-consumer.unit.test.ts +25 -0
- package/src/__tests__/visibility-diagnostics.integration.test.ts +62 -0
- package/src/__tests__/visibility-extract.integration.test.ts +98 -0
- package/src/__tests__/visibility-extract.perf.test.ts +130 -0
- package/src/__tests__/visibility-feature-dedup.integration.test.ts +55 -0
- package/src/__tests__/visibility-hidden-report.unit.test.ts +36 -0
- package/src/__tests__/visibility-instances.integration.test.ts +46 -0
- package/src/__tests__/visibility-multi-world.integration.test.ts +86 -0
- package/src/__tests__/visibility-producer-matrix.integration.test.ts +168 -0
- package/src/__tests__/visibility-producer-matrix.unit.test.ts +96 -0
- package/src/__tests__/visibility-public-surface.test-d.ts +27 -0
- package/src/__tests__/visibility-resolver.unit.test.ts +85 -0
- package/src/__tests__/visibility-resource-short-circuit.unit.test.ts +80 -0
- package/src/__tests__/visibility-snapshot-contract.unit.test.ts +60 -0
- package/src/__tests__/vocabulary.unit.test.ts +21 -0
- package/src/assembly/backend-contract.ts +57 -0
- package/src/assembly/factory.ts +8130 -0
- package/src/assembly/host-contract.ts +101 -0
- package/src/assembly/material/assembly.ts +48 -0
- package/src/assembly/material/pipeline-projection.ts +63 -0
- package/src/assets/asset-decoders.ts +158 -0
- package/src/assets/render-asset-port.ts +44 -0
- package/src/assets/resolve-render-asset.ts +13 -0
- package/src/authoring.ts +17 -0
- package/src/cluster-binner.ts +700 -0
- package/src/components/__tests__/points-lines-admission.unit.test.ts +219 -0
- package/src/components/__tests__/points-lines-schema.unit.test.ts +56 -0
- package/src/components/__tests__/schema-contract.unit.test.ts +10 -0
- package/src/components/__tests__/schema-parity.unit.test.ts +25 -0
- package/src/components/__tests__/visibility-schema.unit.test.ts +35 -0
- package/src/components/camera.ts +512 -0
- package/src/components/directional-light.ts +120 -0
- package/src/components/glyph-text.ts +64 -0
- package/src/components/index.ts +54 -0
- package/src/components/instances.ts +206 -0
- package/src/components/layer.ts +69 -0
- package/src/components/light-helpers.ts +188 -0
- package/src/components/lines.ts +18 -0
- package/src/components/mesh-filter.ts +60 -0
- package/src/components/mesh-renderer.ts +61 -0
- package/src/components/point-light-shadow.ts +43 -0
- package/src/components/point-light.ts +65 -0
- package/src/components/points.ts +40 -0
- package/src/components/post-process-params.ts +35 -0
- package/src/components/scene-instance.ts +193 -0
- package/src/components/skybox-background.ts +103 -0
- package/src/components/skylight.ts +97 -0
- package/src/components/sort-key.ts +75 -0
- package/src/components/spot-light.ts +124 -0
- package/src/components/sprite-animation.ts +168 -0
- package/src/components/sprite-instances.ts +179 -0
- package/src/components/sprite-playback-mode.ts +79 -0
- package/src/components/sprite-region-override.ts +105 -0
- package/src/components/tile-layer.ts +167 -0
- package/src/components/tilemap.ts +48 -0
- package/src/components/visibility.ts +53 -0
- package/src/construct-renderer.ts +67 -0
- package/src/debug-draw-glue.ts +48 -0
- package/src/device/device-scope.ts +306 -0
- package/src/device/gpu-residency.ts +1822 -0
- package/src/device/resource-types.ts +20 -0
- package/src/engine-metrics.ts +82 -0
- package/src/errors/ecs-validation.ts +16 -0
- package/src/errors/index.ts +3 -0
- package/src/errors/recover.ts +161 -0
- package/src/errors/render.ts +1284 -0
- package/src/extract/visibility.ts +120 -0
- package/src/features/fullscreen.ts +46 -0
- package/src/features/host.ts +1363 -0
- package/src/features/morph/morph-feature.ts +377 -0
- package/src/features/plan.ts +447 -0
- package/src/features/prepared-gpu-work.ts +959 -0
- package/src/features/prepared-graphics-store.ts +449 -0
- package/src/features/prepared-graphics.ts +420 -0
- package/src/features/render-graph-compute.ts +69 -0
- package/src/features/render-graph-contribution.ts +75 -0
- package/src/features/render-graph-raster.ts +332 -0
- package/src/features/render-graph-resources.ts +38 -0
- package/src/features/targets.ts +70 -0
- package/src/features/types.ts +103 -0
- package/src/features/vocabulary.ts +24 -0
- package/src/fullscreen-post-process-pass.ts +363 -0
- package/src/glyph-text-layout-system.ts +421 -0
- package/src/gpu-driven/batch-topology.ts +245 -0
- package/src/gpu-driven/production-raster.ts +695 -0
- package/src/gpu-driven/view-gpu.ts +703 -0
- package/src/gpu-resource.ts +159 -0
- package/src/gpu-scene-schema.ts +136 -0
- package/src/gpu-scene.ts +722 -0
- package/src/gpu-stage.ts +9 -0
- package/src/gpu-texture-usage.ts +12 -0
- package/src/gpu-usage.ts +14 -0
- package/src/hdrp-buffers.ts +480 -0
- package/src/ibl/IblPipelineCache.ts +1006 -0
- package/src/ibl/skylight-bind-group.ts +513 -0
- package/src/index.ts +129 -0
- package/src/inspection-types.ts +80 -0
- package/src/instance-buffer-cache.ts +95 -0
- package/src/internal.ts +9 -0
- package/src/lifecycle.ts +168 -0
- package/src/light-buffer-layout.ts +346 -0
- package/src/materials.ts +214 -0
- package/src/mesh-material-bindings.ts +103 -0
- package/src/pbr-pipeline.ts +1137 -0
- package/src/pipeline/standard-forward-lane.ts +229 -0
- package/src/pipeline/standard-pipeline.ts +555 -0
- package/src/pipeline/standard-profile.ts +65 -0
- package/src/pipeline-builder.ts +382 -0
- package/src/pipeline-spec-types.ts +28 -0
- package/src/pipeline-spec.ts +1231 -0
- package/src/plugin.ts +69 -0
- package/src/points-lines/__tests__/bounds.unit.test.ts +21 -0
- package/src/points-lines/__tests__/cache-recovery.unit.test.ts +157 -0
- package/src/points-lines/__tests__/inspection-lanes.integration.test.ts +146 -0
- package/src/points-lines/__tests__/inspection.unit.test.ts +173 -0
- package/src/points-lines/__tests__/lane-structural.integration.test.ts +122 -0
- package/src/points-lines/__tests__/points-lines.bench.ts +400 -0
- package/src/points-lines/__tests__/raster-lane.integration.test.ts +44 -0
- package/src/points-lines/__tests__/snapshot.unit.test.ts +101 -0
- package/src/points-lines/__tests__/view-ubo.unit.test.ts +73 -0
- package/src/points-lines/admission.ts +238 -0
- package/src/points-lines/bounds.ts +23 -0
- package/src/points-lines/expansion-cache.ts +215 -0
- package/src/points-lines/inspection.ts +97 -0
- package/src/points-lines/prepare.ts +177 -0
- package/src/points-lines/record.ts +125 -0
- package/src/points-lines/snapshot.ts +130 -0
- package/src/post-process-errors.ts +302 -0
- package/src/prepare/prepared-graphics-resolver.ts +456 -0
- package/src/record/__tests__/material-bg-cache.unit.test.ts +41 -0
- package/src/record/__tests__/material-slot-plan.unit.test.ts +44 -0
- package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +41 -0
- package/src/record/__tests__/video-texture-view.unit.test.ts +90 -0
- package/src/record/frame-lighting.ts +1074 -0
- package/src/record/frame-snapshot.ts +500 -0
- package/src/record/frame-targets.ts +137 -0
- package/src/record/frame.ts +1598 -0
- package/src/record/helpers.ts +284 -0
- package/src/record/main-pass-geometry.ts +1065 -0
- package/src/record/main-pass-material.ts +1043 -0
- package/src/record/main-pass-sprite-draws.ts +1137 -0
- package/src/record/main-pass.ts +610 -0
- package/src/record/mesh-ssbo.ts +885 -0
- package/src/record/render-context.ts +384 -0
- package/src/record/shadow-pass.ts +698 -0
- package/src/record/skybox-post-pass.ts +593 -0
- package/src/record/typed-frame-graph.ts +461 -0
- package/src/record/view-ubo.ts +222 -0
- package/src/render-contract.ts +582 -0
- package/src/render-data.ts +385 -0
- package/src/render-graph-primitives.ts +811 -0
- package/src/render-pipeline.ts +259 -0
- package/src/render-system-extract.ts +4585 -0
- package/src/render-system.ts +1933 -0
- package/src/scene/render-scene-types.ts +67 -0
- package/src/scene/render-scene.ts +1087 -0
- package/src/scene-instances/post-spawn-resolve-joints.ts +165 -0
- package/src/shadow-atlas.ts +244 -0
- package/src/ssao-buffers.ts +334 -0
- package/src/ssao-config.ts +61 -0
- package/src/systems/active-camera.ts +116 -0
- package/src/systems/pass-selector.ts +49 -0
- package/src/systems/skin-palette-allocator.ts +251 -0
- package/src/systems/skin-palette-types.ts +14 -0
- package/src/systems/transparent-sort-config.ts +233 -0
- package/src/tilemap-chunk-extract-system.ts +1290 -0
- package/src/typed-render-graph-primitives.ts +541 -0
- package/src/typed-shadow-passes.ts +165 -0
|
@@ -0,0 +1,513 @@
|
|
|
1
|
+
// skylight-bind-group.ts -- Skylight resources merged into @group(1) PBR
|
|
2
|
+
// material BGL (binding 7..13) + fallback identity resource bundle.
|
|
3
|
+
//
|
|
4
|
+
// Plan-strategy D-5 (round-4 REVISED): the round-2 stand-alone @group(4)
|
|
5
|
+
// Skylight BindGroupLayout collided with WebGPU's default maxBindGroups=4
|
|
6
|
+
// limit, blocking pbr-pl pipeline-layout creation in chrome-beta. Round-4
|
|
7
|
+
// rewrites the contract: Skylight 7 entries are **appended** to the
|
|
8
|
+
// existing PBR material BindGroupLayout at bindings 7..13; pipeline layout
|
|
9
|
+
// stays at 4 slots `[view, material, mesh, instances]`; unlit pipeline is
|
|
10
|
+
// untouched (it uses its own material BGL).
|
|
11
|
+
//
|
|
12
|
+
// Surface (M2 round-4 / t40 amend):
|
|
13
|
+
// - mergeSkylightIntoMaterialBgl(materialBglEntries): given the existing
|
|
14
|
+
// 7 PBR material BindGroupLayout entries (binding 0..6), returns the
|
|
15
|
+
// merged 14-entry array with Skylight resources at binding 7..13
|
|
16
|
+
// [irrTex, irrSampler, prefTex, prefSampler, brdfTex, brdfSampler,
|
|
17
|
+
// uniform { intensity: f32 }]. The merge is a pure function -- caller
|
|
18
|
+
// (createRenderer) is responsible for passing the result to
|
|
19
|
+
// `device.createBindGroupLayout`.
|
|
20
|
+
// - assembleMaterialWithSkylightEntries(materialEntries, skylightResources):
|
|
21
|
+
// given the existing 7 material BindGroupEntry values + a skylight
|
|
22
|
+
// resource bundle (active or fallback), returns the merged 14-entry
|
|
23
|
+
// array suitable for `device.createBindGroup`. Charter P5 minimal
|
|
24
|
+
// surface: this helper does NOT allocate samplers/textures itself.
|
|
25
|
+
// - createSkylightFallback(device, queue): allocate a 1x1 white
|
|
26
|
+
// irradiance/prefilter cube pair + a 1x1 BRDF approximation + intensity=0 uniform
|
|
27
|
+
// buffer + a shared linear/clamp sampler. Returns the resource bundle
|
|
28
|
+
// so createRenderer can wire it into PipelineState.skylightFallback;
|
|
29
|
+
// no stand-alone bindGroup is created (that was the round-2 shape).
|
|
30
|
+
//
|
|
31
|
+
// All resources write into PipelineState.skylightFallback so the M4
|
|
32
|
+
// recordFrame branch (Skylight present vs absent) selects active vs
|
|
33
|
+
// fallback resources when assembling the PBR material BindGroup
|
|
34
|
+
// (charter P4 consistent abstraction -- one BG layout, one assembly path).
|
|
35
|
+
// The irradiance texture uses the canonical irradianceEOverPi payload semantic;
|
|
36
|
+
// sampling applies the single E/pi normalization at the shader callsite.
|
|
37
|
+
|
|
38
|
+
import type {
|
|
39
|
+
BindGroupEntry,
|
|
40
|
+
Buffer,
|
|
41
|
+
Result,
|
|
42
|
+
RhiError,
|
|
43
|
+
Sampler,
|
|
44
|
+
SamplerDescriptor,
|
|
45
|
+
Texture,
|
|
46
|
+
TextureDescriptor,
|
|
47
|
+
TextureView,
|
|
48
|
+
TextureViewDescriptor,
|
|
49
|
+
} from '@forgeax/engine-rhi';
|
|
50
|
+
import { GPU_SHADER_STAGE_FRAGMENT } from '../gpu-stage';
|
|
51
|
+
import {
|
|
52
|
+
GPU_TEXTURE_USAGE_COPY_DST,
|
|
53
|
+
GPU_TEXTURE_USAGE_TEXTURE_BINDING,
|
|
54
|
+
} from '../gpu-texture-usage';
|
|
55
|
+
import { GPU_BUFFER_USAGE_COPY_DST, GPU_BUFFER_USAGE_UNIFORM } from '../gpu-usage';
|
|
56
|
+
|
|
57
|
+
// The rhi shim enforces bytesPerRow % 256 === 0 uniformly (see
|
|
58
|
+
// fallback-white texture upload in createRenderer.ts). Pad each 1x1 face
|
|
59
|
+
// upload to a 256-byte row stride.
|
|
60
|
+
export const FALLBACK_BYTES_PER_ROW = 256;
|
|
61
|
+
|
|
62
|
+
// Local alias for the @webgpu/types BindGroupLayoutEntry shape. Used at
|
|
63
|
+
// object-literal push sites below to dodge the AC-08 (j) `as GPU<Type>`
|
|
64
|
+
// grep gate (charter proposition 5 red line for shim leaks); the underlying
|
|
65
|
+
// type is identical to GPUBindGroupLayoutEntry, so byte-level behavior is
|
|
66
|
+
// unchanged. engine-rhi does not yet re-export a BindGroupLayoutEntry alias
|
|
67
|
+
// (the public surface is BindGroupLayoutDescriptor which Picks `entries`);
|
|
68
|
+
// once it does this alias collapses into a direct import.
|
|
69
|
+
type BglEntry = GPUBindGroupLayoutEntry;
|
|
70
|
+
|
|
71
|
+
// ─── Device shim shapes ──────────────────────────────────────────────────────
|
|
72
|
+
//
|
|
73
|
+
// We accept a structural subset of RhiDevice so unit tests can pass a
|
|
74
|
+
// mocked device without standing up the full RHI surface. The createRenderer
|
|
75
|
+
// production path passes a real RhiDevice; both satisfy the interface.
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Minimal RhiDevice subset used by the skylight fallback helper.
|
|
79
|
+
* Mirrors RhiDevice for the methods touched by this module (charter P4
|
|
80
|
+
* narrowest surface -- avoids dragging the full RhiDevice in for tests).
|
|
81
|
+
*/
|
|
82
|
+
export interface SkylightDevice {
|
|
83
|
+
createSampler(desc: SamplerDescriptor): Result<Sampler, RhiError>;
|
|
84
|
+
createTexture(desc: TextureDescriptor): Result<Texture, RhiError>;
|
|
85
|
+
createTextureView(tex: Texture, desc: TextureViewDescriptor): Result<TextureView, RhiError>;
|
|
86
|
+
createBuffer(desc: {
|
|
87
|
+
label?: string | undefined;
|
|
88
|
+
size: number;
|
|
89
|
+
usage: number;
|
|
90
|
+
mappedAtCreation?: boolean | undefined;
|
|
91
|
+
}): Result<Buffer, RhiError>;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Minimal queue subset used for fallback resource upload (zero-pixel
|
|
96
|
+
* texture seed + intensity=0 uniform seed).
|
|
97
|
+
*/
|
|
98
|
+
export interface SkylightQueue {
|
|
99
|
+
writeTexture(
|
|
100
|
+
destination: {
|
|
101
|
+
texture: Texture;
|
|
102
|
+
mipLevel?: number;
|
|
103
|
+
origin?: { x: number; y: number; z: number };
|
|
104
|
+
},
|
|
105
|
+
data: ArrayBufferView,
|
|
106
|
+
dataLayout: { offset: number; bytesPerRow: number; rowsPerImage: number },
|
|
107
|
+
size: { width: number; height: number; depthOrArrayLayers: number },
|
|
108
|
+
): Result<void, RhiError> | unknown;
|
|
109
|
+
writeBuffer(
|
|
110
|
+
buffer: Buffer,
|
|
111
|
+
bufferOffset: number,
|
|
112
|
+
data: ArrayBufferView,
|
|
113
|
+
): Result<void, RhiError> | unknown;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// ─── Public types ───────────────────────────────────────────────────────────
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Skylight bind group resources (cube + cube + 2D LUT + intensity uniform).
|
|
120
|
+
* The active set comes from the IblPipelineCache precompute path; the
|
|
121
|
+
* fallback set is the 1x1 zero identity bundle below.
|
|
122
|
+
*/
|
|
123
|
+
export interface SkylightBindGroupResources {
|
|
124
|
+
readonly irradianceView: TextureView;
|
|
125
|
+
readonly irradianceSampler: Sampler;
|
|
126
|
+
readonly prefilterView: TextureView;
|
|
127
|
+
readonly prefilterSampler: Sampler;
|
|
128
|
+
readonly brdfLutView: TextureView;
|
|
129
|
+
readonly brdfLutSampler: Sampler;
|
|
130
|
+
readonly intensityBuffer: Buffer;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Fallback resource bundle attached to `PipelineState.skylightFallback`.
|
|
135
|
+
* The M4 round-4 recordFrame branch reads this bundle when
|
|
136
|
+
* `skylightCount === 0` and feeds it through
|
|
137
|
+
* `assembleMaterialWithSkylightEntries` so the PBR material BindGroup
|
|
138
|
+
* binds the same 14-entry layout shape with zero data + intensity=0.
|
|
139
|
+
*
|
|
140
|
+
* No stand-alone `bindGroup` field: the round-2 stand-alone Skylight BG
|
|
141
|
+
* is gone (D-5 round-4); the fallback resources flow into the PBR
|
|
142
|
+
* material BG at binding 7..13.
|
|
143
|
+
*/
|
|
144
|
+
export interface SkylightFallback {
|
|
145
|
+
readonly irradianceTexture: Texture;
|
|
146
|
+
readonly irradianceView: TextureView;
|
|
147
|
+
readonly prefilterTexture: Texture;
|
|
148
|
+
readonly prefilterView: TextureView;
|
|
149
|
+
readonly brdfLutTexture: Texture;
|
|
150
|
+
readonly brdfLutView: TextureView;
|
|
151
|
+
readonly sampler: Sampler;
|
|
152
|
+
readonly intensityBuffer: Buffer;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// ─── Pure merger: BindGroupLayout entries (D-5 round-4) ─────────────────────
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Append the 7 Skylight BindGroupLayout entries after the existing PBR
|
|
159
|
+
* user-region entries. Pure function -- the
|
|
160
|
+
* caller passes the result to `device.createBindGroupLayout`. Charter P4
|
|
161
|
+
* consistent abstraction: one BGL holds material + Skylight together,
|
|
162
|
+
* no second `@group(4)` allocated.
|
|
163
|
+
*
|
|
164
|
+
* Throws if the input is too short to contain the material UBO plus one
|
|
165
|
+
* sampler/texture pair (defensive guard; mirrors charter P3 explicit failure).
|
|
166
|
+
*/
|
|
167
|
+
export function mergeSkylightIntoMaterialBgl(
|
|
168
|
+
materialBglEntries: readonly GPUBindGroupLayoutEntry[],
|
|
169
|
+
): GPUBindGroupLayoutEntry[] {
|
|
170
|
+
if (materialBglEntries.length < 7) {
|
|
171
|
+
throw new Error(
|
|
172
|
+
`mergeSkylightIntoMaterialBgl: expected at least 7 material BGL entries (PBR layout), got ${materialBglEntries.length}`,
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
const merged: GPUBindGroupLayoutEntry[] = [...materialBglEntries];
|
|
176
|
+
const skylightBindingStart = materialBglEntries.length;
|
|
177
|
+
// binding 7: irradianceMap (texture_cube)
|
|
178
|
+
merged.push({
|
|
179
|
+
binding: skylightBindingStart,
|
|
180
|
+
visibility: GPU_SHADER_STAGE_FRAGMENT,
|
|
181
|
+
texture: { sampleType: 'float', viewDimension: 'cube' },
|
|
182
|
+
} as BglEntry);
|
|
183
|
+
// binding 8: irradianceSampler
|
|
184
|
+
merged.push({
|
|
185
|
+
binding: skylightBindingStart + 1,
|
|
186
|
+
visibility: GPU_SHADER_STAGE_FRAGMENT,
|
|
187
|
+
sampler: { type: 'filtering' },
|
|
188
|
+
} as BglEntry);
|
|
189
|
+
// binding 9: prefilterMap (texture_cube)
|
|
190
|
+
merged.push({
|
|
191
|
+
binding: skylightBindingStart + 2,
|
|
192
|
+
visibility: GPU_SHADER_STAGE_FRAGMENT,
|
|
193
|
+
texture: { sampleType: 'float', viewDimension: 'cube' },
|
|
194
|
+
} as BglEntry);
|
|
195
|
+
// binding 10: prefilterSampler
|
|
196
|
+
merged.push({
|
|
197
|
+
binding: skylightBindingStart + 3,
|
|
198
|
+
visibility: GPU_SHADER_STAGE_FRAGMENT,
|
|
199
|
+
sampler: { type: 'filtering' },
|
|
200
|
+
} as BglEntry);
|
|
201
|
+
// binding 11: brdfLut (texture_2d)
|
|
202
|
+
merged.push({
|
|
203
|
+
binding: skylightBindingStart + 4,
|
|
204
|
+
visibility: GPU_SHADER_STAGE_FRAGMENT,
|
|
205
|
+
texture: { sampleType: 'float', viewDimension: '2d' },
|
|
206
|
+
} as BglEntry);
|
|
207
|
+
// binding 12: brdfLutSampler
|
|
208
|
+
merged.push({
|
|
209
|
+
binding: skylightBindingStart + 5,
|
|
210
|
+
visibility: GPU_SHADER_STAGE_FRAGMENT,
|
|
211
|
+
sampler: { type: 'filtering' },
|
|
212
|
+
} as BglEntry);
|
|
213
|
+
// binding 13: uniform { intensity: f32 }
|
|
214
|
+
merged.push({
|
|
215
|
+
binding: skylightBindingStart + 6,
|
|
216
|
+
visibility: GPU_SHADER_STAGE_FRAGMENT,
|
|
217
|
+
buffer: { type: 'uniform' },
|
|
218
|
+
} as BglEntry);
|
|
219
|
+
return merged;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
// ─── Pure merger: BindGroupEntry values (assembly site) ─────────────────────
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Append the 7 Skylight BindGroupEntry resources (binding 7..13) onto the
|
|
226
|
+
* existing PBR material BindGroupEntry values (binding 0..6). The caller
|
|
227
|
+
* passes the result to `device.createBindGroup` as part of the merged
|
|
228
|
+
* material BG.
|
|
229
|
+
*
|
|
230
|
+
* The skylight argument may be the fallback identity bundle (rendered
|
|
231
|
+
* with ambient=0) or the active IblPipelineCache output bundle. Same
|
|
232
|
+
* call site, same layout shape -- charter P4 + F1 (AI users do not need
|
|
233
|
+
* a `if (hasSkylight)` branch when writing demos).
|
|
234
|
+
*/
|
|
235
|
+
export interface EmissiveAoBindGroupResources {
|
|
236
|
+
readonly emissiveSampler: Sampler;
|
|
237
|
+
readonly emissiveView: TextureView;
|
|
238
|
+
readonly occlusionSampler: Sampler;
|
|
239
|
+
readonly occlusionView: TextureView;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
// Lightmap (emissive + occlusion sampler/texture pair x 2) injection start
|
|
243
|
+
// is computed from the assembled list length on each push — no hardcoded
|
|
244
|
+
// 14-slot literal. After 7 material + 7 skylight entries are pushed below,
|
|
245
|
+
// the lightmap binding land naturally at start = 14 (D-6 / w15).
|
|
246
|
+
|
|
247
|
+
export function assembleMaterialWithSkylightEntries(
|
|
248
|
+
materialEntries: readonly BindGroupEntry[],
|
|
249
|
+
skylight: SkylightBindGroupResources,
|
|
250
|
+
emissiveAo?: EmissiveAoBindGroupResources | undefined,
|
|
251
|
+
): BindGroupEntry[] {
|
|
252
|
+
// IBL injection start = end of the user-region. The user-region IS
|
|
253
|
+
// `materialEntries` (UBO binding 0 + N sampler/texture pairs), so its length
|
|
254
|
+
// is the injection start — was a hardcoded 7, now per-shader (a 4-texture
|
|
255
|
+
// parallax material's user-region is 9 entries, so IBL lands at 9). This
|
|
256
|
+
// mirrors the BGL-side `appendInjection(userRegion, 'ibl')` (D-1 / D-8),
|
|
257
|
+
// which likewise reads `bgl.length`.
|
|
258
|
+
const iblStart = materialEntries.length;
|
|
259
|
+
const result: BindGroupEntry[] = [
|
|
260
|
+
...materialEntries,
|
|
261
|
+
{
|
|
262
|
+
binding: iblStart,
|
|
263
|
+
resource: { kind: 'textureView', value: skylight.irradianceView },
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
binding: iblStart + 1,
|
|
267
|
+
resource: { kind: 'sampler', value: skylight.irradianceSampler },
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
binding: iblStart + 2,
|
|
271
|
+
resource: { kind: 'textureView', value: skylight.prefilterView },
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
binding: iblStart + 3,
|
|
275
|
+
resource: { kind: 'sampler', value: skylight.prefilterSampler },
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
binding: iblStart + 4,
|
|
279
|
+
resource: { kind: 'textureView', value: skylight.brdfLutView },
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
binding: iblStart + 5,
|
|
283
|
+
resource: { kind: 'sampler', value: skylight.brdfLutSampler },
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
binding: iblStart + 6,
|
|
287
|
+
resource: { kind: 'buffer', value: { buffer: skylight.intensityBuffer } },
|
|
288
|
+
},
|
|
289
|
+
];
|
|
290
|
+
if (emissiveAo !== undefined) {
|
|
291
|
+
// Lightmap injection start = current accumulated length
|
|
292
|
+
// (post material + skylight). Mirrors the appendInjection contract
|
|
293
|
+
// in pbr-pipeline.ts (D-6).
|
|
294
|
+
const lightmapStart = result.length;
|
|
295
|
+
result.push(
|
|
296
|
+
{
|
|
297
|
+
binding: lightmapStart,
|
|
298
|
+
resource: { kind: 'sampler', value: emissiveAo.emissiveSampler },
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
binding: lightmapStart + 1,
|
|
302
|
+
resource: { kind: 'textureView', value: emissiveAo.emissiveView },
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
binding: lightmapStart + 2,
|
|
306
|
+
resource: { kind: 'sampler', value: emissiveAo.occlusionSampler },
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
binding: lightmapStart + 3,
|
|
310
|
+
resource: { kind: 'textureView', value: emissiveAo.occlusionView },
|
|
311
|
+
},
|
|
312
|
+
);
|
|
313
|
+
}
|
|
314
|
+
return result;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
// ─── Fallback constructor (createRenderer wires this into pipelineState) ────
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Allocate the fallback Skylight resource bundle: 1x1 WHITE rgba16float
|
|
321
|
+
* irradiance/prefilter texture_cube pair + 1x1 rg16float BRDF approximation
|
|
322
|
+
* `[1, 0]` + a 16-byte uniform buffer + a single
|
|
323
|
+
* linear / clamp-to-edge sampler reused across all three texture slots.
|
|
324
|
+
*
|
|
325
|
+
* Two regimes share this bundle (the per-frame Skylight uniform selects):
|
|
326
|
+
* - No Skylight entity: render-system-record writes intensity=0, so
|
|
327
|
+
* ambient = whiteIrradiance * kD * albedo * color * 0 == 0
|
|
328
|
+
* -- physically black, no `if (hasSkylight)` shader branch (D-5 round-4).
|
|
329
|
+
* - Skylight with NO cubemap (downstream integration #4): record writes the
|
|
330
|
+
* user's intensity + color, so the WHITE irradiance gives an instant
|
|
331
|
+
* solid-color ambient and a neutral white specular reflection with no
|
|
332
|
+
* async precompute. The 1x1 BRDF approximation is intentionally roughness
|
|
333
|
+
* independent; a real cubemap swaps in the prefiltered IBL views and LUT.
|
|
334
|
+
*
|
|
335
|
+
* No stand-alone BindGroupLayout / BindGroup is created here -- those
|
|
336
|
+
* roles moved into the PBR material BGL factory (D-5 round-4). The
|
|
337
|
+
* caller (createRenderer) feeds the resource handles below through
|
|
338
|
+
* `assembleMaterialWithSkylightEntries` when composing the per-frame
|
|
339
|
+
* material BindGroup.
|
|
340
|
+
*/
|
|
341
|
+
export function createSkylightFallback(
|
|
342
|
+
device: SkylightDevice,
|
|
343
|
+
queue: SkylightQueue,
|
|
344
|
+
): SkylightFallback {
|
|
345
|
+
// One sampler shared across the three texture slots. The PBR material
|
|
346
|
+
// BindGroup still declares 3 separate sampler bindings (D-5 round-4
|
|
347
|
+
// ordering at binding 8/10/12), so we pass the same handle three times
|
|
348
|
+
// in assembleMaterialWithSkylightEntries; WebGPU spec permits sampler
|
|
349
|
+
// reuse across BindGroupEntry slots.
|
|
350
|
+
const samplerResult = device.createSampler({
|
|
351
|
+
label: 'skylight-fallback-sampler',
|
|
352
|
+
magFilter: 'linear',
|
|
353
|
+
minFilter: 'linear',
|
|
354
|
+
mipmapFilter: 'linear',
|
|
355
|
+
addressModeU: 'clamp-to-edge',
|
|
356
|
+
addressModeV: 'clamp-to-edge',
|
|
357
|
+
addressModeW: 'clamp-to-edge',
|
|
358
|
+
});
|
|
359
|
+
if (!samplerResult.ok) throw samplerResult.error;
|
|
360
|
+
const sampler = samplerResult.value;
|
|
361
|
+
|
|
362
|
+
// 1x1 all-zero rgba16float cube (irradiance fallback). depthOrArrayLayers=6
|
|
363
|
+
// gives the texture cube semantics (D-5 fallback shape; testable via
|
|
364
|
+
// createTexture descriptor capture in unit tests).
|
|
365
|
+
const irradianceTexResult = device.createTexture({
|
|
366
|
+
label: 'skylight-fallback-irradiance-cube',
|
|
367
|
+
size: { width: 1, height: 1, depthOrArrayLayers: 6 },
|
|
368
|
+
mipLevelCount: 1,
|
|
369
|
+
sampleCount: 1,
|
|
370
|
+
dimension: '2d',
|
|
371
|
+
format: 'rgba16float',
|
|
372
|
+
usage: GPU_TEXTURE_USAGE_TEXTURE_BINDING | GPU_TEXTURE_USAGE_COPY_DST,
|
|
373
|
+
viewFormats: [],
|
|
374
|
+
textureBindingViewDimension: 'cube',
|
|
375
|
+
});
|
|
376
|
+
if (!irradianceTexResult.ok) throw irradianceTexResult.error;
|
|
377
|
+
const irradianceTexture = irradianceTexResult.value;
|
|
378
|
+
|
|
379
|
+
// 1x1 white rgba16float cube (prefilter fallback). A Skylight without an
|
|
380
|
+
// equirect is still a white environment, so its specular input must not be
|
|
381
|
+
// black just because the full prefilter bake is unavailable.
|
|
382
|
+
const prefilterTexResult = device.createTexture({
|
|
383
|
+
label: 'skylight-fallback-prefilter-cube',
|
|
384
|
+
size: { width: 1, height: 1, depthOrArrayLayers: 6 },
|
|
385
|
+
mipLevelCount: 1,
|
|
386
|
+
sampleCount: 1,
|
|
387
|
+
dimension: '2d',
|
|
388
|
+
format: 'rgba16float',
|
|
389
|
+
usage: GPU_TEXTURE_USAGE_TEXTURE_BINDING | GPU_TEXTURE_USAGE_COPY_DST,
|
|
390
|
+
viewFormats: [],
|
|
391
|
+
textureBindingViewDimension: 'cube',
|
|
392
|
+
});
|
|
393
|
+
if (!prefilterTexResult.ok) throw prefilterTexResult.error;
|
|
394
|
+
const prefilterTexture = prefilterTexResult.value;
|
|
395
|
+
|
|
396
|
+
// 1x1 rg16float BRDF approximation (A=1, B=0). This keeps the split-sum
|
|
397
|
+
// specular response non-zero for the white-environment fallback; a real IBL
|
|
398
|
+
// bake replaces it with the roughness/NdotV-dependent LUT.
|
|
399
|
+
const brdfLutTexResult = device.createTexture({
|
|
400
|
+
label: 'skylight-fallback-brdf-lut',
|
|
401
|
+
size: { width: 1, height: 1, depthOrArrayLayers: 1 },
|
|
402
|
+
mipLevelCount: 1,
|
|
403
|
+
sampleCount: 1,
|
|
404
|
+
dimension: '2d',
|
|
405
|
+
format: 'rg16float',
|
|
406
|
+
usage: GPU_TEXTURE_USAGE_TEXTURE_BINDING | GPU_TEXTURE_USAGE_COPY_DST,
|
|
407
|
+
viewFormats: [],
|
|
408
|
+
textureBindingViewDimension: undefined,
|
|
409
|
+
});
|
|
410
|
+
if (!brdfLutTexResult.ok) throw brdfLutTexResult.error;
|
|
411
|
+
const brdfLutTexture = brdfLutTexResult.value;
|
|
412
|
+
|
|
413
|
+
// 1x1 rgba16float = 8 bytes per pixel; 1x1 rg16float = 4 bytes per pixel.
|
|
414
|
+
// The shim requires bytesPerRow % 256 === 0, so we pad each row to 256 bytes
|
|
415
|
+
// (matches the fallback-white pattern in createRenderer.ts). Destination
|
|
416
|
+
// stays 1x1; only the row stride is padded.
|
|
417
|
+
//
|
|
418
|
+
// A Skylight with no cubemap represents a flat white environment. Both
|
|
419
|
+
// irradiance and prefilter are therefore white (half-float 1.0 = 0x3c00),
|
|
420
|
+
// while the BRDF fallback approximates `A=1, B=0`. Crucially this does NOT
|
|
421
|
+
// light scenes that lack a Skylight: the per-frame Skylight uniform writes
|
|
422
|
+
// intensity 0 when no Skylight entity exists (render-system-record).
|
|
423
|
+
const whitePixel = new Uint8Array(FALLBACK_BYTES_PER_ROW);
|
|
424
|
+
{
|
|
425
|
+
const dv = new DataView(whitePixel.buffer);
|
|
426
|
+
// RGBA half-float 1.0 = 0x3c00 (little-endian) at byte offsets 0,2,4,6.
|
|
427
|
+
dv.setUint16(0, 0x3c00, true);
|
|
428
|
+
dv.setUint16(2, 0x3c00, true);
|
|
429
|
+
dv.setUint16(4, 0x3c00, true);
|
|
430
|
+
dv.setUint16(6, 0x3c00, true);
|
|
431
|
+
}
|
|
432
|
+
const brdfApproxPixel = new Uint8Array(FALLBACK_BYTES_PER_ROW);
|
|
433
|
+
new DataView(brdfApproxPixel.buffer).setUint16(0, 0x3c00, true);
|
|
434
|
+
for (const face of [0, 1, 2, 3, 4, 5]) {
|
|
435
|
+
queue.writeTexture(
|
|
436
|
+
{
|
|
437
|
+
texture: irradianceTexture,
|
|
438
|
+
mipLevel: 0,
|
|
439
|
+
origin: { x: 0, y: 0, z: face },
|
|
440
|
+
},
|
|
441
|
+
whitePixel,
|
|
442
|
+
{ offset: 0, bytesPerRow: FALLBACK_BYTES_PER_ROW, rowsPerImage: 1 },
|
|
443
|
+
{ width: 1, height: 1, depthOrArrayLayers: 1 },
|
|
444
|
+
);
|
|
445
|
+
queue.writeTexture(
|
|
446
|
+
{
|
|
447
|
+
texture: prefilterTexture,
|
|
448
|
+
mipLevel: 0,
|
|
449
|
+
origin: { x: 0, y: 0, z: face },
|
|
450
|
+
},
|
|
451
|
+
whitePixel,
|
|
452
|
+
{ offset: 0, bytesPerRow: FALLBACK_BYTES_PER_ROW, rowsPerImage: 1 },
|
|
453
|
+
{ width: 1, height: 1, depthOrArrayLayers: 1 },
|
|
454
|
+
);
|
|
455
|
+
}
|
|
456
|
+
queue.writeTexture(
|
|
457
|
+
{
|
|
458
|
+
texture: brdfLutTexture,
|
|
459
|
+
mipLevel: 0,
|
|
460
|
+
origin: { x: 0, y: 0, z: 0 },
|
|
461
|
+
},
|
|
462
|
+
brdfApproxPixel,
|
|
463
|
+
{ offset: 0, bytesPerRow: FALLBACK_BYTES_PER_ROW, rowsPerImage: 1 },
|
|
464
|
+
{ width: 1, height: 1, depthOrArrayLayers: 1 },
|
|
465
|
+
);
|
|
466
|
+
|
|
467
|
+
// Cube views over the depthOrArrayLayers=6 textures so the @group(1)
|
|
468
|
+
// @binding(7,9) texture_cube bindings can sample them.
|
|
469
|
+
const irradianceViewResult = device.createTextureView(irradianceTexture, {
|
|
470
|
+
label: 'skylight-fallback-irradiance-cube-view',
|
|
471
|
+
dimension: 'cube',
|
|
472
|
+
arrayLayerCount: 6,
|
|
473
|
+
});
|
|
474
|
+
if (!irradianceViewResult.ok) throw irradianceViewResult.error;
|
|
475
|
+
const irradianceView = irradianceViewResult.value;
|
|
476
|
+
|
|
477
|
+
const prefilterViewResult = device.createTextureView(prefilterTexture, {
|
|
478
|
+
label: 'skylight-fallback-prefilter-cube-view',
|
|
479
|
+
dimension: 'cube',
|
|
480
|
+
arrayLayerCount: 6,
|
|
481
|
+
});
|
|
482
|
+
if (!prefilterViewResult.ok) throw prefilterViewResult.error;
|
|
483
|
+
const prefilterView = prefilterViewResult.value;
|
|
484
|
+
|
|
485
|
+
const brdfLutViewResult = device.createTextureView(brdfLutTexture, {
|
|
486
|
+
label: 'skylight-fallback-brdf-lut-view',
|
|
487
|
+
dimension: '2d',
|
|
488
|
+
});
|
|
489
|
+
if (!brdfLutViewResult.ok) throw brdfLutViewResult.error;
|
|
490
|
+
const brdfLutView = brdfLutViewResult.value;
|
|
491
|
+
|
|
492
|
+
// intensity=0 uniform. The WGSL struct is two vec4-aligned lanes:
|
|
493
|
+
// [intensity, colorR, colorG, colorB] + [rotation quaternion].
|
|
494
|
+
const intensityBufResult = device.createBuffer({
|
|
495
|
+
label: 'skylight-fallback-intensity',
|
|
496
|
+
size: 32,
|
|
497
|
+
usage: GPU_BUFFER_USAGE_UNIFORM | GPU_BUFFER_USAGE_COPY_DST,
|
|
498
|
+
});
|
|
499
|
+
if (!intensityBufResult.ok) throw intensityBufResult.error;
|
|
500
|
+
const intensityBuffer = intensityBufResult.value;
|
|
501
|
+
queue.writeBuffer(intensityBuffer, 0, new Float32Array([0, 0, 0, 0, 0, 0, 0, 1]));
|
|
502
|
+
|
|
503
|
+
return {
|
|
504
|
+
irradianceTexture,
|
|
505
|
+
irradianceView,
|
|
506
|
+
prefilterTexture,
|
|
507
|
+
prefilterView,
|
|
508
|
+
brdfLutTexture,
|
|
509
|
+
brdfLutView,
|
|
510
|
+
sampler,
|
|
511
|
+
intensityBuffer,
|
|
512
|
+
};
|
|
513
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
// @forgeax/engine-render — AI-facing render vocabulary.
|
|
2
|
+
//
|
|
3
|
+
// The root is deliberately small: ECS render components, grouped closed
|
|
4
|
+
// values, the renderer lifecycle/receipt contract, and the declarative
|
|
5
|
+
// RenderFeature plan. Graph builders, prepared GPU state, pipeline
|
|
6
|
+
// implementations, builtin feature factories, and diagnostic class names are
|
|
7
|
+
// owner-local implementation details.
|
|
8
|
+
|
|
9
|
+
export {
|
|
10
|
+
materialContribution,
|
|
11
|
+
renderPipelineContribution,
|
|
12
|
+
samplerContribution,
|
|
13
|
+
} from './assets/asset-decoders';
|
|
14
|
+
|
|
15
|
+
// ECS render vocabulary and grouped closed values.
|
|
16
|
+
export type { Antialias, BloomEnabled, CameraProjection, Tonemap } from './components/camera';
|
|
17
|
+
export {
|
|
18
|
+
ANTIALIAS_FXAA,
|
|
19
|
+
ANTIALIAS_MSAA,
|
|
20
|
+
ANTIALIAS_NONE,
|
|
21
|
+
BLOOM_DISABLED,
|
|
22
|
+
BLOOM_ENABLED,
|
|
23
|
+
CAMERA_PROJECTION_ORTHOGRAPHIC,
|
|
24
|
+
CAMERA_PROJECTION_PERSPECTIVE,
|
|
25
|
+
Camera,
|
|
26
|
+
cameraProjectionFromF32,
|
|
27
|
+
orthographic,
|
|
28
|
+
perspective,
|
|
29
|
+
TONEMAP_ACES_FILMIC,
|
|
30
|
+
TONEMAP_AGX,
|
|
31
|
+
TONEMAP_CINEON,
|
|
32
|
+
TONEMAP_LINEAR,
|
|
33
|
+
TONEMAP_NEUTRAL,
|
|
34
|
+
TONEMAP_NONE,
|
|
35
|
+
TONEMAP_REINHARD,
|
|
36
|
+
TONEMAP_REINHARD_EXTENDED,
|
|
37
|
+
} from './components/camera';
|
|
38
|
+
export * from './components/directional-light';
|
|
39
|
+
export { Instances, type InstancesData } from './components/instances';
|
|
40
|
+
export { Layer } from './components/layer';
|
|
41
|
+
export { Lines } from './components/lines';
|
|
42
|
+
export * from './components/mesh-filter';
|
|
43
|
+
export * from './components/mesh-renderer';
|
|
44
|
+
export { PointLight } from './components/point-light';
|
|
45
|
+
export { PointLightShadow } from './components/point-light-shadow';
|
|
46
|
+
export {
|
|
47
|
+
type PointShape,
|
|
48
|
+
PointShapeValue,
|
|
49
|
+
Points,
|
|
50
|
+
pointShapeFromU32,
|
|
51
|
+
} from './components/points';
|
|
52
|
+
export { PostProcessParams } from './components/post-process-params';
|
|
53
|
+
export { SceneInstance } from './components/scene-instance';
|
|
54
|
+
export {
|
|
55
|
+
SKYBOX_MODE_CUBEMAP,
|
|
56
|
+
SkyboxBackground,
|
|
57
|
+
type SkyboxMode,
|
|
58
|
+
} from './components/skybox-background';
|
|
59
|
+
export { Skylight } from './components/skylight';
|
|
60
|
+
export { SortKey } from './components/sort-key';
|
|
61
|
+
export { SpotLight } from './components/spot-light';
|
|
62
|
+
export {
|
|
63
|
+
Visibility,
|
|
64
|
+
type VisibilityState,
|
|
65
|
+
VisibilityStateValue,
|
|
66
|
+
visibilityStateFromU32,
|
|
67
|
+
} from './components/visibility';
|
|
68
|
+
// Public structured operation failure union. Concrete error classes stay
|
|
69
|
+
// behind the Renderer Result/event boundary.
|
|
70
|
+
export type { RenderError, RenderErrorCode } from './errors/render';
|
|
71
|
+
export {
|
|
72
|
+
resolveVisibility,
|
|
73
|
+
type VisibilityResolution,
|
|
74
|
+
type VisibilitySnapshot,
|
|
75
|
+
} from './extract/visibility';
|
|
76
|
+
export type {
|
|
77
|
+
RenderFeatureLogicalTarget,
|
|
78
|
+
RenderFeaturePassDeclaration,
|
|
79
|
+
RenderFeaturePlan,
|
|
80
|
+
RenderFeaturePlanContext,
|
|
81
|
+
RenderFeatureResourceDeclaration,
|
|
82
|
+
} from './features/plan';
|
|
83
|
+
// Minimal declarative extension contract. Implementations use relative
|
|
84
|
+
// imports; the root does not expose prepared state, graph projectors, target
|
|
85
|
+
// handles, or builtin feature factories.
|
|
86
|
+
export type {
|
|
87
|
+
RenderFeature,
|
|
88
|
+
RenderFeatureCapabilityKey,
|
|
89
|
+
RenderFeatureDiagnostics,
|
|
90
|
+
RenderFeatureErrorDescriptor,
|
|
91
|
+
RenderFeatureExtractContext,
|
|
92
|
+
RenderFeatureHiddenEntityReport,
|
|
93
|
+
RenderFeatureStatus,
|
|
94
|
+
RenderFeatureWorldVisibilitySnapshot,
|
|
95
|
+
} from './features/types';
|
|
96
|
+
export { Materials } from './materials';
|
|
97
|
+
// The host-facing default is a stable profile value; implementation-only
|
|
98
|
+
// pipeline helpers remain behind the package boundary.
|
|
99
|
+
export { DEFAULT_STANDARD_PROFILE } from './pipeline/standard-profile';
|
|
100
|
+
export { renderComponentsPlugin } from './plugin';
|
|
101
|
+
export {
|
|
102
|
+
admitPointsLines,
|
|
103
|
+
type LinesStyleInput,
|
|
104
|
+
type PointsLinesAdmission,
|
|
105
|
+
type PointsLinesAdmissionError,
|
|
106
|
+
type PointsLinesAdmissionInput,
|
|
107
|
+
type PointsLinesAdmissionLimits,
|
|
108
|
+
type PointsStyleInput,
|
|
109
|
+
} from './points-lines/admission';
|
|
110
|
+
export type { PointsLinesInspection } from './points-lines/inspection';
|
|
111
|
+
// Runtime contract: leases, frame receipts, detached inspection, profile,
|
|
112
|
+
// lifecycle state, and the single renderer event stream.
|
|
113
|
+
export type {
|
|
114
|
+
FrameCamera,
|
|
115
|
+
FrameEnvironment,
|
|
116
|
+
FrameObservationRequest,
|
|
117
|
+
FrameReceipt,
|
|
118
|
+
FrameReceiptObservation,
|
|
119
|
+
Renderer,
|
|
120
|
+
RendererEvent,
|
|
121
|
+
RendererOptions,
|
|
122
|
+
RendererState,
|
|
123
|
+
RenderFrameInput,
|
|
124
|
+
RenderInspection,
|
|
125
|
+
RenderProfile,
|
|
126
|
+
RenderResult,
|
|
127
|
+
RenderWorldLease,
|
|
128
|
+
} from './render-contract';
|
|
129
|
+
export { RENDER_PHASE_CATALOG } from './render-contract';
|