@forgeax/engine-runtime 0.1.7 → 0.1.20
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 +45 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/__tests__/helpers/standard-material-manifest.d.ts +12 -0
- package/dist/__tests__/helpers/standard-material-manifest.d.ts.map +1 -0
- package/dist/__tests__/helpers/tilemap-assets.d.ts.map +1 -1
- package/dist/__tests__/material-texture-dimension-mismatch.unit.test.d.ts +2 -0
- package/dist/__tests__/material-texture-dimension-mismatch.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-environment-consumer.integration.test.d.ts +2 -0
- package/dist/__tests__/render-environment-consumer.integration.test.d.ts.map +1 -0
- package/dist/__tests__/render-error-exhaustive.test-d.d.ts.map +1 -1
- package/dist/__tests__/render-feature-prepared-graphics.fixture.d.ts.map +1 -1
- package/dist/__tests__/renderer-host-fallback.unit.test.d.ts +2 -0
- package/dist/__tests__/renderer-host-fallback.unit.test.d.ts.map +1 -0
- package/dist/__tests__/skinned-shadow-mixed.dawn.test.d.ts +2 -0
- package/dist/__tests__/skinned-shadow-mixed.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/texture-dimensions.browser.test.d.ts +2 -0
- package/dist/__tests__/texture-dimensions.browser.test.d.ts.map +1 -0
- package/dist/__tests__/volumetric-fog-record-recovery.integration.test.d.ts +2 -0
- package/dist/__tests__/volumetric-fog-record-recovery.integration.test.d.ts.map +1 -0
- package/dist/backend-selection.d.ts.map +1 -1
- package/dist/createRenderer.d.ts.map +1 -1
- package/dist/index.mjs +21 -1
- package/dist/index.mjs.map +1 -1
- package/dist/renderer-host.d.ts +2 -1
- package/dist/renderer-host.d.ts.map +1 -1
- package/dist/renderer-host.mjs +21 -2
- package/dist/renderer-host.mjs.map +1 -1
- package/package.json +30 -30
- package/src/__tests__/asset-registry.recursive.spec.ts +12 -18
- package/src/__tests__/asset.unit.test.ts +28 -25
- package/src/__tests__/basis-catalog-dispatch.integration.test.ts +10 -9
- package/src/__tests__/compressed-texture-physical-extent.integration.test.ts +12 -10
- package/src/__tests__/dawn/hello-sprite-nineslice-section.dawn.test.ts +2 -3
- package/src/__tests__/dawn/instances-per-instance-pbr.dawn.test.ts +12 -11
- package/src/__tests__/dawn/material-alpha.dawn.test.ts +2 -3
- package/src/__tests__/dawn/mipmap-srgb-linear.dawn.test.ts +2 -3
- package/src/__tests__/dawn/per-entity-material-texture-isolation.dawn.test.ts +2 -3
- package/src/__tests__/dawn/sprite-nineslice-mesh-bind.dawn.test.ts +2 -3
- package/src/__tests__/dawn/upload-texture.dawn.test.ts +4 -6
- package/src/__tests__/derive-bgl-integration.test.ts +11 -0
- package/src/__tests__/equirect-bc6h.integration.test.ts +6 -4
- package/src/__tests__/errors.unit.test.ts +56 -0
- package/src/__tests__/extract-record-no-hardcoded-texture-fields.test.ts +4 -5
- package/src/__tests__/four-path-compression.integration.test.ts +2 -2
- package/src/__tests__/fullscreen-post-process-pass.dawn.test.ts +461 -18
- package/src/__tests__/geometry.unit.test.ts +3 -1
- package/src/__tests__/gpu-resource-cow-survivor.test.ts +2 -3
- package/src/__tests__/helpers/standard-material-manifest.ts +45 -0
- package/src/__tests__/helpers/tilemap-assets.ts +3 -4
- package/src/__tests__/light-gpu-byte-neutral.unit.test.ts +4 -2
- package/src/__tests__/lights.unit.test.ts +38 -17
- package/src/__tests__/loadbyguid-texture-intern.unit.test.ts +3 -4
- package/src/__tests__/loader-name-survival.test.ts +2 -3
- package/src/__tests__/material-texture-dimension-mismatch.unit.test.ts +18 -0
- package/src/__tests__/material-texture-uv-scale.unit.test.ts +18 -16
- package/src/__tests__/materials.unit.test.ts +2 -0
- package/src/__tests__/mip-gate.unit.test.ts +11 -8
- package/src/__tests__/msaa-sprite-pixel-diff.dawn.test.ts +2 -3
- package/src/__tests__/new-kind-refs-contract.test.ts +2 -3
- package/src/__tests__/pbr-pipeline.unit.test.ts +31 -12
- package/src/__tests__/pipeline-cache-keying.unit.test.ts +6 -4
- package/src/__tests__/pipeline.unit.test.ts +23 -21
- package/src/__tests__/point-light-shadow.unit.test.ts +6 -5
- package/src/__tests__/render-environment-consumer.integration.test.ts +33 -0
- package/src/__tests__/render-error-exhaustive.test-d.ts +86 -0
- package/src/__tests__/render-feature-prepared-graphics.fixture.ts +10 -0
- package/src/__tests__/render-system-extract.test.ts +4 -6
- package/src/__tests__/render-system-mega.test.ts +3 -1
- package/src/__tests__/render-system-record-multi-material-textureview.test.ts +7 -7
- package/src/__tests__/render-system-record-per-submesh-transparency.test.ts +5 -4
- package/src/__tests__/render-system-record.test.ts +8 -6
- package/src/__tests__/renderer-host-fallback.unit.test.ts +112 -0
- package/src/__tests__/renderer-lifecycle.integration.test.ts +10 -0
- package/src/__tests__/renderer-surface.unit.test.ts +66 -0
- package/src/__tests__/shadow-csm-cascade-loadop.test.ts +5 -1
- package/src/__tests__/shadow-csm-tile-consistency.test.ts +5 -1
- package/src/__tests__/shadow-fields-observable.dawn.test.ts +56 -39
- package/src/__tests__/skinned-shadow-mixed.dawn.test.ts +385 -0
- package/src/__tests__/sprite-cullmode-flip.dawn.test.ts +4 -6
- package/src/__tests__/sprite-lit-bgl-byte-identical.test.ts +11 -9
- package/src/__tests__/ssao-passes.test.ts +28 -12
- package/src/__tests__/systems.unit.test.ts +63 -33
- package/src/__tests__/texture-dimensions.browser.test.ts +127 -0
- package/src/__tests__/transcode-fallback.unit.test.ts +5 -1
- package/src/__tests__/volumetric-fog-record-recovery.integration.test.ts +180 -0
- package/src/backend-selection.ts +4 -0
- package/src/createRenderer.ts +3 -0
- package/src/renderer-host.ts +30 -3
|
@@ -418,14 +418,30 @@ type RuntimeLayerError = RenderError | AssetRuntimeError | SkinError;
|
|
|
418
418
|
return 'recovery failed';
|
|
419
419
|
case 'cleanup-failed':
|
|
420
420
|
return 'cleanup failed';
|
|
421
|
+
case 'scene-data-unavailable':
|
|
422
|
+
return 'scene data unavailable';
|
|
421
423
|
case 'frame-receipt-stale':
|
|
422
424
|
return 'frame receipt stale';
|
|
423
425
|
case 'renderer-contract-failed':
|
|
424
426
|
return 'renderer contract failed';
|
|
425
427
|
case 'observation-unavailable':
|
|
426
428
|
return 'observation unavailable';
|
|
429
|
+
case 'taa-unavailable':
|
|
430
|
+
return 'taa unavailable';
|
|
427
431
|
case 'shadow-invalid-config':
|
|
428
432
|
return 'shadow invalid config';
|
|
433
|
+
case 'environment-source-conflict':
|
|
434
|
+
return 'environment source conflict';
|
|
435
|
+
case 'fog-cardinality':
|
|
436
|
+
return 'fog cardinality';
|
|
437
|
+
case 'taa-caps-insufficient':
|
|
438
|
+
return 'taa caps insufficient';
|
|
439
|
+
case 'environment-generation-failed':
|
|
440
|
+
return 'environment generation failed';
|
|
441
|
+
case 'atmosphere-invalid-parameter':
|
|
442
|
+
return 'atmosphere invalid parameter';
|
|
443
|
+
case 'owner-stage-failed':
|
|
444
|
+
return 'owner stage failed';
|
|
429
445
|
case 'skin-joint-count-exceeded':
|
|
430
446
|
return 'skin joint count exceeded';
|
|
431
447
|
case 'skin-joint-despawned':
|
|
@@ -512,6 +528,18 @@ type RuntimeLayerError = RenderError | AssetRuntimeError | SkinError;
|
|
|
512
528
|
return 'points lines budget exceeded';
|
|
513
529
|
case 'points-lines-prepare-failed':
|
|
514
530
|
return 'points lines prepare failed';
|
|
531
|
+
case 'transmission-capability-missing':
|
|
532
|
+
return 'transmission capability missing';
|
|
533
|
+
case 'projector-binding-failed':
|
|
534
|
+
return 'projector binding failed';
|
|
535
|
+
case 'volume-owner-conflict':
|
|
536
|
+
return 'volume owner conflict';
|
|
537
|
+
case 'volume-density-shape-mismatch':
|
|
538
|
+
return 'volume density shape mismatch';
|
|
539
|
+
case 'volume-invalid-bounds':
|
|
540
|
+
return 'volume invalid bounds';
|
|
541
|
+
case 'volume-invalid-parameters':
|
|
542
|
+
return 'volume invalid parameters';
|
|
515
543
|
}
|
|
516
544
|
}
|
|
517
545
|
expect(exhaustive('equirect-projection-failed')).toBe('equirect projection failed');
|
|
@@ -562,14 +590,30 @@ type RuntimeLayerError = RenderError | AssetRuntimeError | SkinError;
|
|
|
562
590
|
return 'ok';
|
|
563
591
|
case 'cleanup-failed':
|
|
564
592
|
return 'ok';
|
|
593
|
+
case 'scene-data-unavailable':
|
|
594
|
+
return 'ok';
|
|
565
595
|
case 'frame-receipt-stale':
|
|
566
596
|
return 'ok';
|
|
567
597
|
case 'renderer-contract-failed':
|
|
568
598
|
return 'ok';
|
|
569
599
|
case 'observation-unavailable':
|
|
570
600
|
return 'ok';
|
|
601
|
+
case 'taa-unavailable':
|
|
602
|
+
return 'ok';
|
|
571
603
|
case 'shadow-invalid-config':
|
|
572
604
|
return 'ok';
|
|
605
|
+
case 'environment-source-conflict':
|
|
606
|
+
return 'ok';
|
|
607
|
+
case 'fog-cardinality':
|
|
608
|
+
return 'ok';
|
|
609
|
+
case 'taa-caps-insufficient':
|
|
610
|
+
return 'ok';
|
|
611
|
+
case 'environment-generation-failed':
|
|
612
|
+
return 'ok';
|
|
613
|
+
case 'atmosphere-invalid-parameter':
|
|
614
|
+
return 'ok';
|
|
615
|
+
case 'owner-stage-failed':
|
|
616
|
+
return 'ok';
|
|
573
617
|
case 'skin-joint-count-exceeded':
|
|
574
618
|
return 'ok';
|
|
575
619
|
case 'skin-joint-despawned':
|
|
@@ -644,6 +688,18 @@ type RuntimeLayerError = RenderError | AssetRuntimeError | SkinError;
|
|
|
644
688
|
return 'ok';
|
|
645
689
|
case 'points-lines-prepare-failed':
|
|
646
690
|
return 'ok';
|
|
691
|
+
case 'transmission-capability-missing':
|
|
692
|
+
return 'ok';
|
|
693
|
+
case 'projector-binding-failed':
|
|
694
|
+
return 'ok';
|
|
695
|
+
case 'volume-owner-conflict':
|
|
696
|
+
return 'ok';
|
|
697
|
+
case 'volume-density-shape-mismatch':
|
|
698
|
+
return 'ok';
|
|
699
|
+
case 'volume-invalid-bounds':
|
|
700
|
+
return 'ok';
|
|
701
|
+
case 'volume-invalid-parameters':
|
|
702
|
+
return 'ok';
|
|
647
703
|
}
|
|
648
704
|
}
|
|
649
705
|
expect(exhaustive('hdrp-deferred-caps-insufficient')).toBe('ok');
|
|
@@ -12,16 +12,15 @@
|
|
|
12
12
|
// not actually happen — the 4th texture (heightTexture) would silently fall
|
|
13
13
|
// through.
|
|
14
14
|
//
|
|
15
|
-
// Scope of the gate — the three
|
|
15
|
+
// Scope of the gate — the three user-authored base texture fields:
|
|
16
16
|
// baseColorTexture / metallicRoughnessTexture / normalTexture
|
|
17
17
|
// These are the fields `derive(default-standard-pbr).textureFieldNames`
|
|
18
18
|
// produces and that w7/w8 route through iteration.
|
|
19
19
|
//
|
|
20
20
|
// Deliberately NOT gated (legitimate residual naming):
|
|
21
|
-
// - emissiveTexture / occlusionTexture:
|
|
22
|
-
//
|
|
23
|
-
//
|
|
24
|
-
// them there is the engine-managed region, not user-region hardcoding.
|
|
21
|
+
// - emissiveTexture / occlusionTexture: legacy engine-owned snapshot fields
|
|
22
|
+
// still have named reads, while the production Standard BGL no longer adds
|
|
23
|
+
// a duplicate lightmap region.
|
|
25
24
|
// - USER_REGION_TEXTURE_FIELDS in derive-paramschema.ts: the 3-field
|
|
26
25
|
// register-time under-declaration validator (charter P3 safety net from
|
|
27
26
|
// the 4.3 blending regression). Orthogonal to binding; lives in a
|
|
@@ -216,10 +216,10 @@ describe('w16: 4-path compressed-fixture loading', () => {
|
|
|
216
216
|
guid: GUID_TEX,
|
|
217
217
|
kind: 'texture',
|
|
218
218
|
payload: {
|
|
219
|
-
width: 4,
|
|
220
|
-
height: 4,
|
|
219
|
+
shape: { viewDimension: '2d', extent: { width: 4, height: 4 } },
|
|
221
220
|
format: 'rgba8unorm',
|
|
222
221
|
colorSpace: 'srgb',
|
|
222
|
+
mips: { kind: 'none' },
|
|
223
223
|
},
|
|
224
224
|
refs: [],
|
|
225
225
|
artifacts: {
|