diff --git a/openVulkanoCpp/Host/GraphicsAppManager.cpp b/openVulkanoCpp/Host/GraphicsAppManager.cpp index 1c467d4..10c76fc 100644 --- a/openVulkanoCpp/Host/GraphicsAppManager.cpp +++ b/openVulkanoCpp/Host/GraphicsAppManager.cpp @@ -32,6 +32,24 @@ namespace openVulkanoCpp window->SetWindowHandler(this); } + GraphicsAppManager::GraphicsAppManager(IGraphicsApp* app, IWindow* window, RenderAPI::RenderApi renderApi) + : app(app), renderApi(renderApi) + { + Utils::SetThreadName("Main"); + Logger::SetupLogger(); + if (!app) + { + constexpr auto msg = "The app must not be null!"; + Logger::MANAGER->error(msg); + throw std::runtime_error(msg); + } + //platform = std::unique_ptr(PlatformProducer::CreatePlatform(renderApi)); + this->window = window; + renderer = std::unique_ptr(PlatformProducer::CreateRenderManager(renderApi)); + app->SetGraphicsAppManager(this); + window->SetWindowHandler(this); + } + GraphicsAppManager::~GraphicsAppManager() noexcept { if (windowTitleFormat.empty()) return; @@ -73,7 +91,7 @@ namespace openVulkanoCpp { Logger::MANAGER->info("Initializing ..."); app->Init(); - platform->Init(); + if (platform) platform->Init(); window->Init(renderApi); //TODO restore window settings if there are any set renderer->Init(static_cast(this), window); @@ -100,7 +118,7 @@ namespace openVulkanoCpp void GraphicsAppManager::LoopTick() { - platform->Tick(); + if (platform) platform->Tick(); if (paused) { // The rendering is paused // No need to burn cpu time if the app is paused diff --git a/openVulkanoCpp/Host/GraphicsAppManager.hpp b/openVulkanoCpp/Host/GraphicsAppManager.hpp index 9076acf..8bab42b 100644 --- a/openVulkanoCpp/Host/GraphicsAppManager.hpp +++ b/openVulkanoCpp/Host/GraphicsAppManager.hpp @@ -39,6 +39,8 @@ namespace openVulkanoCpp public: explicit GraphicsAppManager(IGraphicsApp* app, RenderAPI::RenderApi renderApi = RenderAPI::Vulkan); + explicit GraphicsAppManager(IGraphicsApp* app, IWindow* window, RenderAPI::RenderApi renderApi = RenderAPI::Vulkan); + ~GraphicsAppManager() noexcept override; public: // Getter @@ -62,7 +64,7 @@ namespace openVulkanoCpp public: void Run() override; - private: + //private: void StartUp(); void Loop();