diff --git a/SHADE_Application/src/Application/SBApplication.cpp b/SHADE_Application/src/Application/SBApplication.cpp index 171f4995..cbf3e5d9 100644 --- a/SHADE_Application/src/Application/SBApplication.cpp +++ b/SHADE_Application/src/Application/SBApplication.cpp @@ -60,6 +60,7 @@ namespace Sandbox SHADE::SHScriptEngine::Exit(); SDL_DestroyWindow(sdlWindow); + SDL_Quit(); #ifdef SHEDITOR #else #endif diff --git a/SHADE_Engine/src/Editor/SHEditor.cpp b/SHADE_Engine/src/Editor/SHEditor.cpp new file mode 100644 index 00000000..f4fa5158 --- /dev/null +++ b/SHADE_Engine/src/Editor/SHEditor.cpp @@ -0,0 +1,67 @@ +#include "SHpch.h" +#include "SHEditor.h" + +#include + +//IMGUI Backend includes +#include +#include + +#include "ECS_Base/System/SHSystemManager.h" +#include "Graphics/Instance/SHVkInstance.h" +#include "Graphics/MiddleEnd/Interface/SHGraphicsSystem.h" + +namespace SHADE +{ + void SHEditor::Initialise(SDL_Window* sdlWindow) + { + IMGUI_CHECKVERSION(); + ImGui::CreateContext(); + + ImGui_ImplSDL2_InitForVulkan(sdlWindow); + + auto* gfxSystem = reinterpret_cast(SHSystemManager::GetSystem("Graphics System")); + + ImGui_ImplVulkan_InitInfo initInfo{}; + initInfo.Instance = SHVkInstance::GetVkInstance(); + initInfo.PhysicalDevice = + + ImGui_ImplVulkan_DestroyFontUploadObjects(); + + } + + void SHEditor::PreRender() + { + NewFrame(); + + ImGui::ShowDemoWindow(); + } + + void SHEditor::Render() + { + ImGui::Render(); + } + + void SHEditor::Exit() + { + ImGui_ImplVulkan_Shutdown(); + ImGui_ImplSDL2_Shutdown(); + ImGui::DestroyContext(); + } + + + void SHEditor::InitBackend() + { + } + + void SHEditor::NewFrame() + { + ImGui_ImplVulkan_NewFrame(); + ImGui_ImplSDL2_NewFrame(); + ImGui::NewFrame(); + } + + void SHEditor::EndFrame() + { + } +} diff --git a/SHADE_Engine/src/Editor/SHEditor.h b/SHADE_Engine/src/Editor/SHEditor.h new file mode 100644 index 00000000..d9f726a6 --- /dev/null +++ b/SHADE_Engine/src/Editor/SHEditor.h @@ -0,0 +1,19 @@ +#pragma once + +#include + +namespace SHADE +{ + class SHEditor + { + public: + static void Initialise(SDL_Window* sdlWindow); + static void PreRender(); + static void Render(); + static void Exit(); + private: + static void InitBackend(); + static void NewFrame(); + static void EndFrame(); + }; +} \ No newline at end of file