From a5b02ba3f4d70836934fc6413b21422b68caae16 Mon Sep 17 00:00:00 2001 From: Untold Engine Date: Tue, 20 Oct 2026 06:50:18 -0700 Subject: [PATCH] Make render-test scenes editable in UntoldEditor Reshape Tests/UntoldEngineRenderTests/Resources/ to be GameData-shaped (untoldengine create layout) so UntoldEditor recognizes it as a project and UnitTestRender.untoldscene/Models can be browsed and edited there instead of hand-editing JSON. - Move Scenes, Models, Animations, Materials under a new Resources/GameData/ directory; fix the Guassians -> Gaussians typo along the way. Materials moves too even though it's not in ProjectLayout.gameDataCategories, since LoadingSystem resolves it relative to assetBasePath and the editor itself expects it alongside GameData's other categories. - Add a minimal Resources/project.yml placeholder: UntoldEditor's openProject() gates on .xcodeproj or project.yml existing before it even looks for GameData. - Update DemoUtils.demoResourcesURL() and two hardcoded CLI/engine test fixture paths to the new GameData-relative locations (they read straight off disk, not through a bundled resource lookup). - Leave BaseRenderSetup's assetBasePath pointed at the bundle root: SwiftPM's .process("Resources") flattens the whole tree regardless of GameData nesting, and the existing flat-bundle fallback in getResourceURL already handles that. --- Sources/Demos/DemoUtils/DemoUtils.swift | 2 +- Tests/UntoldEngineRenderTests/BaseRenderSetup.swift | 4 ++++ .../{ => GameData}/Animations/idle/idle.untold | Bin .../{ => GameData}/Animations/idle/idle.usdz | Bin .../Animations/running/running.untold | Bin .../{ => GameData}/Animations/running/running.usdz | Bin .../Gaussians}/test_gaussians.ply | 0 .../Materials/Bricks066_4K-JPG/Bricks066.png | Bin .../Bricks066_4K-JPG/Bricks066_4K-JPG.blend | Bin .../Bricks066_4K-JPG/Bricks066_4K-JPG.mtlx | 0 .../Bricks066_4K-JPG/Bricks066_4K-JPG.tres | 0 .../Bricks066_4K-JPG/Bricks066_4K-JPG.usdc | Bin .../Bricks066_4K-JPG_AmbientOcclusion.jpg | Bin .../Bricks066_4K-JPG/Bricks066_4K-JPG_Color.jpg | Bin .../Bricks066_4K-JPG_Displacement.jpg | Bin .../Bricks066_4K-JPG/Bricks066_4K-JPG_NormalDX.jpg | Bin .../Bricks066_4K-JPG/Bricks066_4K-JPG_NormalGL.jpg | Bin .../Bricks066_4K-JPG/Bricks066_4K-JPG_Roughness.jpg | Bin .../MetalCorrodedHeavy001_COL_2K_METALNESS.jpg | Bin .../MetalCorrodedHeavy001_DISP16_2K_METALNESS.tiff | Bin .../MetalCorrodedHeavy001_DISP_2K_METALNESS.jpg | Bin ...MetalCorrodedHeavy001_METALNESS_2K_METALNESS.jpg | Bin .../MetalCorrodedHeavy001_NRM16_2K_METALNESS.tiff | Bin .../MetalCorrodedHeavy001_NRM_2K_METALNESS.jpg | Bin .../MetalCorrodedHeavy001_Preview1.png | Bin ...MetalCorrodedHeavy001_ROUGHNESS_2K_METALNESS.jpg | Bin .../Models/ball/Textures/Ball Texture_Diffuse.jpg | Bin .../Models/ball/Textures/Ball_Normal_Map.png | Bin .../{ => GameData}/Models/ball/ball.untold | Bin .../Resources/{ => GameData}/Models/ball/ball.usdz | Bin .../Models/blueshirtplayer/blueshirtplayer.usdz | Bin .../Models/cubeparentchild/cubeparentchild.untold | Bin .../cubeparentchild/cubeparentchild.validation.json | 0 .../{ => GameData}/Models/grass/Textures/grass.png | Bin .../{ => GameData}/Models/grass/grass.untold | Bin .../{ => GameData}/Models/grass/grass.usdz | Bin .../Models/redplayer/Textures/soccer-player-0.png | Bin .../Models/redplayer/redplayer.untold | Bin .../{ => GameData}/Models/redplayer/redplayer.usdz | Bin .../Models/redplayer/redplayer.validation.json | 0 .../Models/singlecube/singlecube.untold | Bin .../Models/singlecube/singlecube.validation.json | 0 .../stadium/Textures/soccer-stadium.vox-0.png | Bin .../stadium/Textures/soccer-stadium.vox-1.png | Bin .../stadium/Textures/soccer-stadium.vox-2.png | Bin .../stadium/Textures/soccer-stadium.vox-3.png | Bin .../stadium/Textures/soccer-stadium.vox-4.png | Bin .../stadium/Textures/soccer-stadium.vox-5.png | Bin .../stadium/Textures/soccer-stadium.vox-6.png | Bin .../{ => GameData}/Models/stadium/stadium.untold | Bin .../{ => GameData}/Models/stadium/stadium.usdz | Bin .../Models/stadium/stadium.validation.json | 0 .../Scenes/UnitTestRender.untoldscene | 0 Tests/UntoldEngineRenderTests/Resources/project.yml | 6 ++++++ .../UntoldEngineTests/UntoldAssetPatcherTests.swift | 2 +- .../UntoldEngineCLITests/BakeLODsCommandTests.swift | 2 +- 56 files changed, 13 insertions(+), 3 deletions(-) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Animations/idle/idle.untold (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Animations/idle/idle.usdz (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Animations/running/running.untold (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Animations/running/running.usdz (100%) rename Tests/UntoldEngineRenderTests/Resources/{Guassians => GameData/Gaussians}/test_gaussians.ply (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/Bricks066_4K-JPG/Bricks066.png (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.blend (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.mtlx (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.tres (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.usdc (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_AmbientOcclusion.jpg (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_Color.jpg (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_Displacement.jpg (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_NormalDX.jpg (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_NormalGL.jpg (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_Roughness.jpg (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_COL_2K_METALNESS.jpg (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_DISP16_2K_METALNESS.tiff (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_DISP_2K_METALNESS.jpg (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_METALNESS_2K_METALNESS.jpg (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_NRM16_2K_METALNESS.tiff (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_NRM_2K_METALNESS.jpg (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_Preview1.png (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_ROUGHNESS_2K_METALNESS.jpg (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/ball/Textures/Ball Texture_Diffuse.jpg (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/ball/Textures/Ball_Normal_Map.png (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/ball/ball.untold (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/ball/ball.usdz (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/blueshirtplayer/blueshirtplayer.usdz (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/cubeparentchild/cubeparentchild.untold (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/cubeparentchild/cubeparentchild.validation.json (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/grass/Textures/grass.png (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/grass/grass.untold (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/grass/grass.usdz (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/redplayer/Textures/soccer-player-0.png (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/redplayer/redplayer.untold (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/redplayer/redplayer.usdz (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/redplayer/redplayer.validation.json (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/singlecube/singlecube.untold (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/singlecube/singlecube.validation.json (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/stadium/Textures/soccer-stadium.vox-0.png (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/stadium/Textures/soccer-stadium.vox-1.png (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/stadium/Textures/soccer-stadium.vox-2.png (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/stadium/Textures/soccer-stadium.vox-3.png (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/stadium/Textures/soccer-stadium.vox-4.png (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/stadium/Textures/soccer-stadium.vox-5.png (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/stadium/Textures/soccer-stadium.vox-6.png (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/stadium/stadium.untold (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/stadium/stadium.usdz (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Models/stadium/stadium.validation.json (100%) rename Tests/UntoldEngineRenderTests/Resources/{ => GameData}/Scenes/UnitTestRender.untoldscene (100%) create mode 100644 Tests/UntoldEngineRenderTests/Resources/project.yml diff --git a/Sources/Demos/DemoUtils/DemoUtils.swift b/Sources/Demos/DemoUtils/DemoUtils.swift index 85880af6b..8f257ebfb 100644 --- a/Sources/Demos/DemoUtils/DemoUtils.swift +++ b/Sources/Demos/DemoUtils/DemoUtils.swift @@ -24,7 +24,7 @@ .deletingLastPathComponent() .deletingLastPathComponent() .deletingLastPathComponent() - .appendingPathComponent("Tests/UntoldEngineRenderTests/Resources") + .appendingPathComponent("Tests/UntoldEngineRenderTests/Resources/GameData") } // MARK: - Engine Configuration diff --git a/Tests/UntoldEngineRenderTests/BaseRenderSetup.swift b/Tests/UntoldEngineRenderTests/BaseRenderSetup.swift index 348284594..cb60d8b7f 100644 --- a/Tests/UntoldEngineRenderTests/BaseRenderSetup.swift +++ b/Tests/UntoldEngineRenderTests/BaseRenderSetup.swift @@ -155,6 +155,10 @@ class BaseRenderSetup: XCTestCase { resetGlobalEngineState() ambientIntensity = 0.4 + // SwiftPM's `.process("Resources")` flattens the whole Resources/ tree (including + // GameData/) into the bundle root -- there is no GameData subfolder to offset into + // here. getResourceURL()'s flat-bundle fallback already resolves names against + // assetBasePath directly, so point it straight at the bundle root. let bundleURL = Bundle.module.resourceURL assetBasePath = bundleURL diff --git a/Tests/UntoldEngineRenderTests/Resources/Animations/idle/idle.untold b/Tests/UntoldEngineRenderTests/Resources/GameData/Animations/idle/idle.untold similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Animations/idle/idle.untold rename to Tests/UntoldEngineRenderTests/Resources/GameData/Animations/idle/idle.untold diff --git a/Tests/UntoldEngineRenderTests/Resources/Animations/idle/idle.usdz b/Tests/UntoldEngineRenderTests/Resources/GameData/Animations/idle/idle.usdz similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Animations/idle/idle.usdz rename to Tests/UntoldEngineRenderTests/Resources/GameData/Animations/idle/idle.usdz diff --git a/Tests/UntoldEngineRenderTests/Resources/Animations/running/running.untold b/Tests/UntoldEngineRenderTests/Resources/GameData/Animations/running/running.untold similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Animations/running/running.untold rename to Tests/UntoldEngineRenderTests/Resources/GameData/Animations/running/running.untold diff --git a/Tests/UntoldEngineRenderTests/Resources/Animations/running/running.usdz b/Tests/UntoldEngineRenderTests/Resources/GameData/Animations/running/running.usdz similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Animations/running/running.usdz rename to Tests/UntoldEngineRenderTests/Resources/GameData/Animations/running/running.usdz diff --git a/Tests/UntoldEngineRenderTests/Resources/Guassians/test_gaussians.ply b/Tests/UntoldEngineRenderTests/Resources/GameData/Gaussians/test_gaussians.ply similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Guassians/test_gaussians.ply rename to Tests/UntoldEngineRenderTests/Resources/GameData/Gaussians/test_gaussians.ply diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066.png b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066.png similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066.png rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066.png diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.blend b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.blend similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.blend rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.blend diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.mtlx b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.mtlx similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.mtlx rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.mtlx diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.tres b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.tres similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.tres rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.tres diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.usdc b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.usdc similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.usdc rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG.usdc diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_AmbientOcclusion.jpg b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_AmbientOcclusion.jpg similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_AmbientOcclusion.jpg rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_AmbientOcclusion.jpg diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_Color.jpg b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_Color.jpg similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_Color.jpg rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_Color.jpg diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_Displacement.jpg b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_Displacement.jpg similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_Displacement.jpg rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_Displacement.jpg diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_NormalDX.jpg b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_NormalDX.jpg similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_NormalDX.jpg rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_NormalDX.jpg diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_NormalGL.jpg b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_NormalGL.jpg similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_NormalGL.jpg rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_NormalGL.jpg diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_Roughness.jpg b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_Roughness.jpg similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_Roughness.jpg rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/Bricks066_4K-JPG/Bricks066_4K-JPG_Roughness.jpg diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_COL_2K_METALNESS.jpg b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_COL_2K_METALNESS.jpg similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_COL_2K_METALNESS.jpg rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_COL_2K_METALNESS.jpg diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_DISP16_2K_METALNESS.tiff b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_DISP16_2K_METALNESS.tiff similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_DISP16_2K_METALNESS.tiff rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_DISP16_2K_METALNESS.tiff diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_DISP_2K_METALNESS.jpg b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_DISP_2K_METALNESS.jpg similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_DISP_2K_METALNESS.jpg rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_DISP_2K_METALNESS.jpg diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_METALNESS_2K_METALNESS.jpg b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_METALNESS_2K_METALNESS.jpg similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_METALNESS_2K_METALNESS.jpg rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_METALNESS_2K_METALNESS.jpg diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_NRM16_2K_METALNESS.tiff b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_NRM16_2K_METALNESS.tiff similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_NRM16_2K_METALNESS.tiff rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_NRM16_2K_METALNESS.tiff diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_NRM_2K_METALNESS.jpg b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_NRM_2K_METALNESS.jpg similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_NRM_2K_METALNESS.jpg rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_NRM_2K_METALNESS.jpg diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_Preview1.png b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_Preview1.png similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_Preview1.png rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_Preview1.png diff --git a/Tests/UntoldEngineRenderTests/Resources/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_ROUGHNESS_2K_METALNESS.jpg b/Tests/UntoldEngineRenderTests/Resources/GameData/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_ROUGHNESS_2K_METALNESS.jpg similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_ROUGHNESS_2K_METALNESS.jpg rename to Tests/UntoldEngineRenderTests/Resources/GameData/Materials/MetalCorrodedHeavy001/MetalCorrodedHeavy001_ROUGHNESS_2K_METALNESS.jpg diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/ball/Textures/Ball Texture_Diffuse.jpg b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/ball/Textures/Ball Texture_Diffuse.jpg similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/ball/Textures/Ball Texture_Diffuse.jpg rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/ball/Textures/Ball Texture_Diffuse.jpg diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/ball/Textures/Ball_Normal_Map.png b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/ball/Textures/Ball_Normal_Map.png similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/ball/Textures/Ball_Normal_Map.png rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/ball/Textures/Ball_Normal_Map.png diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/ball/ball.untold b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/ball/ball.untold similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/ball/ball.untold rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/ball/ball.untold diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/ball/ball.usdz b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/ball/ball.usdz similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/ball/ball.usdz rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/ball/ball.usdz diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/blueshirtplayer/blueshirtplayer.usdz b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/blueshirtplayer/blueshirtplayer.usdz similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/blueshirtplayer/blueshirtplayer.usdz rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/blueshirtplayer/blueshirtplayer.usdz diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/cubeparentchild/cubeparentchild.untold b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/cubeparentchild/cubeparentchild.untold similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/cubeparentchild/cubeparentchild.untold rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/cubeparentchild/cubeparentchild.untold diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/cubeparentchild/cubeparentchild.validation.json b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/cubeparentchild/cubeparentchild.validation.json similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/cubeparentchild/cubeparentchild.validation.json rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/cubeparentchild/cubeparentchild.validation.json diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/grass/Textures/grass.png b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/grass/Textures/grass.png similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/grass/Textures/grass.png rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/grass/Textures/grass.png diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/grass/grass.untold b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/grass/grass.untold similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/grass/grass.untold rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/grass/grass.untold diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/grass/grass.usdz b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/grass/grass.usdz similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/grass/grass.usdz rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/grass/grass.usdz diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/redplayer/Textures/soccer-player-0.png b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/redplayer/Textures/soccer-player-0.png similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/redplayer/Textures/soccer-player-0.png rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/redplayer/Textures/soccer-player-0.png diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/redplayer/redplayer.untold b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/redplayer/redplayer.untold similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/redplayer/redplayer.untold rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/redplayer/redplayer.untold diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/redplayer/redplayer.usdz b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/redplayer/redplayer.usdz similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/redplayer/redplayer.usdz rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/redplayer/redplayer.usdz diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/redplayer/redplayer.validation.json b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/redplayer/redplayer.validation.json similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/redplayer/redplayer.validation.json rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/redplayer/redplayer.validation.json diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/singlecube/singlecube.untold b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/singlecube/singlecube.untold similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/singlecube/singlecube.untold rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/singlecube/singlecube.untold diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/singlecube/singlecube.validation.json b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/singlecube/singlecube.validation.json similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/singlecube/singlecube.validation.json rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/singlecube/singlecube.validation.json diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/stadium/Textures/soccer-stadium.vox-0.png b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/Textures/soccer-stadium.vox-0.png similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/stadium/Textures/soccer-stadium.vox-0.png rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/Textures/soccer-stadium.vox-0.png diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/stadium/Textures/soccer-stadium.vox-1.png b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/Textures/soccer-stadium.vox-1.png similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/stadium/Textures/soccer-stadium.vox-1.png rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/Textures/soccer-stadium.vox-1.png diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/stadium/Textures/soccer-stadium.vox-2.png b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/Textures/soccer-stadium.vox-2.png similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/stadium/Textures/soccer-stadium.vox-2.png rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/Textures/soccer-stadium.vox-2.png diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/stadium/Textures/soccer-stadium.vox-3.png b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/Textures/soccer-stadium.vox-3.png similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/stadium/Textures/soccer-stadium.vox-3.png rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/Textures/soccer-stadium.vox-3.png diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/stadium/Textures/soccer-stadium.vox-4.png b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/Textures/soccer-stadium.vox-4.png similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/stadium/Textures/soccer-stadium.vox-4.png rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/Textures/soccer-stadium.vox-4.png diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/stadium/Textures/soccer-stadium.vox-5.png b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/Textures/soccer-stadium.vox-5.png similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/stadium/Textures/soccer-stadium.vox-5.png rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/Textures/soccer-stadium.vox-5.png diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/stadium/Textures/soccer-stadium.vox-6.png b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/Textures/soccer-stadium.vox-6.png similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/stadium/Textures/soccer-stadium.vox-6.png rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/Textures/soccer-stadium.vox-6.png diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/stadium/stadium.untold b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/stadium.untold similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/stadium/stadium.untold rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/stadium.untold diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/stadium/stadium.usdz b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/stadium.usdz similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/stadium/stadium.usdz rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/stadium.usdz diff --git a/Tests/UntoldEngineRenderTests/Resources/Models/stadium/stadium.validation.json b/Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/stadium.validation.json similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Models/stadium/stadium.validation.json rename to Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/stadium.validation.json diff --git a/Tests/UntoldEngineRenderTests/Resources/Scenes/UnitTestRender.untoldscene b/Tests/UntoldEngineRenderTests/Resources/GameData/Scenes/UnitTestRender.untoldscene similarity index 100% rename from Tests/UntoldEngineRenderTests/Resources/Scenes/UnitTestRender.untoldscene rename to Tests/UntoldEngineRenderTests/Resources/GameData/Scenes/UnitTestRender.untoldscene diff --git a/Tests/UntoldEngineRenderTests/Resources/project.yml b/Tests/UntoldEngineRenderTests/Resources/project.yml new file mode 100644 index 000000000..9b6f88058 --- /dev/null +++ b/Tests/UntoldEngineRenderTests/Resources/project.yml @@ -0,0 +1,6 @@ +# This is not a buildable XcodeGen spec -- these are render-test fixtures, not an app. +# UntoldEditor's openProject() only checks for .xcodeproj or project.yml to accept a +# folder as a project (see EditorView+Project.swift); this file exists solely to satisfy +# that check so UnitTestRender.untoldscene and GameData/Models/* can be browsed and edited +# in the editor like any other project. +name: Resources diff --git a/Tests/UntoldEngineTests/UntoldAssetPatcherTests.swift b/Tests/UntoldEngineTests/UntoldAssetPatcherTests.swift index 8d263e481..f25eb2cfc 100644 --- a/Tests/UntoldEngineTests/UntoldAssetPatcherTests.swift +++ b/Tests/UntoldEngineTests/UntoldAssetPatcherTests.swift @@ -513,7 +513,7 @@ final class UntoldAssetPatcherTests: XCTestCase { let sourceURL = URL(fileURLWithPath: #filePath) .deletingLastPathComponent() .deletingLastPathComponent() - .appendingPathComponent("UntoldEngineRenderTests/Resources/Models/singlecube/singlecube.untold") + .appendingPathComponent("UntoldEngineRenderTests/Resources/GameData/Models/singlecube/singlecube.untold") guard FileManager.default.fileExists(atPath: sourceURL.path) else { throw XCTSkip("cooked fixture not found at \(sourceURL.path)") } diff --git a/Tools/UntoldEngineCLI/Tests/UntoldEngineCLITests/BakeLODsCommandTests.swift b/Tools/UntoldEngineCLI/Tests/UntoldEngineCLITests/BakeLODsCommandTests.swift index 752594c98..35ed2f92d 100644 --- a/Tools/UntoldEngineCLI/Tests/UntoldEngineCLITests/BakeLODsCommandTests.swift +++ b/Tools/UntoldEngineCLI/Tests/UntoldEngineCLITests/BakeLODsCommandTests.swift @@ -39,7 +39,7 @@ final class BakeLODsCommandTests: XCTestCase { .deletingLastPathComponent() // UntoldEngineCLI .deletingLastPathComponent() // Tools .deletingLastPathComponent() // repository root - .appendingPathComponent("Tests/UntoldEngineRenderTests/Resources/Models/stadium/stadium.untold") + .appendingPathComponent("Tests/UntoldEngineRenderTests/Resources/GameData/Models/stadium/stadium.untold") guard FileManager.default.fileExists(atPath: source.path) else { throw XCTSkip("cooked fixture not found at \(source.path)") }