diff --git a/.idea/vcs.xml b/.idea/vcs.xml index b75e802..875a08c 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -2,6 +2,8 @@ + + diff --git a/CMakeLists.txt b/CMakeLists.txt index 1f961bb..96c84ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,7 +49,7 @@ FetchContent_Declare( FetchContent_MakeAvailable(Catch2 spdlog) -target_link_libraries(LayoutEngineTests PRIVATE Catch2::Catch2WithMain spdlog::spdlog) +target_link_libraries(LayoutEngineTests PRIVATE Catch2::Catch2WithMain spdlog::spdlog_header_only) include(CTest) include(Catch) @@ -311,6 +311,8 @@ if(BUILD_GAME) src/engine/renderer/loader/async/AssetLoader.cpp src/engine/renderer/loader/async/AssetLoader.h src/engine/renderer/loader/async/AssetLoadingProgressEvent.h + src/engine/core/scenes/Scene.cpp + src/engine/core/scenes/Scene.h ) target_compile_options(Dicewars_Siedler PRIVATE -Wall @@ -334,7 +336,7 @@ if(BUILD_GAME) glad OpenGL::GL ${FREETYPE_LIBRARIES} - spdlog::spdlog + spdlog::spdlog_header_only ) endif() diff --git a/src/engine/renderer/loader/OBJLoader.cpp b/src/engine/renderer/loader/OBJLoader.cpp index 8cbc9ff..0412dd5 100644 --- a/src/engine/renderer/loader/OBJLoader.cpp +++ b/src/engine/renderer/loader/OBJLoader.cpp @@ -159,7 +159,7 @@ RawModelData OBJLoader::loadModel(const std::string &modelPath) { return {"", subModels}; } -TexturedModel OBJLoader::uploadToGPU(RawModelData &rawModelData) { +TexturedModel OBJLoader::uploadToGPU(const RawModelData &rawModelData) { Loader loader = Loader::instance(); std::vector subModels; diff --git a/src/engine/renderer/loader/OBJLoader.h b/src/engine/renderer/loader/OBJLoader.h index 2b4134d..d075502 100644 --- a/src/engine/renderer/loader/OBJLoader.h +++ b/src/engine/renderer/loader/OBJLoader.h @@ -16,7 +16,7 @@ class OBJLoader { public: static std::shared_ptr loadModel(const std::string &modelPath, const std::string &texturePath, Loader &loader); static RawModelData loadModel(const std::string &modelPath); - static TexturedModel uploadToGPU(RawModelData &rawModelData); + static TexturedModel uploadToGPU(const RawModelData &rawModelData); }; diff --git a/src/engine/renderer/loader/TextureLoader.cpp b/src/engine/renderer/loader/TextureLoader.cpp index ba45e1c..5f3c6f0 100644 --- a/src/engine/renderer/loader/TextureLoader.cpp +++ b/src/engine/renderer/loader/TextureLoader.cpp @@ -86,9 +86,8 @@ TextureData TextureLoader::loadTextureData(const std::string &path, bool flipVer return textureData; } -Texture2D TextureLoader::uploadToGPU(RawTextureData &rawTextureData) { +Texture2D TextureLoader::uploadToGPU(const RawTextureData &rawTextureData) { Texture2D texture; - texture.pixels = rawTextureData.pixels.data(); texture.width = rawTextureData.width; texture.height = rawTextureData.height; texture.channels = rawTextureData.channels; @@ -119,7 +118,7 @@ Texture2D TextureLoader::uploadToGPU(RawTextureData &rawTextureData) { 0, format, GL_UNSIGNED_BYTE, - texture.pixels + rawTextureData.pixels.data() ); glGenerateMipmap(GL_TEXTURE_2D); diff --git a/src/engine/renderer/loader/TextureLoader.h b/src/engine/renderer/loader/TextureLoader.h index e34ef00..ee2b918 100644 --- a/src/engine/renderer/loader/TextureLoader.h +++ b/src/engine/renderer/loader/TextureLoader.h @@ -17,8 +17,8 @@ class TextureLoader { public: static Texture2D loadTexture(const std::string& path, bool flipVertically= true); static RawTextureData loadRawTextureData(const std::string &path, bool flipVertically = true); - static TextureData loadTextureData(const std::string &path, bool flipVertically = true, TextureType textureType); - static Texture2D uploadToGPU(RawTextureData &rawTextureData); + static TextureData loadTextureData(const std::string &path, bool flipVertically = true, TextureType textureType = TextureType::Diffuse); + static Texture2D uploadToGPU(const RawTextureData &rawTextureData); static Texture2D uploadToGPU(TextureData& textureData); static void free(Texture2D& texture); }; diff --git a/src/engine/renderer/loader/async/AssetLoader.cpp b/src/engine/renderer/loader/async/AssetLoader.cpp index 28f35e0..d1dc4c2 100644 --- a/src/engine/renderer/loader/async/AssetLoader.cpp +++ b/src/engine/renderer/loader/async/AssetLoader.cpp @@ -147,14 +147,14 @@ nlohmann::json AssetLoader::loadJson(const std::string &path) { void AssetLoader::processUploadQueue(int maxPerFrame) { auto uploadQueue = determineUploadQueue(maxPerFrame); for (const auto& intermediateAsset : uploadQueue) { - std::visit([](T0& rawData) -> IntermediateAsset { + std::visit([](const T0& rawData) -> void { using T = std::decay_t; if constexpr (std::is_same_v) { - return processIntermediateTextureAsset(rawData); + processIntermediateTextureAsset(rawData); } else if constexpr (std::is_same_v) { - return processIntermediateModelAsset(rawData); + processIntermediateModelAsset(rawData); } else { - return processIntermediateStagedModelAsset(rawData); + processIntermediateStagedModelAsset(rawData); } }, intermediateAsset); ++loaded; @@ -175,12 +175,12 @@ std::vector AssetLoader::determineUploadQueue(const int maxPe return results; } -void AssetLoader::processIntermediateTextureAsset(RawTextureData &textureData) { +void AssetLoader::processIntermediateTextureAsset(const RawTextureData &textureData) { const Texture2D texture = TextureLoader::uploadToGPU(textureData); AssetManager::insertLoadedTexture(textureData.name, texture); } -void AssetLoader::processIntermediateModelAsset(RawModelData &modelData) { +void AssetLoader::processIntermediateModelAsset(const RawModelData &modelData) { const TexturedModel texturedModel = OBJLoader::uploadToGPU(modelData); AssetManager::insertTexturedModel(modelData.name, texturedModel); } diff --git a/src/engine/renderer/loader/async/AssetLoader.h b/src/engine/renderer/loader/async/AssetLoader.h index d430bd9..a7448e0 100644 --- a/src/engine/renderer/loader/async/AssetLoader.h +++ b/src/engine/renderer/loader/async/AssetLoader.h @@ -72,8 +72,8 @@ private: static nlohmann::json loadJson(const std::string& path); std::vector determineUploadQueue(int maxPerFrame); - static void processIntermediateTextureAsset(RawTextureData &textureData); - static void processIntermediateModelAsset(RawModelData &modelData); + static void processIntermediateTextureAsset(const RawTextureData &textureData); + static void processIntermediateModelAsset(const RawModelData &modelData); static void processIntermediateStagedModelAsset(const RawStagedModelData &stagedModelData); // Render-Thread schreibt, Loading Thread liest diff --git a/src/game/DicewarsApp.cpp b/src/game/DicewarsApp.cpp index f9aca08..c851281 100644 --- a/src/game/DicewarsApp.cpp +++ b/src/game/DicewarsApp.cpp @@ -8,11 +8,5 @@ #include "UILayer.h" DicewarsApp::DicewarsApp() { - gameMode = std::make_shared(); - GameLayer* gamelayer = new GameLayer(); - gamelayer->setGameMode(gameMode); - pushLayer(gamelayer); - UILayer* uiLayer = new UILayer(); - uiLayer->setGameMode(gameMode); - pushLayer(uiLayer); + } diff --git a/src/game/DicewarsApp.h b/src/game/DicewarsApp.h index 53d97b9..079133b 100644 --- a/src/game/DicewarsApp.h +++ b/src/game/DicewarsApp.h @@ -11,8 +11,6 @@ class DicewarsApp: public Application { -private: - std::shared_ptr gameMode; public: DicewarsApp(); }; diff --git a/src/main.cpp b/src/main.cpp index 617294e..be06024 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,7 +2,7 @@ #include "engine/core/Application.h" #include "game/DicewarsApp.h" -#include "spdlog/spdlog-inl.h" +#include "spdlog/spdlog.h" // ← nur das // TIP To Run code, press or click the icon in the gutter. Application* CreateApplication()