From 67ad65a2d5af6dd9cb9e10f8790e3a16f1f66b57 Mon Sep 17 00:00:00 2001 From: Sri Sham Haran Date: Tue, 1 Nov 2022 00:41:37 +0800 Subject: [PATCH] get window from application for now --- .../src/Application/SBApplication.cpp | 4 +++- SHADE_Engine/src/Editor/SHEditor.cpp | 15 +++++++++++---- SHADE_Engine/src/Editor/SHEditor.h | 4 +++- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/SHADE_Application/src/Application/SBApplication.cpp b/SHADE_Application/src/Application/SBApplication.cpp index 208a1be1..415ec502 100644 --- a/SHADE_Application/src/Application/SBApplication.cpp +++ b/SHADE_Application/src/Application/SBApplication.cpp @@ -76,7 +76,9 @@ namespace Sandbox SDL_Init(SDL_INIT_VIDEO); sdlWindow = SDL_CreateWindowFrom(window.GetHWND()); SHSystemManager::CreateSystem(); - SHSystemManager::GetSystem()->SetSDLWindow(sdlWindow); + auto editor = SHSystemManager::GetSystem(); + editor->SetSDLWindow(sdlWindow); + editor->SetSHWindow(&window); #endif // Create Routines diff --git a/SHADE_Engine/src/Editor/SHEditor.cpp b/SHADE_Engine/src/Editor/SHEditor.cpp index d4424235..f4f2e52e 100644 --- a/SHADE_Engine/src/Editor/SHEditor.cpp +++ b/SHADE_Engine/src/Editor/SHEditor.cpp @@ -138,6 +138,9 @@ namespace SHADE window->Update(); } } + + RenderUnsavedChangesPrompt(); + RenderSceneNamePrompt(); //PollPicking(); @@ -431,7 +434,7 @@ namespace SHADE void SHEditor::NewScene() { - if(windowMap.GetMainWindow()->IsUnsavedChanges()) + if(shWindow->IsUnsavedChanges()) { //Unsaved changes prompt sceneToLoad = 0; @@ -440,6 +443,7 @@ namespace SHADE else { SHSceneManager::RestartScene(0); + shWindow->ToggleUnsavedChanges(); } } @@ -462,13 +466,16 @@ namespace SHADE //Get data, if data is null, asset doesn't exist, prompt for a name and create a new asset with the name //serialize the scene - SHSerialization::SerializeSceneToFile(SHSceneManager::GetCurrentSceneAssetID()); - windowMap.GetMainWindow()->ToggleUnsavedChanges(); + if(SHSerialization::SerializeSceneToFile(SHSceneManager::GetCurrentSceneAssetID())) + { + if(shWindow->IsUnsavedChanges()) + shWindow->ToggleUnsavedChanges(); + } } void SHEditor::LoadScene(AssetID const& assetID) noexcept { - if(windowMap.GetMainWindow()->IsUnsavedChanges()) + if(shWindow->IsUnsavedChanges()) { //Unsaved changes prompt isUnsavedChangesPromptOpen = true; diff --git a/SHADE_Engine/src/Editor/SHEditor.h b/SHADE_Engine/src/Editor/SHEditor.h index d4b77daa..e35e9237 100644 --- a/SHADE_Engine/src/Editor/SHEditor.h +++ b/SHADE_Engine/src/Editor/SHEditor.h @@ -17,7 +17,7 @@ #include "EditorWindow/SHEditorWindow.h" #include "Tools/SHLogger.h" #include "Gizmos/SHTransformGizmo.h" - +#include "Graphics/Windowing/SHWindow.h" //#==============================================================# //|| Library Includes || @@ -172,6 +172,7 @@ namespace SHADE void InitBackend(); void SetSDLWindow(SDL_Window* inSDLWindow){sdlWindow = inSDLWindow;}; + void SetSHWindow(SHWindow* inWindow){shWindow = inWindow;} void PollPicking(); @@ -221,6 +222,7 @@ namespace SHADE Handle imguiCommandBuffer; SDL_Window* sdlWindow {nullptr}; + SHWindow* shWindow{nullptr}; ImGuiIO* io{nullptr};