@forgeax/engine-render 0.1.34 → 0.1.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -3
- package/dist/assembly/device-feature-admission.d.ts +2 -2
- package/dist/assembly/host-contract.d.ts +3 -2
- package/dist/assembly/host-contract.d.ts.map +1 -1
- package/dist/assembly/recovery/renderer-recover.d.ts.map +1 -1
- package/dist/assembly/render-target-host.d.ts +5 -0
- package/dist/assembly/render-target-host.d.ts.map +1 -1
- package/dist/assembly/renderer-facade.d.ts.map +1 -1
- package/dist/assembly/webgpu-renderer.d.ts +1 -0
- package/dist/assembly/webgpu-renderer.d.ts.map +1 -1
- package/dist/assembly/webgpu-vertex-layouts.d.ts.map +1 -1
- package/dist/authoring.mjs +2 -4
- package/dist/authoring.mjs.map +1 -1
- package/dist/chunk-2OZAS3WU.mjs +3489 -0
- package/dist/chunk-2OZAS3WU.mjs.map +1 -0
- package/dist/{chunk-UI5SFODX.mjs → chunk-BZQ4CDRF.mjs} +2338 -1991
- package/dist/chunk-BZQ4CDRF.mjs.map +1 -0
- package/dist/{chunk-MKDIT2EM.mjs → chunk-CJOV2XLO.mjs} +216 -261
- package/dist/chunk-CJOV2XLO.mjs.map +1 -0
- package/dist/chunk-D6WSBXJ2.mjs +1842 -0
- package/dist/chunk-D6WSBXJ2.mjs.map +1 -0
- package/dist/{chunk-HEB564WF.mjs → chunk-DRF6OULX.mjs} +4 -4
- package/dist/{chunk-HEB564WF.mjs.map → chunk-DRF6OULX.mjs.map} +1 -1
- package/dist/{chunk-OCDLEI6I.mjs → chunk-OB5WAFYH.mjs} +117 -5
- package/dist/chunk-OB5WAFYH.mjs.map +1 -0
- package/dist/{chunk-ODZWR6JQ.mjs → chunk-OEYKKMXG.mjs} +2042 -27
- package/dist/chunk-OEYKKMXG.mjs.map +1 -0
- package/dist/chunk-RIPAEGI6.mjs +48 -0
- package/dist/chunk-RIPAEGI6.mjs.map +1 -0
- package/dist/{chunk-ELJFJ2BU.mjs → chunk-X2KA6WHM.mjs} +29 -4
- package/dist/chunk-X2KA6WHM.mjs.map +1 -0
- package/dist/{chunk-BLXGONR2.mjs → chunk-XSFB7XXQ.mjs} +51 -4
- package/dist/chunk-XSFB7XXQ.mjs.map +1 -0
- package/dist/cloud/frame-context.d.ts +2 -2
- package/dist/cloud/frame-context.d.ts.map +1 -1
- package/dist/construct-renderer.mjs +936 -2140
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/device/device-scope.d.ts.map +1 -1
- package/dist/device/gpu-residency.d.ts +19 -19
- package/dist/device/gpu-residency.d.ts.map +1 -1
- package/dist/errors/render.d.ts +3 -2
- package/dist/errors/render.d.ts.map +1 -1
- package/dist/extract/material-context.d.ts +7 -0
- package/dist/extract/material-context.d.ts.map +1 -0
- package/dist/features/host.d.ts +5 -0
- package/dist/features/host.d.ts.map +1 -1
- package/dist/features/particle-mesh-layout.d.ts +19 -0
- package/dist/features/particle-mesh-layout.d.ts.map +1 -0
- package/dist/features/plan.d.ts +2 -0
- package/dist/features/plan.d.ts.map +1 -1
- package/dist/features/types.d.ts +8 -0
- package/dist/features/types.d.ts.map +1 -1
- package/dist/glyph-text-layout-system.d.ts +1 -1
- package/dist/glyph-text-layout-system.d.ts.map +1 -1
- package/dist/gpu-driven/production-raster.d.ts +1 -1
- package/dist/gpu-driven/production-raster.d.ts.map +1 -1
- package/dist/gpu-driven/shadow-ownership.d.ts +3 -3
- package/dist/gpu-driven/shadow-ownership.d.ts.map +1 -1
- package/dist/gpu-driven/shadow-views.d.ts +1 -1
- package/dist/gpu-driven/shadow-views.d.ts.map +1 -1
- package/dist/gpu-driven/view-gpu.d.ts +1 -1
- package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
- package/dist/ibl/frame-resources.d.ts.map +1 -1
- package/dist/ibl/skylight-bind-group.d.ts +4 -4
- package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +542 -9
- package/dist/index.mjs.map +1 -1
- package/dist/instances.d.ts +3 -4
- package/dist/instances.d.ts.map +1 -1
- package/dist/internal.mjs +7 -8
- package/dist/internal.mjs.map +1 -1
- package/dist/pbr-pipeline.d.ts +3 -3
- package/dist/pbr-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-output/lut-gpu.d.ts +2 -2
- package/dist/pipeline/standard-output/lut-gpu.d.ts.map +1 -1
- package/dist/pipeline/standard-output/resources.d.ts +2 -2
- package/dist/pipeline/standard-output/resources.d.ts.map +1 -1
- package/dist/publication/contract.d.ts +77 -0
- package/dist/publication/contract.d.ts.map +1 -0
- package/dist/publication/dependencies.d.ts +7 -0
- package/dist/publication/dependencies.d.ts.map +1 -0
- package/dist/publication/prepare-geometry.d.ts +9 -0
- package/dist/publication/prepare-geometry.d.ts.map +1 -0
- package/dist/publication/programs.d.ts +5 -0
- package/dist/publication/programs.d.ts.map +1 -0
- package/dist/publication/publisher.d.ts +34 -0
- package/dist/publication/publisher.d.ts.map +1 -0
- package/dist/publication/receiver.d.ts +29 -0
- package/dist/publication/receiver.d.ts.map +1 -0
- package/dist/publication/resource-scope.d.ts +18 -0
- package/dist/publication/resource-scope.d.ts.map +1 -0
- package/dist/publication/targets.d.ts +33 -0
- package/dist/publication/targets.d.ts.map +1 -0
- package/dist/publication/video.d.ts +5 -0
- package/dist/publication/video.d.ts.map +1 -0
- package/dist/record/fold-buckets.d.ts +3 -3
- package/dist/record/fold-buckets.d.ts.map +1 -1
- package/dist/record/frame-snapshot.d.ts +6 -6
- package/dist/record/frame-snapshot.d.ts.map +1 -1
- package/dist/record/frame.d.ts +5 -4
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/helpers.d.ts +2 -2
- package/dist/record/helpers.d.ts.map +1 -1
- package/dist/record/main-pass-geometry.d.ts +2 -2
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/main-pass-material.d.ts +7 -9
- package/dist/record/main-pass-material.d.ts.map +1 -1
- package/dist/record/main-pass-sprite-draws.d.ts +3 -16
- package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
- package/dist/record/main-pass.d.ts.map +1 -1
- package/dist/record/prepared-material-bindings.d.ts +2 -3
- package/dist/record/prepared-material-bindings.d.ts.map +1 -1
- package/dist/record/render-context.d.ts +4 -2
- package/dist/record/render-context.d.ts.map +1 -1
- package/dist/record/shadow-pass.d.ts +2 -2
- package/dist/record/shadow-pass.d.ts.map +1 -1
- package/dist/record/sprite-instance-buffer.d.ts +31 -0
- package/dist/record/sprite-instance-buffer.d.ts.map +1 -0
- package/dist/record/target-capture-graph.d.ts +19 -0
- package/dist/record/target-capture-graph.d.ts.map +1 -0
- package/dist/record/typed-frame-graph.d.ts +2 -13
- package/dist/record/typed-frame-graph.d.ts.map +1 -1
- package/dist/record/view-ubo.d.ts.map +1 -1
- package/dist/record/volume-params.d.ts +2 -2
- package/dist/record/volume-params.d.ts.map +1 -1
- package/dist/recovery/render-system-candidate.d.ts +5 -12
- package/dist/recovery/render-system-candidate.d.ts.map +1 -1
- package/dist/render-contract.d.ts +4 -1
- package/dist/render-contract.d.ts.map +1 -1
- package/dist/render-system-extract-tail.d.ts.map +1 -1
- package/dist/render-system-extract.d.ts +2 -0
- package/dist/render-system-extract.d.ts.map +1 -1
- package/dist/render-system-presentation.d.ts +2 -2
- package/dist/render-system-presentation.d.ts.map +1 -1
- package/dist/render-system-projections.d.ts +3 -2
- package/dist/render-system-projections.d.ts.map +1 -1
- package/dist/render-system-residency.d.ts +2 -2
- package/dist/render-system-residency.d.ts.map +1 -1
- package/dist/render-system.d.ts +3 -7
- package/dist/render-system.d.ts.map +1 -1
- package/dist/scene/render-scene.d.ts +8 -4
- package/dist/scene/render-scene.d.ts.map +1 -1
- package/dist/scene/render-source.d.ts +42 -0
- package/dist/scene/render-source.d.ts.map +1 -0
- package/dist/scene/source-systems.d.ts +6 -0
- package/dist/scene/source-systems.d.ts.map +1 -0
- package/dist/systems/skin-palette-allocator.d.ts.map +1 -1
- package/dist/systems/skin-palette-types.d.ts +10 -0
- package/dist/systems/skin-palette-types.d.ts.map +1 -1
- package/dist/systems/transparent-dispatch.d.ts +2 -2
- package/dist/systems/transparent-dispatch.d.ts.map +1 -1
- package/dist/systems/transparent-sort-config.d.ts +2 -1
- package/dist/systems/transparent-sort-config.d.ts.map +1 -1
- package/dist/temporal/index.mjs +6 -7
- package/dist/typed-shadow-passes.d.ts.map +1 -1
- package/package.json +21 -21
- package/src/__tests__/auto-exposure-transaction.integration.test.ts +4 -9
- package/src/__tests__/device-feature-admission.unit.test.ts +3 -2
- package/src/__tests__/device-scope-lifecycle.unit.test.ts +26 -0
- package/src/__tests__/gpu-driven-pbr.dawn.test.ts +3 -4
- package/src/__tests__/gpu-driven-production.integration.test.ts +18 -1
- package/src/__tests__/gpu-driven-shadow-views.unit.test.ts +23 -0
- package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +4 -1
- package/src/__tests__/main-pass-material-medium-selection.unit.test.ts +0 -1
- package/src/__tests__/material-vertex-texture.browser.test.ts +7 -0
- package/src/__tests__/material-vertex-texture.dawn.test.ts +7 -0
- package/src/__tests__/material-vertex-texture.fixture.ts +31 -0
- package/src/__tests__/materials-standard-contract.unit.test.ts +0 -1
- package/src/__tests__/physical-clearcoat.integration.test.ts +23 -23
- package/src/__tests__/physical-material-budget.unit.test.ts +40 -0
- package/src/__tests__/recovery-candidate-prepare.contract.test.ts +5 -0
- package/src/__tests__/render-error-code-owner.test-d.ts +1 -0
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +107 -5
- package/src/__tests__/runtime-material-program.integration.test.ts +79 -0
- package/src/__tests__/vertex-layouts-ssot.unit.test.ts +23 -3
- package/src/assembly/device-feature-admission.ts +2 -2
- package/src/assembly/host-contract.ts +5 -2
- package/src/assembly/recovery/renderer-recover.ts +9 -0
- package/src/assembly/render-target-host.ts +57 -47
- package/src/assembly/renderer-facade.ts +3 -1
- package/src/assembly/webgpu-ready.ts +1 -1
- package/src/assembly/webgpu-renderer.ts +101 -70
- package/src/assembly/webgpu-vertex-layouts.ts +2 -9
- package/src/cloud/frame-context.ts +2 -2
- package/src/device/device-scope.ts +3 -0
- package/src/device/gpu-residency.ts +26 -25
- package/src/errors/render.ts +3 -1
- package/src/extract/material-context.ts +21 -0
- package/src/features/host.ts +13 -5
- package/src/features/particle-mesh-layout.ts +25 -0
- package/src/features/plan.ts +2 -0
- package/src/features/types.ts +8 -0
- package/src/glyph-text-layout-system.ts +2 -2
- package/src/gpu-driven/production-raster.ts +9 -3
- package/src/gpu-driven/shadow-ownership.ts +3 -3
- package/src/gpu-driven/shadow-views.ts +27 -2
- package/src/gpu-driven/view-gpu.ts +5 -0
- package/src/ibl/frame-resources.ts +0 -1
- package/src/ibl/skylight-bind-group.ts +13 -25
- package/src/index.ts +9 -0
- package/src/instances.ts +9 -6
- package/src/pbr-pipeline.ts +15 -18
- package/src/pipeline/standard-output/lut-gpu.ts +3 -3
- package/src/pipeline/standard-output/resources.ts +2 -2
- package/src/publication/__tests__/derived-geometry.integration.test.ts +177 -0
- package/src/publication/__tests__/features.integration.test.ts +173 -0
- package/src/publication/__tests__/programs.unit.test.ts +25 -0
- package/src/publication/__tests__/publication.integration.test.ts +415 -0
- package/src/publication/__tests__/targets.integration.test.ts +120 -0
- package/src/publication/__tests__/video.browser.test.ts +50 -0
- package/src/publication/contract.ts +104 -0
- package/src/publication/dependencies.ts +54 -0
- package/src/publication/prepare-geometry.ts +94 -0
- package/src/publication/programs.ts +45 -0
- package/src/publication/publisher.ts +645 -0
- package/src/publication/receiver.ts +297 -0
- package/src/publication/resource-scope.ts +31 -0
- package/src/publication/targets.ts +182 -0
- package/src/publication/video.ts +33 -0
- package/src/record/__tests__/material-bg-cache.unit.test.ts +15 -1
- package/src/record/__tests__/prepared-runtime-material.integration.test.ts +134 -0
- package/src/record/__tests__/sprite-material-abi.unit.test.ts +8 -10
- package/src/record/__tests__/video-texture-view.unit.test.ts +9 -9
- package/src/record/fold-buckets.ts +8 -5
- package/src/record/frame-snapshot.ts +6 -6
- package/src/record/frame.ts +87 -28
- package/src/record/helpers.ts +2 -2
- package/src/record/main-pass-geometry.ts +21 -2
- package/src/record/main-pass-material.ts +37 -33
- package/src/record/main-pass-sprite-draws.ts +6 -152
- package/src/record/main-pass.ts +8 -7
- package/src/record/prepared-material-bindings.ts +16 -37
- package/src/record/render-context.ts +4 -2
- package/src/record/shadow-pass.ts +65 -7
- package/src/record/sprite-instance-buffer.ts +155 -0
- package/src/record/target-capture-graph.ts +258 -0
- package/src/record/typed-frame-graph.ts +11 -207
- package/src/record/view-ubo.ts +1 -1
- package/src/record/volume-params.ts +6 -6
- package/src/recovery/render-system-candidate.ts +10 -18
- package/src/render-contract.ts +6 -1
- package/src/render-system-extract-tail.ts +48 -23
- package/src/render-system-extract.ts +11 -2
- package/src/render-system-presentation.ts +2 -2
- package/src/render-system-projections.ts +3 -2
- package/src/render-system-residency.ts +2 -2
- package/src/render-system.ts +82 -54
- package/src/scene/render-scene.ts +110 -100
- package/src/scene/render-source.ts +90 -0
- package/src/scene/source-systems.ts +33 -0
- package/src/systems/skin-palette-allocator.ts +1 -0
- package/src/systems/skin-palette-types.ts +11 -0
- package/src/systems/transparent-dispatch.ts +2 -2
- package/src/systems/transparent-sort-config.ts +3 -1
- package/src/typed-shadow-passes.ts +36 -5
- package/dist/chunk-BLXGONR2.mjs.map +0 -1
- package/dist/chunk-ELJFJ2BU.mjs.map +0 -1
- package/dist/chunk-ILQ5MEZF.mjs +0 -32
- package/dist/chunk-ILQ5MEZF.mjs.map +0 -1
- package/dist/chunk-MKDIT2EM.mjs.map +0 -1
- package/dist/chunk-OCDLEI6I.mjs.map +0 -1
- package/dist/chunk-ODZWR6JQ.mjs.map +0 -1
- package/dist/chunk-RXZ3RGOU.mjs +0 -53
- package/dist/chunk-RXZ3RGOU.mjs.map +0 -1
- package/dist/chunk-SHFUFJ5N.mjs +0 -1781
- package/dist/chunk-SHFUFJ5N.mjs.map +0 -1
- package/dist/chunk-UI5SFODX.mjs.map +0 -1
- package/dist/chunk-UINHLCZA.mjs +0 -2389
- package/dist/chunk-UINHLCZA.mjs.map +0 -1
- package/dist/chunk-WEX45HKH.mjs +0 -1524
- package/dist/chunk-WEX45HKH.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-scene.d.ts","sourceRoot":"","sources":["../../src/scene/render-scene.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"render-scene.d.ts","sourceRoot":"","sources":["../../src/scene/render-scene.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Component, EntityHandle, Query, World } from '@forgeax/engine-ecs';
|
|
2
|
+
import { GlobalTransform } from '@forgeax/engine-scene';
|
|
3
|
+
export type GlobalTransformChangeQuery = Query<readonly [typeof GlobalTransform]>;
|
|
4
|
+
export declare const RENDERABLE_SOURCE_COMPONENTS: readonly [Component<"ChildOf", {
|
|
5
|
+
parent: "entity";
|
|
6
|
+
}>, Component<"MeshFilter", {
|
|
7
|
+
readonly assetHandle: "shared<MeshAsset>";
|
|
8
|
+
}>, Component<"MeshRenderer", {
|
|
9
|
+
readonly materials: "array<shared<MaterialAsset>>";
|
|
10
|
+
}>, Component<"Instances", {
|
|
11
|
+
readonly transforms: "array<f32>";
|
|
12
|
+
}>, Component<"SpriteInstances", {
|
|
13
|
+
readonly transforms: "array<f32>";
|
|
14
|
+
readonly regions: "array<f32>";
|
|
15
|
+
}>, Component<"SpriteRegionOverride", {
|
|
16
|
+
readonly region: "array<f32, 4>";
|
|
17
|
+
}>, Component<"Skin", {
|
|
18
|
+
readonly skeleton: "shared<SkeletonAsset>";
|
|
19
|
+
readonly joints: "array<entity>";
|
|
20
|
+
}>, Component<"Layer", {
|
|
21
|
+
readonly value: "i32";
|
|
22
|
+
}>, Component<"Visibility", {
|
|
23
|
+
readonly state: "enum";
|
|
24
|
+
}>, Component<"MorphWeights", {
|
|
25
|
+
readonly weights: "array<f32>";
|
|
26
|
+
}>, Component<"Points", {
|
|
27
|
+
readonly sizePx: "f32";
|
|
28
|
+
readonly shape: "enum";
|
|
29
|
+
}>, Component<"Lines", {
|
|
30
|
+
readonly widthPx: "f32";
|
|
31
|
+
}>, Component<"SortKey", {
|
|
32
|
+
readonly value: "f32";
|
|
33
|
+
}>];
|
|
34
|
+
export declare function createGlobalTransformChangeQuery(world: World): GlobalTransformChangeQuery;
|
|
35
|
+
export declare function createRenderSourceState(world: World, additional?: readonly Component[]): {
|
|
36
|
+
projection: import("@forgeax/engine-ecs/projection").StateProjection;
|
|
37
|
+
entities: Map<number, EntityHandle>;
|
|
38
|
+
contentHandles: Map<number, readonly number[]>;
|
|
39
|
+
batch: import("@forgeax/engine-ecs/projection").StateProjectionBatch;
|
|
40
|
+
};
|
|
41
|
+
export declare function isRenderableMember(world: World, entity: number): boolean;
|
|
42
|
+
//# sourceMappingURL=render-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-source.d.ts","sourceRoot":"","sources":["../../src/scene/render-source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAAW,eAAe,EAA2B,MAAM,uBAAuB,CAAC;AAc1F,MAAM,MAAM,0BAA0B,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC;AAKlF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAc/B,CAAC;AACX,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,KAAK,GAAG,0BAA0B,CAQzF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,GAAE,SAAS,SAAS,EAAO;;;;;EAkC1F;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAMxE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AssetRegistry } from '@forgeax/engine-assets-runtime';
|
|
2
|
+
import { type World } from '@forgeax/engine-ecs';
|
|
3
|
+
import type { GpuResidencyCache } from '../device/gpu-residency';
|
|
4
|
+
/** Derived authoring stays beside World; only completed mesh data reaches the Renderer. */
|
|
5
|
+
export declare function registerRenderSourceSystems(world: World, assets: AssetRegistry, meshes: Pick<GpuResidencyCache, 'updateMesh'>): () => void;
|
|
6
|
+
//# sourceMappingURL=source-systems.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-systems.d.ts","sourceRoot":"","sources":["../../src/scene/source-systems.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAU,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAKjE,2FAA2F;AAC3F,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,GAC5C,MAAM,IAAI,CAmBZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skin-palette-allocator.d.ts","sourceRoot":"","sources":["../../src/systems/skin-palette-allocator.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,KAAK,EAAU,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAO7D,OAAO,KAAK,EAEV,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAuB9B,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,+EAA+E;IAC/E,uBAAuB,CAAC,KAAK,EAAE;QAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;KAChC,GAAG,kBAAkB,CAAC;IACvB;;;;OAIG;IACH,uBAAuB,CACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,SAAS,YAAY,EAAE,EAC7B,WAAW,EAAE,SAAS,IAAI,EAAE,GAC3B,SAAS,MAAM,EAAE,CAAC;IACrB,+EAA+E;IAC/E,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACnE,0EAA0E;IAC1E,UAAU,IAAI,IAAI,CAAC;IACnB,sEAAsE;IACtE,QAAQ,IAAI,IAAI,CAAC;IACjB,uEAAuE;IACvE,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C;;;;;;;;;;OAUG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACpD;;;;;;;;OAQG;IACH,iBAAiB,CACf,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,SAAS,YAAY,EAAE,EAC7B,WAAW,EAAE,SAAS,IAAI,EAAE,GAC3B,IAAI,CAAC;IACR,mEAAmE;IACnE,2BAA2B,CACzB,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,SAAS,YAAY,EAAE,EAC7B,WAAW,EAAE,SAAS,IAAI,EAAE,GAC3B,IAAI,CAAC;IACR;;;;OAIG;IACH,aAAa,IAAI,IAAI,CAAC;IACtB,wEAAwE;IACxE,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,EACjB,cAAc,EAAE,MAAM,EACtB,gBAAgB,UAAO,GACtB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"skin-palette-allocator.d.ts","sourceRoot":"","sources":["../../src/systems/skin-palette-allocator.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,KAAK,EAAU,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAO7D,OAAO,KAAK,EAEV,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAuB9B,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,+EAA+E;IAC/E,uBAAuB,CAAC,KAAK,EAAE;QAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;KAChC,GAAG,kBAAkB,CAAC;IACvB;;;;OAIG;IACH,uBAAuB,CACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,SAAS,YAAY,EAAE,EAC7B,WAAW,EAAE,SAAS,IAAI,EAAE,GAC3B,SAAS,MAAM,EAAE,CAAC;IACrB,+EAA+E;IAC/E,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACnE,0EAA0E;IAC1E,UAAU,IAAI,IAAI,CAAC;IACnB,sEAAsE;IACtE,QAAQ,IAAI,IAAI,CAAC;IACjB,uEAAuE;IACvE,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C;;;;;;;;;;OAUG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACpD;;;;;;;;OAQG;IACH,iBAAiB,CACf,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,SAAS,YAAY,EAAE,EAC7B,WAAW,EAAE,SAAS,IAAI,EAAE,GAC3B,IAAI,CAAC;IACR,mEAAmE;IACnE,2BAA2B,CACzB,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,SAAS,YAAY,EAAE,EAC7B,WAAW,EAAE,SAAS,IAAI,EAAE,GAC3B,IAAI,CAAC;IACR;;;;OAIG;IACH,aAAa,IAAI,IAAI,CAAC;IACtB,wEAAwE;IACxE,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,EACjB,cAAc,EAAE,MAAM,EACtB,gBAAgB,UAAO,GACtB,oBAAoB,CA0iBtB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Mat4 } from '@forgeax/engine-math';
|
|
1
2
|
import type { Buffer } from '@forgeax/engine-rhi';
|
|
2
3
|
/**
|
|
3
4
|
* Per-draw palette slice metadata shared by the extract producer and the
|
|
@@ -26,4 +27,13 @@ export interface SkinPaletteReceipt extends SkinPaletteSlice {
|
|
|
26
27
|
readonly uploadBytes: number;
|
|
27
28
|
readonly retiredByteOffset?: number;
|
|
28
29
|
}
|
|
30
|
+
/** Frozen source facts; GPU addresses are assigned only by the consuming Renderer. */
|
|
31
|
+
export interface SkinPose {
|
|
32
|
+
readonly identity: string;
|
|
33
|
+
readonly generation: number;
|
|
34
|
+
readonly jointCount: number;
|
|
35
|
+
readonly bounds?: Float32Array;
|
|
36
|
+
readonly inverseBindMatrices: readonly Float32Array[];
|
|
37
|
+
readonly jointWorlds: readonly Mat4[];
|
|
38
|
+
}
|
|
29
39
|
//# sourceMappingURL=skin-palette-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skin-palette-types.d.ts","sourceRoot":"","sources":["../../src/systems/skin-palette-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC"}
|
|
1
|
+
{"version":3,"file":"skin-palette-types.d.ts","sourceRoot":"","sources":["../../src/systems/skin-palette-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,sFAAsF;AACtF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,EAAE,SAAS,YAAY,EAAE,CAAC;IACtD,QAAQ,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE,CAAC;CACvC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { RenderResourceScope } from '../publication/resource-scope';
|
|
2
2
|
import type { CameraSnapshot } from '../render-contract';
|
|
3
3
|
import type { DispatchEntry, RenderableSnapshot } from '../render-system-extract';
|
|
4
4
|
/**
|
|
5
5
|
* Reorder only the transparent queue while preserving every opaque slot.
|
|
6
6
|
* Equal depth/layer values use material identity as a fold-friendly tie break.
|
|
7
7
|
*/
|
|
8
|
-
export declare function sortTransparentDispatch(dispatch: DispatchEntry[], world:
|
|
8
|
+
export declare function sortTransparentDispatch(dispatch: DispatchEntry[], world: RenderResourceScope, cameras: readonly CameraSnapshot[], renderables: readonly RenderableSnapshot[]): DispatchEntry[];
|
|
9
9
|
//# sourceMappingURL=transparent-dispatch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transparent-dispatch.d.ts","sourceRoot":"","sources":["../../src/systems/transparent-dispatch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transparent-dispatch.d.ts","sourceRoot":"","sources":["../../src/systems/transparent-dispatch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AASlF;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,aAAa,EAAE,EACzB,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,WAAW,EAAE,SAAS,kBAAkB,EAAE,GACzC,aAAa,EAAE,CAoEjB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { RenderResourceScope } from '../publication/resource-scope';
|
|
1
2
|
import type { World } from '@forgeax/engine-ecs';
|
|
2
3
|
import { ResourceInvalidValueError } from '@forgeax/engine-ecs/projection';
|
|
3
4
|
import { type Result } from '@forgeax/engine-types';
|
|
@@ -69,7 +70,7 @@ export declare const TransparentSort: Readonly<{
|
|
|
69
70
|
* const cfg = getTransparentSortConfig(world);
|
|
70
71
|
* // cfg.mode === 1, cfg.yzAlpha === 1.0 (yzAlpha ignored by mode=1).
|
|
71
72
|
*/
|
|
72
|
-
export declare function getTransparentSortConfig(world:
|
|
73
|
+
export declare function getTransparentSortConfig(world: RenderResourceScope): TransparentSortConfig;
|
|
73
74
|
/**
|
|
74
75
|
* Write the world's `TransparentSortConfig` resource, validating `mode`.
|
|
75
76
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transparent-sort-config.d.ts","sourceRoot":"","sources":["../../src/systems/transparent-sort-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transparent-sort-config.d.ts","sourceRoot":"","sources":["../../src/systems/transparent-sort-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AA2DzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAM7D;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/C;AAED,+DAA+D;AAC/D,eAAO,MAAM,2BAA2B,EAAG,uBAAgC,CAAC;AAE5E,oDAAoD;AACpD,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C,mFAAmF;AACnF,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C,wFAAwF;AACxF,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,kFAAkF;AAClF,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,uEAAuE;AACvE,eAAO,MAAM,eAAe;;;;;;EAMjB,CAAC;AA8BZ;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,GAAG,qBAAqB,CAM1F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,qBAAqB,GACzB,MAAM,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAczC"}
|
package/dist/temporal/index.mjs
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
export { addStandardSceneDataPass, addTaaResolvePass, aggregateTemporalDemand, createStandardSceneDataTarget, describeTemporalDemand, standardTemporalLaneAdmission, standardTemporalPostOrder } from '../chunk-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export {
|
|
6
|
-
|
|
7
|
-
import '../chunk-WEX45HKH.mjs';
|
|
1
|
+
export { addStandardSceneDataPass, addTaaResolvePass, aggregateTemporalDemand, createStandardSceneDataTarget, describeTemporalDemand, standardTemporalLaneAdmission, standardTemporalPostOrder } from '../chunk-CJOV2XLO.mjs';
|
|
2
|
+
export { SCENE_DATA_TEMPORAL_V1_DESCRIPTOR, SCENE_DATA_TEMPORAL_V1_SCHEMA, createSceneDataCatalog, isSceneDataTarget, registerSceneDataTarget, sceneDataError, sceneDataTargetAsAttachment, sceneDataTargetOwner, sceneDataTokenMismatch } from '../chunk-OB5WAFYH.mjs';
|
|
3
|
+
import '../chunk-XSFB7XXQ.mjs';
|
|
4
|
+
export { TEMPORAL_JITTER_SAMPLE_COUNT, TEMPORAL_TAAU_DEPENDENCY_STATUS, TemporalFrameCoordinator, projectTemporalView, snapshotSubmittedTemporalView, temporalJitterSample, temporalViewId } from '../chunk-DRF6OULX.mjs';
|
|
5
|
+
export { classifySceneDataCoverage, createTemporalCoverage, scanSceneDataCoverage } from '../chunk-RIPAEGI6.mjs';
|
|
6
|
+
import '../chunk-2OZAS3WU.mjs';
|
|
8
7
|
//# sourceMappingURL=index.mjs.map
|
|
9
8
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-shadow-passes.d.ts","sourceRoot":"","sources":["../src/typed-shadow-passes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAE1B,MAAM,2BAA2B,CAAC;AASnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG1F,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;CACnD;AA4CD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,QAAQ,EAAE,sBAAsB,EAChC,gCAAgC,CAAC,EAC7B,CAAC,CAAC,QAAQ,EAAE,kBAAkB,KAAK,MAAM,CAAC,oBAAoB,GAAG,SAAS,EAAE,gBAAgB,CAAC,CAAC,GAC9F,wBAAwB,CAAC,mBAAmB,CAAC,EACjD,QAAQ,CAAC,EAAE,wBAAwB,CAAC,mBAAmB,CAAC,GACvD,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"typed-shadow-passes.d.ts","sourceRoot":"","sources":["../src/typed-shadow-passes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAE1B,MAAM,2BAA2B,CAAC;AASnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG1F,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;CACnD;AA4CD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,QAAQ,EAAE,sBAAsB,EAChC,gCAAgC,CAAC,EAC7B,CAAC,CAAC,QAAQ,EAAE,kBAAkB,KAAK,MAAM,CAAC,oBAAoB,GAAG,SAAS,EAAE,gBAAgB,CAAC,CAAC,GAC9F,wBAAwB,CAAC,mBAAmB,CAAC,EACjD,QAAQ,CAAC,EAAE,wBAAwB,CAAC,mBAAmB,CAAC,GACvD,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAwO9C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forgeax/engine-render",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.36",
|
|
4
4
|
"description": "Canonical ECS render schemas and renderer boundary.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -37,28 +37,28 @@
|
|
|
37
37
|
"LICENSE"
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@forgeax/engine-assets-runtime": "0.1.
|
|
41
|
-
"@forgeax/engine-audio-webaudio": "0.1.
|
|
42
|
-
"@forgeax/engine-codec": "0.1.
|
|
43
|
-
"@forgeax/engine-ecs": "0.1.
|
|
44
|
-
"@forgeax/engine-geometry": "0.1.
|
|
45
|
-
"@forgeax/engine-graphics-extras": "0.1.
|
|
46
|
-
"@forgeax/engine-math": "0.1.
|
|
47
|
-
"@forgeax/engine-pack": "0.1.
|
|
48
|
-
"@forgeax/engine-plugin": "0.1.
|
|
49
|
-
"@forgeax/engine-profiler": "0.1.
|
|
50
|
-
"@forgeax/engine-render-graph": "0.1.
|
|
51
|
-
"@forgeax/engine-rhi": "0.1.
|
|
52
|
-
"@forgeax/engine-scene": "0.1.
|
|
53
|
-
"@forgeax/engine-shader": "0.1.
|
|
54
|
-
"@forgeax/engine-skinning": "0.1.
|
|
55
|
-
"@forgeax/engine-types": "0.1.
|
|
40
|
+
"@forgeax/engine-assets-runtime": "0.1.36",
|
|
41
|
+
"@forgeax/engine-audio-webaudio": "0.1.36",
|
|
42
|
+
"@forgeax/engine-codec": "0.1.36",
|
|
43
|
+
"@forgeax/engine-ecs": "0.1.36",
|
|
44
|
+
"@forgeax/engine-geometry": "0.1.36",
|
|
45
|
+
"@forgeax/engine-graphics-extras": "0.1.36",
|
|
46
|
+
"@forgeax/engine-math": "0.1.36",
|
|
47
|
+
"@forgeax/engine-pack": "0.1.36",
|
|
48
|
+
"@forgeax/engine-plugin": "0.1.36",
|
|
49
|
+
"@forgeax/engine-profiler": "0.1.36",
|
|
50
|
+
"@forgeax/engine-render-graph": "0.1.36",
|
|
51
|
+
"@forgeax/engine-rhi": "0.1.36",
|
|
52
|
+
"@forgeax/engine-scene": "0.1.36",
|
|
53
|
+
"@forgeax/engine-shader": "0.1.36",
|
|
54
|
+
"@forgeax/engine-skinning": "0.1.36",
|
|
55
|
+
"@forgeax/engine-types": "0.1.36"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@forgeax/engine-rhi-debug": "0.1.
|
|
59
|
-
"@forgeax/engine-rhi-null": "0.1.
|
|
60
|
-
"@forgeax/engine-rhi-webgpu": "0.1.
|
|
61
|
-
"@forgeax/engine-vite-plugin-shader": "0.1.
|
|
58
|
+
"@forgeax/engine-rhi-debug": "0.1.36",
|
|
59
|
+
"@forgeax/engine-rhi-null": "0.1.36",
|
|
60
|
+
"@forgeax/engine-rhi-webgpu": "0.1.36",
|
|
61
|
+
"@forgeax/engine-vite-plugin-shader": "0.1.36",
|
|
62
62
|
"@webgpu/types": "^0.1.71"
|
|
63
63
|
},
|
|
64
64
|
"forgeax": {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Time, World } from '@forgeax/engine-ecs';
|
|
1
|
+
import { World } from '@forgeax/engine-ecs';
|
|
3
2
|
import { describe, expect, it } from 'vitest';
|
|
4
3
|
import {
|
|
5
4
|
executeAutoExposureFrameTransaction,
|
|
@@ -10,10 +9,9 @@ import {
|
|
|
10
9
|
commitAutoExposureSubmission,
|
|
11
10
|
createAutoExposureState,
|
|
12
11
|
} from '../pipeline/standard-output/auto-exposure/state';
|
|
12
|
+
import { renderTime } from '../publication/resource-scope';
|
|
13
13
|
import { canonicalizeWorldComposition } from '../render-system-projections';
|
|
14
14
|
|
|
15
|
-
const renderSystemSource = readFileSync(new URL('../render-system.ts', import.meta.url), 'utf8');
|
|
16
|
-
|
|
17
15
|
function candidate(): AutoExposureCandidate {
|
|
18
16
|
return { ev: 1.25, generation: 4, deviceEpoch: 2, frameId: 9 };
|
|
19
17
|
}
|
|
@@ -90,10 +88,7 @@ describe('auto exposure frame transaction', () => {
|
|
|
90
88
|
const resolvedCameraWorld = composition.worlds[composition.owners.cameraOwner];
|
|
91
89
|
|
|
92
90
|
expect(resolvedCameraWorld).toBe(cameraWorld);
|
|
93
|
-
|
|
94
|
-
expect(
|
|
95
|
-
'const cameraWorld = compositionWorlds[cameraOwner] as World;',
|
|
96
|
-
);
|
|
97
|
-
expect(renderSystemSource).not.toContain('const cameraWorld = worlds[cameraOwner] as World;');
|
|
91
|
+
if (resolvedCameraWorld === undefined) throw new Error('Camera owner is missing');
|
|
92
|
+
expect(renderTime(resolvedCameraWorld).delta).toBeCloseTo(1 / 30);
|
|
98
93
|
});
|
|
99
94
|
});
|
|
@@ -188,3 +188,29 @@ describe('DeviceScope lifecycle transaction', () => {
|
|
|
188
188
|
expect(cleanupCount).toBe(1);
|
|
189
189
|
});
|
|
190
190
|
});
|
|
191
|
+
|
|
192
|
+
it('detaches terminal child scopes while retaining pending ownership', () => {
|
|
193
|
+
const parent = DeviceScope.create(1, 'renderer');
|
|
194
|
+
const pending = parent.createChild('pending');
|
|
195
|
+
let cleaned = 0;
|
|
196
|
+
pending._adopt('buffer', {}, () => {
|
|
197
|
+
cleaned += 1;
|
|
198
|
+
});
|
|
199
|
+
pending.beginRetire();
|
|
200
|
+
for (let index = 0; index < 300; index += 1) {
|
|
201
|
+
for (const action of ['retire', 'abandon', 'dispose'] as const) {
|
|
202
|
+
const child = parent.createChild(action);
|
|
203
|
+
child._adopt('buffer', {}, () => {
|
|
204
|
+
cleaned += 1;
|
|
205
|
+
});
|
|
206
|
+
child[action]();
|
|
207
|
+
child[action]();
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
expect(parent.childrenSnapshot).toEqual([pending]);
|
|
211
|
+
expect(cleaned).toBe(900);
|
|
212
|
+
pending.retire();
|
|
213
|
+
expect(parent.childrenSnapshot).toEqual([]);
|
|
214
|
+
parent.dispose();
|
|
215
|
+
expect(cleaned).toBe(901);
|
|
216
|
+
});
|
|
@@ -641,10 +641,9 @@ describe('GPU-driven production PBR Dawn regression', () => {
|
|
|
641
641
|
{ binding: 47, resource: { kind: 'textureView' as const, value: materialCubeView } },
|
|
642
642
|
{ binding: 18, resource: { kind: 'sampler' as const, value: baseColorSampler } },
|
|
643
643
|
{ binding: 19, resource: { kind: 'textureView' as const, value: baseColorView } },
|
|
644
|
-
{ binding: 20, resource: { kind: '
|
|
645
|
-
{ binding: 21, resource: { kind: '
|
|
646
|
-
{ binding: 22, resource: { kind: '
|
|
647
|
-
{ binding: 23, resource: { kind: 'textureView' as const, value: baseColorView } },
|
|
644
|
+
{ binding: 20, resource: { kind: 'buffer' as const, value: { buffer: viewUniform } } },
|
|
645
|
+
{ binding: 21, resource: { kind: 'sampler' as const, value: baseColorSampler } },
|
|
646
|
+
{ binding: 22, resource: { kind: 'textureView' as const, value: baseColorView } },
|
|
648
647
|
{
|
|
649
648
|
binding: 46,
|
|
650
649
|
resource: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { HANDLE_CUBE } from '@forgeax/engine-assets-runtime';
|
|
2
2
|
import { World } from '@forgeax/engine-ecs';
|
|
3
3
|
import { deriveVertexLayoutProjection } from '@forgeax/engine-geometry';
|
|
4
|
-
import { vec3 } from '@forgeax/engine-math';
|
|
4
|
+
import { frustum, mat4, vec3 } from '@forgeax/engine-math';
|
|
5
5
|
import { RenderGraphBuilder } from '@forgeax/engine-render-graph';
|
|
6
6
|
import {
|
|
7
7
|
type BindGroup,
|
|
@@ -2426,6 +2426,23 @@ describe('GPU-driven production projection', () => {
|
|
|
2426
2426
|
expect(authored?.[2]).toEqual({ cullMode: 'none', frontFace: 'cw' });
|
|
2427
2427
|
expect(authored?.[15]).toBe(skinned ? 'pbr-skin' : 'pbr');
|
|
2428
2428
|
if (skinned) expect(authored?.[5]).toContain('SKINNING_DISABLED=false');
|
|
2429
|
+
|
|
2430
|
+
sourceForRecord.transform.world[12] = 100;
|
|
2431
|
+
indexedDraws.length = 0;
|
|
2432
|
+
const culled = recordShadowCasterDraws(
|
|
2433
|
+
context,
|
|
2434
|
+
pass,
|
|
2435
|
+
{} as never,
|
|
2436
|
+
{} as never,
|
|
2437
|
+
new Set([0]),
|
|
2438
|
+
new Map([[0, new Set([20, 21, 22])]]),
|
|
2439
|
+
shadowDispatches,
|
|
2440
|
+
new Set([claimedKey]),
|
|
2441
|
+
false,
|
|
2442
|
+
frustum.fromViewProjection(frustum.create(), mat4.identity(mat4.create())),
|
|
2443
|
+
);
|
|
2444
|
+
expect(indexedDraws).toHaveLength(skinned ? 3 : 0);
|
|
2445
|
+
expect(culled).toEqual(skinned ? residualKeys : new Set());
|
|
2429
2446
|
});
|
|
2430
2447
|
|
|
2431
2448
|
it('fails closed at every shadow front door when expected casters lack bind groups', () => {
|
|
@@ -13,6 +13,7 @@ import { RenderScene } from '../scene/render-scene';
|
|
|
13
13
|
|
|
14
14
|
const shadowViewsPath = new URL('../gpu-driven/shadow-views.ts', import.meta.url);
|
|
15
15
|
const shadowViewsSource = existsSync(shadowViewsPath) ? readFileSync(shadowViewsPath, 'utf8') : '';
|
|
16
|
+
const recordFrameSource = readFileSync(new URL('../record/frame.ts', import.meta.url), 'utf8');
|
|
16
17
|
const viewSource = readFileSync(new URL('../gpu-driven/view-gpu.ts', import.meta.url), 'utf8');
|
|
17
18
|
|
|
18
19
|
const shadowKinds = [
|
|
@@ -83,6 +84,23 @@ describe('GPU-driven shadow view owner contract', () => {
|
|
|
83
84
|
expect(viewSource).toMatch(/labelPrefix|viewPrefix|viewId/);
|
|
84
85
|
});
|
|
85
86
|
|
|
87
|
+
it('fences shadow view cache identity at accepted graph generations', () => {
|
|
88
|
+
const cacheTokens = [
|
|
89
|
+
...recordFrameSource.matchAll(/cacheToken:\s*shadowViewToken\(([^)]*)\)/g),
|
|
90
|
+
].map(([, argumentsSource]) => argumentsSource ?? '');
|
|
91
|
+
|
|
92
|
+
expect(cacheTokens).toHaveLength(3);
|
|
93
|
+
expect(
|
|
94
|
+
cacheTokens.every((argumentsSource) => argumentsSource.includes('graphShadowMapSize')),
|
|
95
|
+
).toBe(true);
|
|
96
|
+
expect(
|
|
97
|
+
cacheTokens.every((argumentsSource) =>
|
|
98
|
+
argumentsSource.includes('frameState.graphGeneration'),
|
|
99
|
+
),
|
|
100
|
+
).toBe(true);
|
|
101
|
+
expect(recordFrameSource).toMatch(/shadowViewToken[\s\S]*graphGeneration/);
|
|
102
|
+
});
|
|
103
|
+
|
|
86
104
|
it('reuses each view on a cache hit and invalidates only that view', async () => {
|
|
87
105
|
const adapter = (await rhi.requestAdapter()).unwrap();
|
|
88
106
|
const device = (await adapter.requestDevice()).unwrap();
|
|
@@ -140,6 +158,11 @@ describe('GPU-driven shadow view owner contract', () => {
|
|
|
140
158
|
.inspect().passes,
|
|
141
159
|
).toHaveLength(0);
|
|
142
160
|
|
|
161
|
+
const replacementGraph = new RenderGraphBuilder<{ readonly encoder: RhiCommandEncoder }>();
|
|
162
|
+
const forced = pool.project(replacementGraph, identity, true).unwrap();
|
|
163
|
+
expect(forced.cache).toBe('hit');
|
|
164
|
+
expect(forced.passNames.length).toBeGreaterThan(0);
|
|
165
|
+
|
|
143
166
|
const changedMaterial = {
|
|
144
167
|
...material,
|
|
145
168
|
baseColor: new Float32Array([0.25, 1, 1]),
|
|
@@ -560,7 +560,10 @@ describe.skipIf(!pkgBuilt)('KTX2/Basis real GPU texture consumer matrix', () =>
|
|
|
560
560
|
store.configureGpuDevice(
|
|
561
561
|
device as never,
|
|
562
562
|
undefined,
|
|
563
|
-
(
|
|
563
|
+
(source, pod) => {
|
|
564
|
+
if ('resolveAsset' in source) throw new Error('This fixture only allocates World assets');
|
|
565
|
+
return ok(source.allocSharedRef('EquirectAsset', pod));
|
|
566
|
+
},
|
|
564
567
|
device.caps,
|
|
565
568
|
);
|
|
566
569
|
const rows: GpuCell[] = [];
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { expect } from 'vitest';
|
|
2
|
+
import { appendInjection, buildPbrMaterialUserRegionEntries } from '../pbr-pipeline';
|
|
3
|
+
|
|
4
|
+
export async function verifyMaterialVertexTexture(): Promise<void> {
|
|
5
|
+
const adapter = await navigator.gpu.requestAdapter();
|
|
6
|
+
if (!adapter) throw new Error('WebGPU adapter unavailable');
|
|
7
|
+
const device = await adapter.requestDevice();
|
|
8
|
+
try {
|
|
9
|
+
const entries = buildPbrMaterialUserRegionEntries([
|
|
10
|
+
{ name: 'displacement', type: 'texture2d' },
|
|
11
|
+
]);
|
|
12
|
+
for (const entry of appendInjection(entries, 'ibl')) expect(entry.visibility).toBe(2);
|
|
13
|
+
device.pushErrorScope('validation');
|
|
14
|
+
const module = device.createShaderModule({
|
|
15
|
+
code: `@group(0) @binding(1) var s: sampler;
|
|
16
|
+
@group(0) @binding(2) var t: texture_2d<f32>;
|
|
17
|
+
@vertex fn vs() -> @builtin(position) vec4<f32> { return vec4<f32>(textureSampleLevel(t,s,vec2<f32>(0.5),0.0).xyz,1.0); }
|
|
18
|
+
@fragment fn fs() -> @location(0) vec4<f32> { return vec4<f32>(1.0); }`,
|
|
19
|
+
});
|
|
20
|
+
device.createRenderPipeline({
|
|
21
|
+
layout: device.createPipelineLayout({
|
|
22
|
+
bindGroupLayouts: [device.createBindGroupLayout({ entries })],
|
|
23
|
+
}),
|
|
24
|
+
vertex: { module, entryPoint: 'vs' },
|
|
25
|
+
fragment: { module, entryPoint: 'fs', targets: [{ format: 'rgba8unorm' }] },
|
|
26
|
+
});
|
|
27
|
+
expect(await device.popErrorScope()).toBeNull();
|
|
28
|
+
} finally {
|
|
29
|
+
device.destroy();
|
|
30
|
+
}
|
|
31
|
+
}
|