From 8dd179e78414a4f8e74efd9373e05c50f56d520d Mon Sep 17 00:00:00 2001 From: SweetId <2630750+SweetId@users.noreply.github.com> Date: Mon, 16 Oct 2023 21:03:46 -0400 Subject: [PATCH] re-adding editorbaseapplication singleton --- .../Core/Application/BaseApplication.hpp | 5 ++++- .../Core/Application/BaseApplication.cpp | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/include/NazaraEditor/Core/Application/BaseApplication.hpp b/include/NazaraEditor/Core/Application/BaseApplication.hpp index 221e97d..30df376 100644 --- a/include/NazaraEditor/Core/Application/BaseApplication.hpp +++ b/include/NazaraEditor/Core/Application/BaseApplication.hpp @@ -33,7 +33,9 @@ namespace Nz // Editor events NazaraSignal(OnActionRegistered, const EditorAction::Properties&); EditorBaseApplication(); - virtual ~EditorBaseApplication() = default; + virtual ~EditorBaseApplication(); + + static EditorBaseApplication* Instance(); void SetResourceFolder(const std::filesystem::path& path) { m_resourceFolder = path; } std::filesystem::path GetResourceFolder() const { return m_resourceFolder; } @@ -60,6 +62,7 @@ namespace Nz } private: + static EditorBaseApplication* s_instance; std::unique_ptr m_windowSwapchain; std::vector> m_windows; diff --git a/src/NazaraEditor/Core/Application/BaseApplication.cpp b/src/NazaraEditor/Core/Application/BaseApplication.cpp index 1e759f3..17818e5 100644 --- a/src/NazaraEditor/Core/Application/BaseApplication.cpp +++ b/src/NazaraEditor/Core/Application/BaseApplication.cpp @@ -3,9 +3,14 @@ namespace Nz { + EditorBaseApplication* EditorBaseApplication::s_instance = nullptr; + EditorBaseApplication::EditorBaseApplication() : m_level(this) { + NazaraAssert(s_instance == nullptr, "EditorBaseApplication already exists"); + s_instance = this; + auto& windowing = AddComponent(); std::shared_ptr device = Nz::Graphics::Instance()->GetRenderDevice(); @@ -43,6 +48,16 @@ namespace Nz }); } + EditorBaseApplication::~EditorBaseApplication() + { + s_instance = nullptr; + } + + EditorBaseApplication* EditorBaseApplication::Instance() + { + return s_instance; + } + Nz::Level& EditorBaseApplication::GetLevel() { return m_level;