@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,105 @@
|
|
|
1
|
+
// @forgeax/engine-runtime - SpriteRegionOverride (per-entity UV region
|
|
2
|
+
// override, sprite-only).
|
|
3
|
+
//
|
|
4
|
+
// Schema: 1 fixed-length array column `region: 'array<f32, 4>'` carrying a
|
|
5
|
+
// packed UV sub-rectangle `[uMin, vMin, uW, vH]`. The fixed `4` length is
|
|
6
|
+
// enforced at compile time by the ECS schema-vocab keyword
|
|
7
|
+
// `'array<T, N>'` (D-6: prefer compile-time enforcement over runtime
|
|
8
|
+
// fail-fast for length-bound contracts).
|
|
9
|
+
//
|
|
10
|
+
// Why an entity-side override component instead of a render parameter on
|
|
11
|
+
// MaterialRenderer? Plan-strategy section 1 / requirements section 5
|
|
12
|
+
// constraint #1 (Pipeline Isolation R1, M1 ssot): `AssetRegistry` stays
|
|
13
|
+
// append-only / read-only and `MaterialRenderer` schema is frozen.
|
|
14
|
+
// Per-entity render-parameter overrides ride the same rail as Layer /
|
|
15
|
+
// SortKey — one ECS column per entity, read at extract time, never
|
|
16
|
+
// flowing back to the asset.
|
|
17
|
+
//
|
|
18
|
+
// Sprite-only consumption (requirements section 5 constraint #2 + section
|
|
19
|
+
// 7 boundary line 1): `render-system-extract` reads this component ONLY
|
|
20
|
+
// inside the sprite bucket branch (`pipelineTag === 'sprite'` plus the
|
|
21
|
+
// asset-side sprite discriminant). Opaque (`unlit` / `standard`) buckets
|
|
22
|
+
// ignore the column even when the entity happens to carry it; the M3
|
|
23
|
+
// T-15 grep gate
|
|
24
|
+
// (`packages/runtime/src/__tests__/sprite-only-isolation-grep-gate.test.ts`)
|
|
25
|
+
// asserts this file contains zero substring matches against the asset
|
|
26
|
+
// discriminant identifier as a structural lock (charter P5 producer /
|
|
27
|
+
// consumer separation: the component owner never names the asset
|
|
28
|
+
// discriminant directly).
|
|
29
|
+
//
|
|
30
|
+
// Naming: bare `SpriteRegionOverride` (no `Component` suffix per
|
|
31
|
+
// AGENTS.md section Component naming "Single-semantic components drop
|
|
32
|
+
// the Component suffix"). The `Sprite` prefix is intentional — 3D UV
|
|
33
|
+
// region animation lands in a separate component (e.g. future
|
|
34
|
+
// `MaterialRegionOverride`) per OOS-01 to avoid premature 3D
|
|
35
|
+
// generalisation. Plan-strategy section 8 naming convention pins the
|
|
36
|
+
// prefix to make the AC-11 grep gate trivially decidable.
|
|
37
|
+
//
|
|
38
|
+
// @derives `defineComponent` factory (packages/ecs/src/component.ts) —
|
|
39
|
+
// `'array<f32, 4>'` is on the `SchemaVocabKeyword` whitelist (line ~94
|
|
40
|
+
// `array<${ManagedArrayElementType}, ${number}>`).
|
|
41
|
+
// @consumes M3 T-16 (`render-system-extract.ts` sprite bucket branch
|
|
42
|
+
// reads override into `paramSnapshot.region`, post-M3 feat-20260625
|
|
43
|
+
// ablation -- the pre-ablation per-entity hop through the snapshot
|
|
44
|
+
// POD layer collapsed into the generic paramSchema-driven path).
|
|
45
|
+
// @produces M4 T-23 (`spriteAnimationTickSystem` writes per-frame UV
|
|
46
|
+
// slice into `region`).
|
|
47
|
+
//
|
|
48
|
+
// charter mapping: F1 (single-import barrel discovery — joins Layer /
|
|
49
|
+
// SortKey / Transform / SpriteAnimation under a single
|
|
50
|
+
// `from '@forgeax/engine-render'`); P3 (compile-time length=4 lock
|
|
51
|
+
// surfaces mismatched payloads at the TS edge before the column write
|
|
52
|
+
// path observes them); P4 (consistent abstraction — same per-entity
|
|
53
|
+
// override shape AI users already learned for Layer / SortKey).
|
|
54
|
+
//
|
|
55
|
+
// Anchors: plan-strategy section 2 D-6 + section 3.1 SRO + section 4
|
|
56
|
+
// risk R-SCHEMA-2 reaction; plan-tasks.json T-11; research F-5;
|
|
57
|
+
// requirements section AC-01 + section 2.4 + section 5 constraint #2.
|
|
58
|
+
|
|
59
|
+
import { defineComponent } from '@forgeax/engine-ecs';
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Per-entity sprite UV region override (sprite-only).
|
|
63
|
+
*
|
|
64
|
+
* Carries a fixed-length `Float32Array(4)` of `[uMin, vMin, uW, vH]` that
|
|
65
|
+
* `render-system-extract` reads in the sprite bucket branch and writes
|
|
66
|
+
* into `paramSnapshot.region`, replacing the asset-side region for
|
|
67
|
+
* this entity only (feat-20260625 M3 ablation: the prior per-entity POD
|
|
68
|
+
* indirection collapsed into the generic paramSchema-driven snapshot).
|
|
69
|
+
* Opaque buckets ignore this component; the AC-11 grep gate keeps the
|
|
70
|
+
* producer / consumer separation structural (this file never names the
|
|
71
|
+
* asset-side sprite discriminant identifier).
|
|
72
|
+
*
|
|
73
|
+
* Pair with `SpriteAnimation` to drive the override per frame
|
|
74
|
+
* (sprite-animation-tick system, M4 T-23). Standalone use (manual region
|
|
75
|
+
* override without animation) is also supported — set the column once and
|
|
76
|
+
* the next extract picks up the new value.
|
|
77
|
+
*
|
|
78
|
+
* Schema-vocab keyword `'array<f32, 4>'` (D-6) — fixed-length 4 is the
|
|
79
|
+
* compile-time enforcement axis. `Float32Array` payloads with length !== 4
|
|
80
|
+
* round-trip fewer / more bytes per the underlying BufferPool slot, but
|
|
81
|
+
* the slot is sized at schema registration time; AI users keep the
|
|
82
|
+
* payload exactly four-floats wide.
|
|
83
|
+
*
|
|
84
|
+
* @example Spawn a sprite entity that displays the right half of an atlas:
|
|
85
|
+
* import { MeshFilter, MeshRenderer } from '@forgeax/engine-render';
|
|
86
|
+
* import { SpriteRegionOverride } from '@forgeax/engine-render/authoring';
|
|
87
|
+
* import { Transform } from '@forgeax/engine-scene';
|
|
88
|
+
* import { HANDLE_QUAD } from '@forgeax/engine-assets-runtime';
|
|
89
|
+
*
|
|
90
|
+
* world.spawn(
|
|
91
|
+
* { component: Transform, data: { pos: [0, 0, 0],
|
|
92
|
+
* quat: [0, 0, 0, 1], scale: [1, 1, 1] } },
|
|
93
|
+
* { component: MeshFilter, data: { assetHandle: HANDLE_QUAD } },
|
|
94
|
+
* { component: MeshRenderer, data: { materials: [spriteMaterial] } },
|
|
95
|
+
* { component: SpriteRegionOverride,
|
|
96
|
+
* data: { region: new Float32Array([0.5, 0, 0.5, 1]) } },
|
|
97
|
+
* );
|
|
98
|
+
*
|
|
99
|
+
* @example Update the override at runtime (e.g. flip-frame test):
|
|
100
|
+
* world.set(entity, SpriteRegionOverride,
|
|
101
|
+
* { region: new Float32Array([0, 0, 1, 1]) }).unwrap();
|
|
102
|
+
*/
|
|
103
|
+
export const SpriteRegionOverride = defineComponent('SpriteRegionOverride', {
|
|
104
|
+
region: { type: 'array<f32, 4>' },
|
|
105
|
+
});
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
// @forgeax/engine-runtime - TileLayer (one render layer of a Tilemap).
|
|
2
|
+
//
|
|
3
|
+
// Schema (4 fields):
|
|
4
|
+
// tiles array<u32> per-cell tile id (packed Tiled .tmj wire form);
|
|
5
|
+
// length == parent.Tilemap.cols * rows.
|
|
6
|
+
// layerOrder i32 render-order key (higher = drawn on top).
|
|
7
|
+
// dirty u8 0 means clean, non-zero means dirty - the next
|
|
8
|
+
// tilemap-chunk-extract-system pass rebuilds derived
|
|
9
|
+
// per-cell entities for this layer.
|
|
10
|
+
// sortScope u8 (TS: 0 = 'layer' (default) - terrain semantics:
|
|
11
|
+
// closed every derived entity in this
|
|
12
|
+
// 'layer' | layer shares one Layer.value
|
|
13
|
+
// 'per-cell' (layerOrder << 20), so the
|
|
14
|
+
// union) whole layer Y-sorts as a single
|
|
15
|
+
// bucket. AI users grep
|
|
16
|
+
// `sortScope: 'layer'` to confirm.
|
|
17
|
+
// 1 = 'per-cell' - object semantics: each derived
|
|
18
|
+
// entity carries its own foot-Y
|
|
19
|
+
// key; preserves per-cell entity
|
|
20
|
+
// derivation for Y-interleave
|
|
21
|
+
// with sprite entities sharing
|
|
22
|
+
// the same Layer.value.
|
|
23
|
+
//
|
|
24
|
+
// Storage rationale (D-V-3 R-NEW-1 fallback / round-2): ECS schema does not
|
|
25
|
+
// yet support `values: ['layer', 'per-cell']` literal-union constraints
|
|
26
|
+
// on a `'string'` column, so the on-disk shape is `u8` (0/1) but every
|
|
27
|
+
// AI-facing TS surface (`TileLayerData.sortScope`) is the closed
|
|
28
|
+
// `'layer' | 'per-cell'` string union. The bridge functions
|
|
29
|
+
// `encodeSortScope` / `decodeSortScope` are the SSOT for the two-way
|
|
30
|
+
// mapping (charter F1 — single grep target).
|
|
31
|
+
//
|
|
32
|
+
// Each TileLayer entity attaches to a Tilemap entity via ChildOf (the parent
|
|
33
|
+
// field carries the Tilemap entity). M0 supports multiple TileLayer entities
|
|
34
|
+
// per Tilemap (each rendered as an independent z-ordered layer).
|
|
35
|
+
//
|
|
36
|
+
// charter mapping: F1 (single-import barrel + single grep target for
|
|
37
|
+
// `sortScope`), P1 (progressive disclosure — `'layer'` / `'per-cell'`
|
|
38
|
+
// reads directly without a magic-number table), P3 (dirty flag is
|
|
39
|
+
// explicit - silent re-extraction is forbidden), P4 (handle-free row
|
|
40
|
+
// schema mirrors MeshFilter / MeshRenderer conventions).
|
|
41
|
+
|
|
42
|
+
import { defineComponent, type EcsError, type EntityHandle, type World } from '@forgeax/engine-ecs';
|
|
43
|
+
import type { Result } from '@forgeax/engine-types';
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Closed string-literal union for the TileLayer.sortScope field. AI users
|
|
47
|
+
* grep `sortScope` and land on this single SSOT type alias; switch
|
|
48
|
+
* statements over this type are exhaustive without a default arm.
|
|
49
|
+
*
|
|
50
|
+
* - 'layer' - terrain semantics; whole layer shares one Layer.value
|
|
51
|
+
* bucket and Y-sorts together (chunkIndex is folded into 0).
|
|
52
|
+
* - 'per-cell' - object semantics; each derived entity gets its own
|
|
53
|
+
* chunkIndex tiebreak so it can Y-interleave with
|
|
54
|
+
* sprite entities carrying the same Layer.value (e.g. a
|
|
55
|
+
* player sprite riding the same SPRITE_LAYER_VALUE).
|
|
56
|
+
*/
|
|
57
|
+
export type SortScope = 'layer' | 'per-cell';
|
|
58
|
+
|
|
59
|
+
/** Compact authoring values for the stored u8 sort-scope field. */
|
|
60
|
+
export const TilemapSort = Object.freeze({
|
|
61
|
+
layer: 0 as const,
|
|
62
|
+
perCell: 1 as const,
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Bridge: `SortScope` -> on-disk u8. SSOT for the encoding (`'layer'` -> 0,
|
|
67
|
+
* `'per-cell'` -> 1). The compile-time exhaustive switch guards against
|
|
68
|
+
* silent drift if the union ever grows; adding a new literal here without
|
|
69
|
+
* adding its arm fails typecheck (charter P3 — closed unions never default).
|
|
70
|
+
*/
|
|
71
|
+
export function encodeSortScope(scope: SortScope): 0 | 1 {
|
|
72
|
+
switch (scope) {
|
|
73
|
+
case 'layer':
|
|
74
|
+
return TilemapSort.layer;
|
|
75
|
+
case 'per-cell':
|
|
76
|
+
return TilemapSort.perCell;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Bridge: on-disk u8 -> `SortScope`. Defaults to `'layer'` for any value
|
|
82
|
+
* outside `{0, 1}` (defensive — the column is typed `u8` so out-of-range
|
|
83
|
+
* values can only appear if a future schema migration loosens the bound;
|
|
84
|
+
* the default preserves terrain semantics which is the safer of the two).
|
|
85
|
+
*/
|
|
86
|
+
export function decodeSortScope(raw: number | undefined): SortScope {
|
|
87
|
+
return raw === 1 ? 'per-cell' : 'layer';
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Public TileLayer field shape (`world.spawn({ component: TileLayer, data:
|
|
92
|
+
* { ... } })` payload). `sortScope` is the closed string union surfaced to
|
|
93
|
+
* AI users; the runtime row encodes it as `u8` via `encodeSortScope` at
|
|
94
|
+
* spawn time so on-disk storage stays compact.
|
|
95
|
+
*
|
|
96
|
+
* Treat as the `TileLayer` data SSOT — `defineComponent` schema below
|
|
97
|
+
* mirrors it field-for-field with the bridge `sortScope: u8` in place of
|
|
98
|
+
* the union literal.
|
|
99
|
+
*/
|
|
100
|
+
export interface TileLayerData {
|
|
101
|
+
readonly tiles: Uint32Array;
|
|
102
|
+
readonly layerOrder?: number;
|
|
103
|
+
readonly dirty?: number;
|
|
104
|
+
readonly sortScope?: SortScope;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* TileLayer component (M0 baseline rebuild + round-2 sortScope rename).
|
|
109
|
+
*
|
|
110
|
+
* AI users typically spawn a TileLayer + ChildOf pair pointing at an
|
|
111
|
+
* existing Tilemap entity:
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* const tilesArray = new Uint32Array(cols * rows);
|
|
115
|
+
* tilesArray[5 * cols + 7] = 1; // tile id 1 at cell (7, 5)
|
|
116
|
+
* world.spawn(
|
|
117
|
+
* { component: TileLayer, data: { tiles: tilesArray, layerOrder: 0 } },
|
|
118
|
+
* { component: ChildOf, data: { parent: tilemapEntity } },
|
|
119
|
+
* );
|
|
120
|
+
*
|
|
121
|
+
* Object-layer variant (Y-interleave with sprite entities):
|
|
122
|
+
*
|
|
123
|
+
* > NOTE: schema storage is `u8` (ECS schema does not support
|
|
124
|
+
* > string-literal-union column constraints; see R-NEW-2). The
|
|
125
|
+
* > AI-user surface is the closed `SortScope` string union, but
|
|
126
|
+
* > `world.spawn` requires the numeric encoding — pass through
|
|
127
|
+
* > `encodeSortScope('per-cell')` rather than the literal string.
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* world.spawn(
|
|
131
|
+
* { component: TileLayer, data: {
|
|
132
|
+
* tiles: objectTiles,
|
|
133
|
+
* layerOrder: 1000,
|
|
134
|
+
* sortScope: encodeSortScope('per-cell'),
|
|
135
|
+
* } },
|
|
136
|
+
* { component: ChildOf, data: { parent: tilemapEntity } },
|
|
137
|
+
* );
|
|
138
|
+
*
|
|
139
|
+
* Defaults: `layerOrder = 0`, `dirty = 0`, `sortScope = 'layer'` (stored
|
|
140
|
+
* as `u8 = 0`, i.e. `encodeSortScope('layer')`). `tiles` has no default -
|
|
141
|
+
* AI users supply the per-cell array at spawn time. To trigger a re-build
|
|
142
|
+
* after mutating tiles in place, call `markTileLayerDirty(world, layer)`.
|
|
143
|
+
*/
|
|
144
|
+
export const TileLayer = defineComponent('TileLayer', {
|
|
145
|
+
tiles: { type: 'array<u32>' },
|
|
146
|
+
layerOrder: { type: 'i32', default: 0 },
|
|
147
|
+
dirty: { type: 'u8', default: 0 },
|
|
148
|
+
sortScope: { type: 'u8', default: 0 },
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Mark a TileLayer entity dirty so the next `tilemapChunkExtractSystem`
|
|
153
|
+
* pass purges and re-spawns its derived per-cell entities. Use this after
|
|
154
|
+
* mutating `TileLayer.tiles` (e.g. an in-place patch via a column view).
|
|
155
|
+
*
|
|
156
|
+
* Returns the underlying ECS write result - on `err` branch the caller
|
|
157
|
+
* can read `.code` to recover (`'stale-entity'` if the layer was
|
|
158
|
+
* despawned, `'component-not-present'` if the entity is missing the
|
|
159
|
+
* TileLayer column; both kebab-case literals are members of the closed
|
|
160
|
+
* `EcsErrorCode` union).
|
|
161
|
+
*/
|
|
162
|
+
export function markTileLayerDirty(
|
|
163
|
+
world: World,
|
|
164
|
+
layerEntity: EntityHandle,
|
|
165
|
+
): Result<void, EcsError> {
|
|
166
|
+
return world.set(layerEntity, TileLayer, { dirty: 1 });
|
|
167
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// @forgeax/engine-runtime - Tilemap (grid + tileset reference).
|
|
2
|
+
//
|
|
3
|
+
// Schema (5 fields):
|
|
4
|
+
// cols u32 total grid columns
|
|
5
|
+
// rows u32 total grid rows
|
|
6
|
+
// tileSize array<f32, 2> per-cell world [width, height] (default [1, 1];
|
|
7
|
+
// feat-20260709 M3: collapsed from the tileSizeX
|
|
8
|
+
// / tileSizeY scalar pair into one inline column)
|
|
9
|
+
// chunkSize u32 per-chunk axis-length in cells (default 16)
|
|
10
|
+
// tileset string durable TilesetAsset GUID
|
|
11
|
+
//
|
|
12
|
+
// Naming: single-semantic Tilemap (AGENTS.md §Component naming drops
|
|
13
|
+
// `Component` suffix). One Tilemap entity per grid; TileLayer entities
|
|
14
|
+
// attach via ChildOf relationship and supply the per-cell tile id array
|
|
15
|
+
// for a single render-layer.
|
|
16
|
+
//
|
|
17
|
+
// charter mapping: F1 (single-import barrel from `@forgeax/engine-runtime`),
|
|
18
|
+
// P1 (progressive disclosure - defaults cover the common case), P4 (durable
|
|
19
|
+
// asset identity stays separate from World-local handles).
|
|
20
|
+
|
|
21
|
+
import { defineComponent } from '@forgeax/engine-ecs';
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Tilemap component (M0 baseline rebuild).
|
|
25
|
+
*
|
|
26
|
+
* A Tilemap entity carries grid metadata + a single durable `tileset` GUID. The
|
|
27
|
+
* actual per-cell tile id array lives on attached `TileLayer` entities
|
|
28
|
+
* (one per render layer; ChildOf points back to the Tilemap entity).
|
|
29
|
+
*
|
|
30
|
+
* Defaults:
|
|
31
|
+
* - `tileSize = [1, 1]` (unit-cell world coordinates).
|
|
32
|
+
* - `chunkSize = 16` (tilemap-chunk-extract-system chunks 16x16 cells).
|
|
33
|
+
*
|
|
34
|
+
* @example Spawn a 32x32 unit-cell Tilemap referencing a TilesetAsset:
|
|
35
|
+
* const tilemap = world.spawn(
|
|
36
|
+
* { component: Tilemap, data: { cols: 32, rows: 32, tileset } },
|
|
37
|
+
* { component: Transform, data: {} },
|
|
38
|
+
* ).unwrap();
|
|
39
|
+
*/
|
|
40
|
+
export const Tilemap = defineComponent('Tilemap', {
|
|
41
|
+
cols: { type: 'u32', default: 0 },
|
|
42
|
+
rows: { type: 'u32', default: 0 },
|
|
43
|
+
// tileSize carries an explicit layer-2 default [1,1] (unit cell); the array
|
|
44
|
+
// layer-3 fallback is all-zero, so the default MUST be explicit (D-5).
|
|
45
|
+
tileSize: { type: 'array<f32, 2>', default: new Float32Array([1, 1]) },
|
|
46
|
+
chunkSize: { type: 'u32', default: 16 },
|
|
47
|
+
tileset: { type: 'string' },
|
|
48
|
+
});
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { defineComponent } from '@forgeax/engine-ecs';
|
|
2
|
+
|
|
3
|
+
/** Numeric labels stored by the public Visibility enum field. */
|
|
4
|
+
export const VisibilityStateValue = Object.freeze({
|
|
5
|
+
inherited: 0,
|
|
6
|
+
hidden: 1,
|
|
7
|
+
visible: 2,
|
|
8
|
+
} as const);
|
|
9
|
+
|
|
10
|
+
/** Author visibility intent accepted by the Visibility component. */
|
|
11
|
+
export type VisibilityState = keyof typeof VisibilityStateValue;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Decode the stored u32 without treating an unknown value as a valid state.
|
|
15
|
+
* Invalid values are rejected at ECS write boundaries; undefined remains an
|
|
16
|
+
* explicit signal for readers that inspect externally corrupted columns.
|
|
17
|
+
*/
|
|
18
|
+
export function visibilityStateFromU32(value: number): VisibilityState | undefined {
|
|
19
|
+
switch (value) {
|
|
20
|
+
case VisibilityStateValue.inherited:
|
|
21
|
+
return 'inherited';
|
|
22
|
+
case VisibilityStateValue.hidden:
|
|
23
|
+
return 'hidden';
|
|
24
|
+
case VisibilityStateValue.visible:
|
|
25
|
+
return 'visible';
|
|
26
|
+
default:
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Author intent for render participation. Omitted state is inherited and is
|
|
33
|
+
* therefore visible when no valid parent intent is available.
|
|
34
|
+
*/
|
|
35
|
+
export const Visibility = defineComponent(
|
|
36
|
+
'Visibility',
|
|
37
|
+
{
|
|
38
|
+
state: {
|
|
39
|
+
type: 'enum',
|
|
40
|
+
default: VisibilityStateValue.inherited,
|
|
41
|
+
labels: VisibilityStateValue,
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
meta: {
|
|
46
|
+
quickStart: 'Attach Visibility to author render participation intent.',
|
|
47
|
+
diagnostics: 'Compare the ECS state with resolveVisibility and renderer.visibilityStats.',
|
|
48
|
+
recovery: 'Use structured ECS write errors and repair the owning scene relation.',
|
|
49
|
+
boundaries:
|
|
50
|
+
'Visibility does not own camera, picking, lifecycle, assets, or VFX shadow policy.',
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
);
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { AssetRegistry } from '@forgeax/engine-assets-runtime';
|
|
2
|
+
import type { RhiBackendPack } from './assembly/backend-contract';
|
|
3
|
+
import type { BundlerOptions } from './assembly/factory';
|
|
4
|
+
import { createRenderer, exposeRenderer } from './assembly/factory';
|
|
5
|
+
import type {
|
|
6
|
+
RendererHostImplementation,
|
|
7
|
+
RendererLegacyHostAdapter,
|
|
8
|
+
} from './assembly/host-contract';
|
|
9
|
+
import { type RenderError, RendererContractFailureError } from './errors/render';
|
|
10
|
+
import type { Renderer, RendererOptions, RenderResult } from './render-contract';
|
|
11
|
+
|
|
12
|
+
export type {
|
|
13
|
+
EngineEnvironmentErrorDetail,
|
|
14
|
+
RhiBackendInstrumentation,
|
|
15
|
+
RhiBackendPack,
|
|
16
|
+
} from './assembly/backend-contract';
|
|
17
|
+
export { EngineEnvironmentError } from './assembly/backend-contract';
|
|
18
|
+
export type { RendererLegacyHostAdapter } from './assembly/host-contract';
|
|
19
|
+
export type { BundlerOptions };
|
|
20
|
+
|
|
21
|
+
export type RendererFeatureAssemblyHost = Pick<
|
|
22
|
+
RendererLegacyHostAdapter,
|
|
23
|
+
'installRenderFeature' | 'uninstallRenderFeature'
|
|
24
|
+
>;
|
|
25
|
+
|
|
26
|
+
export interface RendererHostAssembly {
|
|
27
|
+
readonly renderer: Renderer;
|
|
28
|
+
readonly debugDrawHost: RendererHostImplementation;
|
|
29
|
+
readonly featureHost: RendererFeatureAssemblyHost;
|
|
30
|
+
readonly assets: AssetRegistry;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export async function constructRendererHost(
|
|
34
|
+
canvas: unknown,
|
|
35
|
+
options?: RendererOptions,
|
|
36
|
+
bundler?: BundlerOptions,
|
|
37
|
+
backend?: RhiBackendPack,
|
|
38
|
+
): Promise<RenderResult<RendererHostAssembly, RenderError>> {
|
|
39
|
+
try {
|
|
40
|
+
const implementation = await createRenderer(canvas, options, bundler, backend);
|
|
41
|
+
const ready = await implementation.initialization;
|
|
42
|
+
if (!ready.ok) {
|
|
43
|
+
return {
|
|
44
|
+
ok: false,
|
|
45
|
+
error: new RendererContractFailureError(
|
|
46
|
+
'construct',
|
|
47
|
+
`${ready.error.code}: ${ready.error.hint}`,
|
|
48
|
+
),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
ok: true,
|
|
53
|
+
value: {
|
|
54
|
+
renderer: exposeRenderer(implementation),
|
|
55
|
+
debugDrawHost: implementation,
|
|
56
|
+
featureHost: implementation,
|
|
57
|
+
assets: implementation.assetRegistry,
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
} catch (cause) {
|
|
61
|
+
const detail = cause instanceof Error ? cause.message : String(cause);
|
|
62
|
+
return {
|
|
63
|
+
ok: false,
|
|
64
|
+
error: new RendererContractFailureError('construct', detail),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// @forgeax/engine-render - typed debug overlay graph contribution.
|
|
2
|
+
//
|
|
3
|
+
// App owns the concrete DebugDraw instance and injects its declaration-only
|
|
4
|
+
// capability through the Renderer host. Render owns graph ordering and pass
|
|
5
|
+
// encoding without depending on the debug-draw package.
|
|
6
|
+
|
|
7
|
+
import { mat4 } from '@forgeax/engine-math';
|
|
8
|
+
import type { RenderGraphBuilder, RenderGraphError } from '@forgeax/engine-render-graph';
|
|
9
|
+
import type { Result } from '@forgeax/engine-types';
|
|
10
|
+
import type { RenderPipelineFrame, RenderPipelineTarget } from './render-pipeline';
|
|
11
|
+
|
|
12
|
+
export function addTypedDebugOverlayPass(
|
|
13
|
+
graph: RenderGraphBuilder<RenderPipelineFrame>,
|
|
14
|
+
output: RenderPipelineTarget,
|
|
15
|
+
): Result<void, RenderGraphError> {
|
|
16
|
+
return graph.addRasterPass('debug-overlay', {
|
|
17
|
+
accesses: [{ resource: output.view, usage: 'color-attachment' }],
|
|
18
|
+
colorAttachments: [{ view: output.view, loadOp: 'load', storeOp: 'store' }],
|
|
19
|
+
encode: ({ pass, frame }) => {
|
|
20
|
+
const projection = mat4.create();
|
|
21
|
+
if (frame.camera.projection === 'orthographic') {
|
|
22
|
+
mat4.orthographic(
|
|
23
|
+
projection,
|
|
24
|
+
frame.camera.orthoLeft,
|
|
25
|
+
frame.camera.orthoRight,
|
|
26
|
+
frame.camera.orthoBottom,
|
|
27
|
+
frame.camera.orthoTop,
|
|
28
|
+
frame.camera.near,
|
|
29
|
+
frame.camera.far,
|
|
30
|
+
);
|
|
31
|
+
} else {
|
|
32
|
+
mat4.perspective(
|
|
33
|
+
projection,
|
|
34
|
+
frame.camera.fov,
|
|
35
|
+
frame.camera.aspect,
|
|
36
|
+
frame.camera.near,
|
|
37
|
+
frame.camera.far,
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
const view = mat4.invert(mat4.create(), frame.camera.world);
|
|
41
|
+
const result = frame.runtime.debugOverlay?.encode(
|
|
42
|
+
pass,
|
|
43
|
+
mat4.multiply(mat4.create(), projection, view),
|
|
44
|
+
);
|
|
45
|
+
if (result !== undefined && !result.ok) throw result.error;
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
}
|