@forgeax/engine-vfx-render 0.1.2
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 +163 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/__tests__/billboard-advanced.integration.test.d.ts +2 -0
- package/dist/__tests__/billboard-advanced.integration.test.d.ts.map +1 -0
- package/dist/__tests__/data-interface-providers.unit.test.d.ts +2 -0
- package/dist/__tests__/data-interface-providers.unit.test.d.ts.map +1 -0
- package/dist/__tests__/data-interface-public-api.test-d.d.ts +2 -0
- package/dist/__tests__/data-interface-public-api.test-d.d.ts.map +1 -0
- package/dist/__tests__/event-resources.unit.test.d.ts +2 -0
- package/dist/__tests__/event-resources.unit.test.d.ts.map +1 -0
- package/dist/__tests__/fog-producer.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-producer.integration.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-host.integration.test.d.ts +2 -0
- package/dist/__tests__/gpu-host.integration.test.d.ts.map +1 -0
- package/dist/__tests__/inspect-snapshot.integration.test.d.ts +2 -0
- package/dist/__tests__/inspect-snapshot.integration.test.d.ts.map +1 -0
- package/dist/__tests__/particle-resources.unit.test.d.ts +2 -0
- package/dist/__tests__/particle-resources.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-vocabulary-owner.test-d.d.ts +2 -0
- package/dist/__tests__/render-vocabulary-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/stage-plan.integration.test.d.ts +2 -0
- package/dist/__tests__/stage-plan.integration.test.d.ts.map +1 -0
- package/dist/__tests__/stage-recovery.integration.test.d.ts +2 -0
- package/dist/__tests__/stage-recovery.integration.test.d.ts.map +1 -0
- package/dist/__tests__/stage-resource-access-owner.test-d.d.ts +2 -0
- package/dist/__tests__/stage-resource-access-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/stage-resource-layout.unit.test.d.ts +2 -0
- package/dist/__tests__/stage-resource-layout.unit.test.d.ts.map +1 -0
- package/dist/__tests__/topology-capacity.unit.test.d.ts +2 -0
- package/dist/__tests__/topology-capacity.unit.test.d.ts.map +1 -0
- package/dist/__tests__/topology-resources.unit.test.d.ts +2 -0
- package/dist/__tests__/topology-resources.unit.test.d.ts.map +1 -0
- package/dist/feature/camera.d.ts +11 -0
- package/dist/feature/camera.d.ts.map +1 -0
- package/dist/feature/event-resources.d.ts +9 -0
- package/dist/feature/event-resources.d.ts.map +1 -0
- package/dist/feature/gpu-particle-feature.d.ts +96 -0
- package/dist/feature/gpu-particle-feature.d.ts.map +1 -0
- package/dist/feature/particle-resources.d.ts +66 -0
- package/dist/feature/particle-resources.d.ts.map +1 -0
- package/dist/feature/stage-plan.d.ts +54 -0
- package/dist/feature/stage-plan.d.ts.map +1 -0
- package/dist/feature/topologies/beam.d.ts +16 -0
- package/dist/feature/topologies/beam.d.ts.map +1 -0
- package/dist/feature/topologies/ribbon.d.ts +15 -0
- package/dist/feature/topologies/ribbon.d.ts.map +1 -0
- package/dist/feature/topologies/trail.d.ts +19 -0
- package/dist/feature/topologies/trail.d.ts.map +1 -0
- package/dist/host/data-interface-providers.d.ts +19 -0
- package/dist/host/data-interface-providers.d.ts.map +1 -0
- package/dist/host/vfx-runtime-host.d.ts +87 -0
- package/dist/host/vfx-runtime-host.d.ts.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +1572 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +63 -0
- package/src/__tests__/billboard-advanced.integration.test.ts +69 -0
- package/src/__tests__/data-interface-providers.unit.test.ts +55 -0
- package/src/__tests__/data-interface-public-api.test-d.ts +58 -0
- package/src/__tests__/event-resources.unit.test.ts +71 -0
- package/src/__tests__/fog-producer.integration.test.ts +59 -0
- package/src/__tests__/gpu-host.integration.test.ts +441 -0
- package/src/__tests__/inspect-snapshot.integration.test.ts +26 -0
- package/src/__tests__/particle-resources.unit.test.ts +75 -0
- package/src/__tests__/render-vocabulary-owner.test-d.ts +81 -0
- package/src/__tests__/stage-plan.integration.test.ts +16 -0
- package/src/__tests__/stage-recovery.integration.test.ts +24 -0
- package/src/__tests__/stage-resource-access-owner.test-d.ts +26 -0
- package/src/__tests__/stage-resource-layout.unit.test.ts +40 -0
- package/src/__tests__/topology-capacity.unit.test.ts +59 -0
- package/src/__tests__/topology-resources.unit.test.ts +29 -0
- package/src/feature/camera.ts +12 -0
- package/src/feature/event-resources.ts +62 -0
- package/src/feature/gpu-particle-feature.ts +1225 -0
- package/src/feature/particle-resources.ts +203 -0
- package/src/feature/stage-plan.ts +282 -0
- package/src/feature/topologies/beam.ts +41 -0
- package/src/feature/topologies/ribbon.ts +31 -0
- package/src/feature/topologies/trail.ts +43 -0
- package/src/host/data-interface-providers.ts +119 -0
- package/src/host/vfx-runtime-host.ts +402 -0
- package/src/index.ts +57 -0
- package/src/shaders/beam.wgsl +69 -0
- package/src/shaders/billboard.wgsl +132 -0
- package/src/shaders/event.wgsl +11 -0
- package/src/shaders/mesh.wgsl +98 -0
- package/src/shaders/ribbon.wgsl +69 -0
- package/src/shaders/stage.wgsl +5 -0
- package/src/shaders/trail.wgsl +77 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpu-particle-feature.d.ts","sourceRoot":"","sources":["../../src/feature/gpu-particle-feature.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { RenderFeatureMaterialShaderBindingContract } from '@forgeax/engine-render';
|
|
2
|
+
import { type MaterialAsset, type MaterialRenderState, type MeshAsset, type Result } from '@forgeax/engine-types';
|
|
3
|
+
import type { ParticleRendererSource } from '@forgeax/engine-vfx';
|
|
4
|
+
type ParticleRendererKind = ParticleRendererSource['kind'];
|
|
5
|
+
type ParticleTopologyRenderer = Extract<ParticleRendererSource, {
|
|
6
|
+
readonly capacity: number;
|
|
7
|
+
}>;
|
|
8
|
+
type ParticleTopologyKind = ParticleTopologyRenderer['kind'];
|
|
9
|
+
export declare const PARTICLE_SHADER_IDENTIFIERS: Readonly<{
|
|
10
|
+
billboard: "forgeax::vfx-render.particles.billboard";
|
|
11
|
+
mesh: "forgeax::vfx-render.particles.mesh";
|
|
12
|
+
ribbon: "forgeax::vfx-render.particles.ribbon";
|
|
13
|
+
trail: "forgeax::vfx-render.particles.trail";
|
|
14
|
+
beam: "forgeax::vfx-render.particles.beam";
|
|
15
|
+
}>;
|
|
16
|
+
export interface TopologyResourcePlan {
|
|
17
|
+
readonly topology: ParticleTopologyKind;
|
|
18
|
+
readonly capacity: number;
|
|
19
|
+
readonly vertexBytes: number;
|
|
20
|
+
readonly indexBytes: number;
|
|
21
|
+
readonly indirectBytes: number;
|
|
22
|
+
readonly resourceKey: string;
|
|
23
|
+
readonly historyLength?: number;
|
|
24
|
+
readonly stripKey?: 'alive-index';
|
|
25
|
+
readonly endpointField?: 'velocity';
|
|
26
|
+
}
|
|
27
|
+
export interface TopologyResourceError {
|
|
28
|
+
readonly code: 'vfx-topology-resource-invalid';
|
|
29
|
+
readonly expected: string;
|
|
30
|
+
readonly hint: string;
|
|
31
|
+
readonly detail: {
|
|
32
|
+
readonly path: string;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export declare function createTopologyResourcePlan(renderer: unknown): Result<TopologyResourcePlan, TopologyResourceError>;
|
|
36
|
+
export interface TopologyCapacityInput {
|
|
37
|
+
readonly requested: number;
|
|
38
|
+
readonly produced: number;
|
|
39
|
+
readonly degenerate?: number;
|
|
40
|
+
}
|
|
41
|
+
export declare function topologyCapacitySnapshot(plan: TopologyResourcePlan, input: TopologyCapacityInput): {
|
|
42
|
+
readonly topology: "ribbon" | "trail" | "beam";
|
|
43
|
+
readonly capacity: number;
|
|
44
|
+
readonly produced: number;
|
|
45
|
+
readonly dropped: number;
|
|
46
|
+
readonly overflow: number;
|
|
47
|
+
readonly degenerate: number;
|
|
48
|
+
};
|
|
49
|
+
export interface ParticleMaterialPass {
|
|
50
|
+
readonly shader: string;
|
|
51
|
+
readonly renderState?: MaterialRenderState;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Resolve the one material pass that is meaningful for a particle projection.
|
|
55
|
+
* A regular Forward pass is intentionally ignored: VFX vertex layouts are a
|
|
56
|
+
* different contract, so silently accepting it would compile the wrong input
|
|
57
|
+
* shape and make authored particle shaders appear to work while never running.
|
|
58
|
+
*/
|
|
59
|
+
export declare function particleMaterialPass(kind: ParticleRendererKind, material: MaterialAsset | undefined): ParticleMaterialPass;
|
|
60
|
+
/** Scene-depth is a shader binding contract, not a renderer-kind convention. */
|
|
61
|
+
export declare function particleMaterialUsesSceneDepth(contract: RenderFeatureMaterialShaderBindingContract | 'view-with-resource'): boolean;
|
|
62
|
+
/** True when the authored particle shader consumes the standard material bind group. */
|
|
63
|
+
export declare function particleMaterialUsesBindings(material: MaterialAsset | undefined): boolean;
|
|
64
|
+
export declare function canonicalMeshVertices(mesh: MeshAsset): Float32Array;
|
|
65
|
+
export {};
|
|
66
|
+
//# sourceMappingURL=particle-resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"particle-resources.d.ts","sourceRoot":"","sources":["../../src/feature/particle-resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EAEd,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,KAAK,oBAAoB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC3D,KAAK,wBAAwB,GAAG,OAAO,CAAC,sBAAsB,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAC/F,KAAK,oBAAoB,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;AAE7D,eAAO,MAAM,2BAA2B;;;;;;EAMtC,CAAC;AAEH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,+BAA+B,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,OAAO,GAChB,MAAM,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAsErD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,qBAAqB;;;;;;;EAWhG;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;CAC5C;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,aAAa,GAAG,SAAS,GAClC,oBAAoB,CAQtB;AAED,gFAAgF;AAChF,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,0CAA0C,GAAG,oBAAoB,GAC1E,OAAO,CAET;AAED,wFAAwF;AACxF,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAEzF;AAQD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,YAAY,CAyBnE"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { RenderFeatureGpuBindingsRef, RenderFeatureGpuDispatch } from '@forgeax/engine-render';
|
|
2
|
+
import type { VfxGpuStageReflection } from '@forgeax/engine-vfx';
|
|
3
|
+
export interface VfxValidatedStage {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly entry: string;
|
|
6
|
+
readonly entryPoint: string;
|
|
7
|
+
readonly domain: 'particle';
|
|
8
|
+
readonly resources: readonly {
|
|
9
|
+
readonly name: string;
|
|
10
|
+
readonly access: VfxGpuStageReflection['resources'][number]['access'];
|
|
11
|
+
}[];
|
|
12
|
+
readonly dependsOn: readonly string[];
|
|
13
|
+
readonly iterationBudget: number;
|
|
14
|
+
}
|
|
15
|
+
export interface VfxStageReadiness {
|
|
16
|
+
readonly id: string;
|
|
17
|
+
readonly state: 'ready' | 'candidate-rejected' | 'stale' | 'rebuilding';
|
|
18
|
+
readonly generation: number;
|
|
19
|
+
readonly lastKnownGoodGeneration?: number;
|
|
20
|
+
readonly retryable: boolean;
|
|
21
|
+
readonly error?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface VfxStagePlanObservation {
|
|
24
|
+
readonly validatedStagePlan: VfxValidatedStagePlan;
|
|
25
|
+
readonly stageReadiness: readonly VfxStageReadiness[];
|
|
26
|
+
readonly stageOutput: 'active' | 'last-known-good' | 'empty';
|
|
27
|
+
readonly lastKnownGoodStage: {
|
|
28
|
+
readonly fingerprint: string;
|
|
29
|
+
readonly generation: number;
|
|
30
|
+
} | undefined;
|
|
31
|
+
}
|
|
32
|
+
export interface VfxValidatedStagePlan {
|
|
33
|
+
readonly stages: readonly VfxValidatedStage[];
|
|
34
|
+
readonly fingerprint: string;
|
|
35
|
+
readonly generation: number;
|
|
36
|
+
}
|
|
37
|
+
export interface VfxStagePlanError {
|
|
38
|
+
readonly code: 'stage-id-invalid' | 'stage-entry-point-invalid' | 'stage-domain-invalid' | 'stage-resource-invalid' | 'stage-dependency-invalid' | 'stage-cycle' | 'stage-budget-invalid';
|
|
39
|
+
readonly stageId: string;
|
|
40
|
+
readonly hint: string;
|
|
41
|
+
}
|
|
42
|
+
export type VfxStageRecovery = 'device-loss' | 'stale';
|
|
43
|
+
/** Validate the compiler reflection before a RenderFeature can contribute it. */
|
|
44
|
+
export declare function validatedStagePlan(reflection: VfxGpuStageReflection[] | readonly VfxGpuStageReflection[] | undefined, generation: number): {
|
|
45
|
+
readonly ok: true;
|
|
46
|
+
readonly value: VfxValidatedStagePlan;
|
|
47
|
+
} | {
|
|
48
|
+
readonly ok: false;
|
|
49
|
+
readonly error: VfxStagePlanError;
|
|
50
|
+
};
|
|
51
|
+
export declare function stageDispatches(plan: VfxValidatedStagePlan, workgroups: number, bindings: RenderFeatureGpuBindingsRef): readonly RenderFeatureGpuDispatch[];
|
|
52
|
+
export declare function observeStagePlan(candidate: ReturnType<typeof validatedStagePlan>, generation: number, lastKnownGoodStage: VfxValidatedStagePlan | undefined): VfxStagePlanObservation;
|
|
53
|
+
export declare function stageRecoveryReadiness(plan: VfxValidatedStagePlan, generation: number, recovery: VfxStageRecovery): readonly VfxStageReadiness[];
|
|
54
|
+
//# sourceMappingURL=stage-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stage-plan.d.ts","sourceRoot":"","sources":["../../src/feature/stage-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Result } from '@forgeax/engine-types';
|
|
2
|
+
export interface BeamTopologyInput {
|
|
3
|
+
readonly capacity: number;
|
|
4
|
+
readonly endpointField: 'velocity';
|
|
5
|
+
}
|
|
6
|
+
export interface BeamTopologyOutput {
|
|
7
|
+
readonly topology: 'beam';
|
|
8
|
+
readonly vertexCount: number;
|
|
9
|
+
readonly indexCount: number;
|
|
10
|
+
readonly indirectVertexCount: number;
|
|
11
|
+
readonly dropped: number;
|
|
12
|
+
readonly degenerate: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function buildBeamTopology(input: BeamTopologyInput, requested: number, degenerate?: number): Result<BeamTopologyOutput, never>;
|
|
15
|
+
export declare function beamIsDegenerate(start: readonly [number, number, number], endpoint: readonly [number, number, number]): boolean;
|
|
16
|
+
//# sourceMappingURL=beam.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beam.d.ts","sourceRoot":"","sources":["../../../src/feature/topologies/beam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC;CACpC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,MAAM,EACjB,UAAU,SAAI,GACb,MAAM,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAUnC;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACxC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAC1C,OAAO,CAKT"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Result } from '@forgeax/engine-types';
|
|
2
|
+
export interface RibbonTopologyInput {
|
|
3
|
+
readonly capacity: number;
|
|
4
|
+
readonly stripKey: 'alive-index';
|
|
5
|
+
}
|
|
6
|
+
export interface RibbonTopologyOutput {
|
|
7
|
+
readonly topology: 'ribbon';
|
|
8
|
+
readonly vertexCount: number;
|
|
9
|
+
readonly indexCount: number;
|
|
10
|
+
readonly indirectVertexCount: number;
|
|
11
|
+
readonly dropped: number;
|
|
12
|
+
readonly brokenStrips: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function buildRibbonTopology(input: RibbonTopologyInput, requested: number, brokenStrips?: number): Result<RibbonTopologyOutput, never>;
|
|
15
|
+
//# sourceMappingURL=ribbon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ribbon.d.ts","sourceRoot":"","sources":["../../../src/feature/topologies/ribbon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,MAAM,EACjB,YAAY,SAAI,GACf,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAUrC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Result } from '@forgeax/engine-types';
|
|
2
|
+
export interface TrailTopologyInput {
|
|
3
|
+
readonly capacity: number;
|
|
4
|
+
readonly historyLength: number;
|
|
5
|
+
}
|
|
6
|
+
export interface TrailTopologyOutput {
|
|
7
|
+
readonly topology: 'trail';
|
|
8
|
+
readonly vertexCount: number;
|
|
9
|
+
readonly indexCount: number;
|
|
10
|
+
readonly indirectVertexCount: number;
|
|
11
|
+
readonly dropped: number;
|
|
12
|
+
readonly brokenTrails: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function buildTrailTopology(input: TrailTopologyInput, requested: number, brokenTrails?: number): Result<TrailTopologyOutput, never>;
|
|
15
|
+
export declare function trailContinuityBreaks(samples: readonly {
|
|
16
|
+
readonly id: number;
|
|
17
|
+
readonly connected: boolean;
|
|
18
|
+
}[]): number;
|
|
19
|
+
//# sourceMappingURL=trail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trail.d.ts","sourceRoot":"","sources":["../../../src/feature/topologies/trail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,MAAM,EACjB,YAAY,SAAI,GACf,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAWpC;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAAE,EAAE,GACvE,MAAM,CAOR"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Result } from '@forgeax/engine-types';
|
|
2
|
+
import { type VfxDataInterfaceError, type VfxDataInterfaceProvider, type VfxDataInterfaceRequirement, type VfxDataInterfaceResolution } from '@forgeax/engine-vfx';
|
|
3
|
+
export type { VfxDataInterfaceProvider } from '@forgeax/engine-vfx';
|
|
4
|
+
export interface VfxDataInterfaceAvailabilitySource {
|
|
5
|
+
readonly available: (generation: number) => boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface VfxDataInterfaceRegistry {
|
|
8
|
+
readonly providers: readonly VfxDataInterfaceProvider[];
|
|
9
|
+
readonly snapshot: {
|
|
10
|
+
readonly generation: number;
|
|
11
|
+
readonly result: Result<VfxDataInterfaceResolution, VfxDataInterfaceError>;
|
|
12
|
+
} | undefined;
|
|
13
|
+
register(provider: VfxDataInterfaceProvider): Result<void, VfxDataInterfaceError>;
|
|
14
|
+
resolve(requirements: readonly VfxDataInterfaceRequirement[], generation: number): Result<VfxDataInterfaceResolution, VfxDataInterfaceError>;
|
|
15
|
+
}
|
|
16
|
+
export declare function createCameraProvider(source: VfxDataInterfaceAvailabilitySource): VfxDataInterfaceProvider<'camera'>;
|
|
17
|
+
export declare function createSceneDepthProvider(source: VfxDataInterfaceAvailabilitySource): VfxDataInterfaceProvider<'scene-depth'>;
|
|
18
|
+
export declare function createVfxDataInterfaceRegistry(initialProviders?: readonly VfxDataInterfaceProvider[]): VfxDataInterfaceRegistry;
|
|
19
|
+
//# sourceMappingURL=data-interface-providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-interface-providers.d.ts","sourceRoot":"","sources":["../../src/host/data-interface-providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAEL,KAAK,qBAAqB,EAE1B,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAGhC,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAEpE,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;CACrD;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACxD,QAAQ,CAAC,QAAQ,EACb;QACE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,CAAC;KAC5E,GACD,SAAS,CAAC;IACd,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAClF,OAAO,CACL,YAAY,EAAE,SAAS,2BAA2B,EAAE,EACpD,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,CAAC;CAC9D;AA0CD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,kCAAkC,GACzC,wBAAwB,CAAC,QAAQ,CAAC,CAEpC;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kCAAkC,GACzC,wBAAwB,CAAC,aAAa,CAAC,CAEzC;AAED,wBAAgB,8BAA8B,CAC5C,gBAAgB,GAAE,SAAS,wBAAwB,EAAO,GACzD,wBAAwB,CA+B1B"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { AssetRegistry } from '@forgeax/engine-assets-runtime';
|
|
2
|
+
import { type EntityHandle, type World } from '@forgeax/engine-ecs';
|
|
3
|
+
import type { AssetDecoderLease, Result } from '@forgeax/engine-types';
|
|
4
|
+
import type { VfxDataInterfaceError, VfxDataInterfaceProvider, VfxDataInterfaceRequirement, VfxDataInterfaceResolution, VfxGpuPlayerInspectSnapshot, VfxGpuRuntimeDiagnostic, VfxReplayInput, VfxValueMap } from '@forgeax/engine-vfx';
|
|
5
|
+
import type { ParticleRenderCameraSource } from '../feature/camera.js';
|
|
6
|
+
import { gpuParticleRenderFeature } from '../feature/gpu-particle-feature.js';
|
|
7
|
+
import { type VfxDataInterfaceRegistry } from './data-interface-providers.js';
|
|
8
|
+
export interface VfxRuntimeHostOptions {
|
|
9
|
+
readonly camera: ParticleRenderCameraSource;
|
|
10
|
+
readonly maxQueuedTicks?: number;
|
|
11
|
+
readonly providers?: readonly VfxDataInterfaceProvider[];
|
|
12
|
+
}
|
|
13
|
+
export interface VfxRuntimeHostError {
|
|
14
|
+
readonly code: 'vfx-host-loader-install-failed' | 'vfx-host-world-attach-failed' | 'vfx-host-world-detach-failed';
|
|
15
|
+
readonly expected: string;
|
|
16
|
+
readonly hint: string;
|
|
17
|
+
readonly detail: {
|
|
18
|
+
readonly cause: unknown;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export interface VfxRuntimeHostControlError {
|
|
22
|
+
readonly code: 'vfx-host-control-world-detached' | 'vfx-host-control-stale-generation' | 'vfx-host-control-runtime-unavailable' | 'vfx-host-control-player-unavailable';
|
|
23
|
+
readonly expected: string;
|
|
24
|
+
readonly hint: string;
|
|
25
|
+
readonly detail: {
|
|
26
|
+
readonly requestedGeneration?: number;
|
|
27
|
+
readonly currentGeneration?: number;
|
|
28
|
+
readonly player?: EntityHandle;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export interface VfxRuntimeHostControl {
|
|
32
|
+
readonly generation: number;
|
|
33
|
+
replay(input: {
|
|
34
|
+
readonly player: EntityHandle;
|
|
35
|
+
readonly replayInput?: VfxReplayInput<VfxValueMap>;
|
|
36
|
+
}): Result<{
|
|
37
|
+
readonly state: 'queued';
|
|
38
|
+
readonly generation: number;
|
|
39
|
+
}, VfxRuntimeHostControlError>;
|
|
40
|
+
setEmitterSessionEnabled(input: {
|
|
41
|
+
readonly player: EntityHandle;
|
|
42
|
+
readonly emitterId: string;
|
|
43
|
+
readonly enabled: boolean;
|
|
44
|
+
}): Result<{
|
|
45
|
+
readonly state: 'enabled' | 'disabled';
|
|
46
|
+
readonly generation: number;
|
|
47
|
+
}, VfxRuntimeHostControlError>;
|
|
48
|
+
setPlayerRenderConsumption(input: {
|
|
49
|
+
readonly player: EntityHandle;
|
|
50
|
+
readonly enabled: boolean;
|
|
51
|
+
}): Result<{
|
|
52
|
+
readonly state: 'enabled' | 'paused';
|
|
53
|
+
readonly generation: number;
|
|
54
|
+
}, VfxRuntimeHostControlError>;
|
|
55
|
+
}
|
|
56
|
+
export interface VfxRuntimeHost {
|
|
57
|
+
readonly feature: ReturnType<typeof gpuParticleRenderFeature>;
|
|
58
|
+
readonly dataInterfaces: VfxDataInterfaceRegistry;
|
|
59
|
+
inspect(world: World): VfxRuntimeHostInspectSnapshot | undefined;
|
|
60
|
+
acquireControl(world: World): Result<VfxRuntimeHostControl, VfxRuntimeHostControlError>;
|
|
61
|
+
resolveDataInterfaces(input: {
|
|
62
|
+
readonly requirements: readonly VfxDataInterfaceRequirement[];
|
|
63
|
+
readonly generation: number;
|
|
64
|
+
}): Result<VfxDataInterfaceResolution, VfxDataInterfaceError>;
|
|
65
|
+
attachWorld(input: {
|
|
66
|
+
readonly world: World;
|
|
67
|
+
readonly assets: AssetRegistry;
|
|
68
|
+
}): Promise<Result<{
|
|
69
|
+
readonly state: 'attached' | 'already-attached';
|
|
70
|
+
}, VfxRuntimeHostError>>;
|
|
71
|
+
detachWorld(input: {
|
|
72
|
+
readonly world: World;
|
|
73
|
+
}): Promise<Result<{
|
|
74
|
+
readonly state: 'detached' | 'not-attached';
|
|
75
|
+
}, VfxRuntimeHostError>>;
|
|
76
|
+
}
|
|
77
|
+
/** Install the VFX owner decoder into the one host registry. */
|
|
78
|
+
export declare function installVfxRuntimeDecoder(registry: AssetRegistry): AssetDecoderLease;
|
|
79
|
+
export interface VfxRuntimeHostInspectSnapshot {
|
|
80
|
+
readonly generation: number;
|
|
81
|
+
/** VFX GPU resource generation; distinct from host attachment generation. */
|
|
82
|
+
readonly renderGeneration: number;
|
|
83
|
+
readonly players: readonly VfxGpuPlayerInspectSnapshot[];
|
|
84
|
+
readonly diagnostics: readonly VfxGpuRuntimeDiagnostic[];
|
|
85
|
+
}
|
|
86
|
+
export declare function createVfxRuntimeHost(options: VfxRuntimeHostOptions): VfxRuntimeHost;
|
|
87
|
+
//# sourceMappingURL=vfx-runtime-host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vfx-runtime-host.d.ts","sourceRoot":"","sources":["../../src/host/vfx-runtime-host.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type { ParticleRenderCamera, ParticleRenderCameraSource } from './feature/camera.js';
|
|
2
|
+
export { encodeEventInputs, eventCapacity, eventCounterData, eventInputCapacity, VFX_EVENT_BYTES, VFX_EVENT_COUNTER_BYTES, VFX_EVENT_INPUT_BYTES, } from './feature/event-resources.js';
|
|
3
|
+
export type { VfxGpuRenderObservation } from './feature/gpu-particle-feature.js';
|
|
4
|
+
export { createVfxRenderInspectSnapshot, gpuParticleRenderFeature, resolveBillboardAdvancedState, topologyRecoveryHint, } from './feature/gpu-particle-feature.js';
|
|
5
|
+
export { createTopologyResourcePlan, PARTICLE_SHADER_IDENTIFIERS, topologyCapacitySnapshot, } from './feature/particle-resources.js';
|
|
6
|
+
export type { VfxStagePlanError, VfxStagePlanObservation, VfxStageReadiness, VfxStageRecovery, VfxValidatedStage, VfxValidatedStagePlan, } from './feature/stage-plan.js';
|
|
7
|
+
export { observeStagePlan, stageDispatches, stageRecoveryReadiness, validatedStagePlan, } from './feature/stage-plan.js';
|
|
8
|
+
export type { VfxDataInterfaceAvailabilitySource, VfxDataInterfaceProvider, VfxDataInterfaceRegistry, } from './host/data-interface-providers.js';
|
|
9
|
+
export { createCameraProvider, createSceneDepthProvider, createVfxDataInterfaceRegistry, } from './host/data-interface-providers.js';
|
|
10
|
+
export type { VfxRuntimeHost, VfxRuntimeHostControl, VfxRuntimeHostControlError, VfxRuntimeHostError, VfxRuntimeHostInspectSnapshot, VfxRuntimeHostOptions, } from './host/vfx-runtime-host.js';
|
|
11
|
+
export { createVfxRuntimeHost, installVfxRuntimeDecoder } from './host/vfx-runtime-host.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EACL,8BAA8B,EAC9B,wBAAwB,EACxB,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,kCAAkC,EAClC,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC"}
|