feat: add mesh component editors and scene hierarchy serialization
This commit is contained in:
@@ -554,7 +554,7 @@ TEST_F(SceneTest, SaveAndLoad_PreservesMeshComponentPaths) {
|
||||
std::filesystem::remove(scenePath);
|
||||
}
|
||||
|
||||
TEST(Scene_ProjectSample, MainSceneLoadsBackpackMeshAsset) {
|
||||
TEST(Scene_ProjectSample, BackpackSceneLoadsBackpackMeshAsset) {
|
||||
namespace fs = std::filesystem;
|
||||
|
||||
XCEngine::Resources::ResourceManager& resourceManager = XCEngine::Resources::ResourceManager::Get();
|
||||
@@ -580,11 +580,11 @@ TEST(Scene_ProjectSample, MainSceneLoadsBackpackMeshAsset) {
|
||||
|
||||
const fs::path repositoryRoot = GetRepositoryRoot();
|
||||
const fs::path projectRoot = repositoryRoot / "project";
|
||||
const fs::path mainScenePath = projectRoot / "Assets" / "Scenes" / "Main.xc";
|
||||
const fs::path backpackScenePath = projectRoot / "Assets" / "Scenes" / "Backpack.xc";
|
||||
const fs::path assimpDllPath = repositoryRoot / "engine" / "third_party" / "assimp" / "bin" / "assimp-vc143-mt.dll";
|
||||
const fs::path backpackMeshPath = projectRoot / "Assets" / "Models" / "backpack" / "backpack.obj";
|
||||
|
||||
ASSERT_TRUE(fs::exists(mainScenePath));
|
||||
ASSERT_TRUE(fs::exists(backpackScenePath));
|
||||
ASSERT_TRUE(fs::exists(assimpDllPath));
|
||||
ASSERT_TRUE(fs::exists(backpackMeshPath));
|
||||
|
||||
@@ -617,7 +617,7 @@ TEST(Scene_ProjectSample, MainSceneLoadsBackpackMeshAsset) {
|
||||
ASSERT_GT(directMeshHandle->GetVertexCount(), 0u);
|
||||
|
||||
Scene loadedScene;
|
||||
loadedScene.Load(mainScenePath.string());
|
||||
loadedScene.Load(backpackScenePath.string());
|
||||
|
||||
GameObject* backpackObject = loadedScene.Find("BackpackMesh");
|
||||
ASSERT_NE(backpackObject, nullptr);
|
||||
@@ -634,4 +634,20 @@ TEST(Scene_ProjectSample, MainSceneLoadsBackpackMeshAsset) {
|
||||
EXPECT_EQ(meshFilter->GetMeshPath(), "Assets/Models/backpack/backpack.obj");
|
||||
}
|
||||
|
||||
TEST(Scene_ProjectSample, MainSceneStaysLightweightForEditorStartup) {
|
||||
namespace fs = std::filesystem;
|
||||
|
||||
const fs::path repositoryRoot = GetRepositoryRoot();
|
||||
const fs::path mainScenePath = repositoryRoot / "project" / "Assets" / "Scenes" / "Main.xc";
|
||||
|
||||
ASSERT_TRUE(fs::exists(mainScenePath));
|
||||
|
||||
Scene loadedScene;
|
||||
loadedScene.Load(mainScenePath.string());
|
||||
|
||||
EXPECT_NE(loadedScene.Find("Main Camera"), nullptr);
|
||||
EXPECT_NE(loadedScene.Find("Directional Light"), nullptr);
|
||||
EXPECT_EQ(loadedScene.Find("BackpackMesh"), nullptr);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
Reference in New Issue
Block a user