From 921680d472192196bb0e2d659a7c8d615a8680de Mon Sep 17 00:00:00 2001 From: Brandon Mak Date: Wed, 14 Sep 2022 19:19:54 +0800 Subject: [PATCH] Deleted editor folder --- .../Editor/Backend/SHImGuiVulkanBackend.cpp | 396 ------------------ .../src/Editor/Backend/SHImGuiVulkanBackend.h | 86 ---- SHADE_Engine/src/Editor/SHEditor.cpp | 127 ------ SHADE_Engine/src/Editor/SHEditor.h | 31 -- SHADE_Engine/src/Editor/SHEditorBackend.h | 3 - 5 files changed, 643 deletions(-) delete mode 100644 SHADE_Engine/src/Editor/Backend/SHImGuiVulkanBackend.cpp delete mode 100644 SHADE_Engine/src/Editor/Backend/SHImGuiVulkanBackend.h delete mode 100644 SHADE_Engine/src/Editor/SHEditor.cpp delete mode 100644 SHADE_Engine/src/Editor/SHEditor.h delete mode 100644 SHADE_Engine/src/Editor/SHEditorBackend.h diff --git a/SHADE_Engine/src/Editor/Backend/SHImGuiVulkanBackend.cpp b/SHADE_Engine/src/Editor/Backend/SHImGuiVulkanBackend.cpp deleted file mode 100644 index 676625bb..00000000 --- a/SHADE_Engine/src/Editor/Backend/SHImGuiVulkanBackend.cpp +++ /dev/null @@ -1,396 +0,0 @@ - -#include -#include - -#include - -#include "SHImGuiVulkanBackend.h" - -#include - - -#include "Tools/SHLogger.h" -namespace SHADE -{ -#define GETINSTANCE \ - ImGuiIO& io = ImGui::GetIO(); \ - SHBreachInstance& instance = *reinterpret_cast(io.UserData); - - /* - #==============================================================# - || Embedded Shaders || - #==============================================================# - */ - // glsl_shader.vert, compiled with: - // # glslangValidator -V -x -o glsl_shader.vert.u32 glsl_shader.vert - /* - #version 450 core - layout(location = 0) in vec2 aPos; - layout(location = 1) in vec2 aUV; - layout(location = 2) in vec4 aColor; - layout(push_constant) uniform uPushConstant { vec2 uScale; vec2 uTranslate; } pc; - - out gl_PerVertex { vec4 gl_Position; }; - layout(location = 0) out struct { vec4 Color; vec2 UV; } Out; - - void main() - { - Out.Color = aColor; - Out.UV = aUV; - gl_Position = vec4(aPos * pc.uScale + pc.uTranslate, 0, 1); - } - */ - static std::vector __glsl_shader_vert_spv = - { - 0x07230203,0x00010000,0x00080001,0x0000002e,0x00000000,0x00020011,0x00000001,0x0006000b, - 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, - 0x000a000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x0000000b,0x0000000f,0x00000015, - 0x0000001b,0x0000001c,0x00030003,0x00000002,0x000001c2,0x00040005,0x00000004,0x6e69616d, - 0x00000000,0x00030005,0x00000009,0x00000000,0x00050006,0x00000009,0x00000000,0x6f6c6f43, - 0x00000072,0x00040006,0x00000009,0x00000001,0x00005655,0x00030005,0x0000000b,0x0074754f, - 0x00040005,0x0000000f,0x6c6f4361,0x0000726f,0x00030005,0x00000015,0x00565561,0x00060005, - 0x00000019,0x505f6c67,0x65567265,0x78657472,0x00000000,0x00060006,0x00000019,0x00000000, - 0x505f6c67,0x7469736f,0x006e6f69,0x00030005,0x0000001b,0x00000000,0x00040005,0x0000001c, - 0x736f5061,0x00000000,0x00060005,0x0000001e,0x73755075,0x6e6f4368,0x6e617473,0x00000074, - 0x00050006,0x0000001e,0x00000000,0x61635375,0x0000656c,0x00060006,0x0000001e,0x00000001, - 0x61725475,0x616c736e,0x00006574,0x00030005,0x00000020,0x00006370,0x00040047,0x0000000b, - 0x0000001e,0x00000000,0x00040047,0x0000000f,0x0000001e,0x00000002,0x00040047,0x00000015, - 0x0000001e,0x00000001,0x00050048,0x00000019,0x00000000,0x0000000b,0x00000000,0x00030047, - 0x00000019,0x00000002,0x00040047,0x0000001c,0x0000001e,0x00000000,0x00050048,0x0000001e, - 0x00000000,0x00000023,0x00000000,0x00050048,0x0000001e,0x00000001,0x00000023,0x00000008, - 0x00030047,0x0000001e,0x00000002,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, - 0x00030016,0x00000006,0x00000020,0x00040017,0x00000007,0x00000006,0x00000004,0x00040017, - 0x00000008,0x00000006,0x00000002,0x0004001e,0x00000009,0x00000007,0x00000008,0x00040020, - 0x0000000a,0x00000003,0x00000009,0x0004003b,0x0000000a,0x0000000b,0x00000003,0x00040015, - 0x0000000c,0x00000020,0x00000001,0x0004002b,0x0000000c,0x0000000d,0x00000000,0x00040020, - 0x0000000e,0x00000001,0x00000007,0x0004003b,0x0000000e,0x0000000f,0x00000001,0x00040020, - 0x00000011,0x00000003,0x00000007,0x0004002b,0x0000000c,0x00000013,0x00000001,0x00040020, - 0x00000014,0x00000001,0x00000008,0x0004003b,0x00000014,0x00000015,0x00000001,0x00040020, - 0x00000017,0x00000003,0x00000008,0x0003001e,0x00000019,0x00000007,0x00040020,0x0000001a, - 0x00000003,0x00000019,0x0004003b,0x0000001a,0x0000001b,0x00000003,0x0004003b,0x00000014, - 0x0000001c,0x00000001,0x0004001e,0x0000001e,0x00000008,0x00000008,0x00040020,0x0000001f, - 0x00000009,0x0000001e,0x0004003b,0x0000001f,0x00000020,0x00000009,0x00040020,0x00000021, - 0x00000009,0x00000008,0x0004002b,0x00000006,0x00000028,0x00000000,0x0004002b,0x00000006, - 0x00000029,0x3f800000,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, - 0x00000005,0x0004003d,0x00000007,0x00000010,0x0000000f,0x00050041,0x00000011,0x00000012, - 0x0000000b,0x0000000d,0x0003003e,0x00000012,0x00000010,0x0004003d,0x00000008,0x00000016, - 0x00000015,0x00050041,0x00000017,0x00000018,0x0000000b,0x00000013,0x0003003e,0x00000018, - 0x00000016,0x0004003d,0x00000008,0x0000001d,0x0000001c,0x00050041,0x00000021,0x00000022, - 0x00000020,0x0000000d,0x0004003d,0x00000008,0x00000023,0x00000022,0x00050085,0x00000008, - 0x00000024,0x0000001d,0x00000023,0x00050041,0x00000021,0x00000025,0x00000020,0x00000013, - 0x0004003d,0x00000008,0x00000026,0x00000025,0x00050081,0x00000008,0x00000027,0x00000024, - 0x00000026,0x00050051,0x00000006,0x0000002a,0x00000027,0x00000000,0x00050051,0x00000006, - 0x0000002b,0x00000027,0x00000001,0x00070050,0x00000007,0x0000002c,0x0000002a,0x0000002b, - 0x00000028,0x00000029,0x00050041,0x00000011,0x0000002d,0x0000001b,0x0000000d,0x0003003e, - 0x0000002d,0x0000002c,0x000100fd,0x00010038 - }; - - // glsl_shader.frag, compiled with: - // # glslangValidator -V -x -o glsl_shader.frag.u32 glsl_shader.frag - /* - #version 450 core - layout(location = 0) out vec4 fColor; - layout(set=0, binding=0) uniform sampler2D sTexture; - layout(location = 0) in struct { vec4 Color; vec2 UV; } In; - void main() - { - fColor = In.Color * texture(sTexture, In.UV.st); - } - */ - static std::vector __glsl_shader_frag_spv = - { - 0x07230203,0x00010000,0x00080001,0x0000001e,0x00000000,0x00020011,0x00000001,0x0006000b, - 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, - 0x0007000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000009,0x0000000d,0x00030010, - 0x00000004,0x00000007,0x00030003,0x00000002,0x000001c2,0x00040005,0x00000004,0x6e69616d, - 0x00000000,0x00040005,0x00000009,0x6c6f4366,0x0000726f,0x00030005,0x0000000b,0x00000000, - 0x00050006,0x0000000b,0x00000000,0x6f6c6f43,0x00000072,0x00040006,0x0000000b,0x00000001, - 0x00005655,0x00030005,0x0000000d,0x00006e49,0x00050005,0x00000016,0x78655473,0x65727574, - 0x00000000,0x00040047,0x00000009,0x0000001e,0x00000000,0x00040047,0x0000000d,0x0000001e, - 0x00000000,0x00040047,0x00000016,0x00000022,0x00000000,0x00040047,0x00000016,0x00000021, - 0x00000000,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006, - 0x00000020,0x00040017,0x00000007,0x00000006,0x00000004,0x00040020,0x00000008,0x00000003, - 0x00000007,0x0004003b,0x00000008,0x00000009,0x00000003,0x00040017,0x0000000a,0x00000006, - 0x00000002,0x0004001e,0x0000000b,0x00000007,0x0000000a,0x00040020,0x0000000c,0x00000001, - 0x0000000b,0x0004003b,0x0000000c,0x0000000d,0x00000001,0x00040015,0x0000000e,0x00000020, - 0x00000001,0x0004002b,0x0000000e,0x0000000f,0x00000000,0x00040020,0x00000010,0x00000001, - 0x00000007,0x00090019,0x00000013,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, - 0x00000001,0x00000000,0x0003001b,0x00000014,0x00000013,0x00040020,0x00000015,0x00000000, - 0x00000014,0x0004003b,0x00000015,0x00000016,0x00000000,0x0004002b,0x0000000e,0x00000018, - 0x00000001,0x00040020,0x00000019,0x00000001,0x0000000a,0x00050036,0x00000002,0x00000004, - 0x00000000,0x00000003,0x000200f8,0x00000005,0x00050041,0x00000010,0x00000011,0x0000000d, - 0x0000000f,0x0004003d,0x00000007,0x00000012,0x00000011,0x0004003d,0x00000014,0x00000017, - 0x00000016,0x00050041,0x00000019,0x0000001a,0x0000000d,0x00000018,0x0004003d,0x0000000a, - 0x0000001b,0x0000001a,0x00050057,0x00000007,0x0000001c,0x00000017,0x0000001b,0x00050085, - 0x00000007,0x0000001d,0x00000012,0x0000001c,0x0003003e,0x00000009,0x0000001d,0x000100fd, - 0x00010038 - }; - - /* - #==============================================================# - || ImGui Push Constants || - #==============================================================# - */ - struct ImGui_Push_Constants - { - std::array scale; - std::array translate; - }; - - void SHImGuiVulkanBackend::CreateInstance(Handle const& logicalDevice, Handle const& renderpass, uint32_t subpassIndex, SHWindow& mainWindow) noexcept - { - if (ImGui::GetCurrentContext() == nullptr) - { - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - } - else { SHLOG_WARNING("ImGui context already exists") }; - - ImGuiIO& io = ImGui::GetIO(); - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_DockingEnable; // Enable Docking - io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable; // Enable Multi-Viewport / Platform Windows - io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset; // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes. - //io.BackendFlags |= ImGuiBackendFlags_RendererHasViewports; // We can create multi-viewports on the Renderer side (optional) - //io.BackendFlags |= ImGuiBackendFlags_PlatformHasViewports; // We can create multi-viewports on the Platform side (optional) - io.BackendRendererName = "SHImGuiVulkanBackend"; - - if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) - { - ImGuiPlatformIO& platformIO = ImGui::GetPlatformIO(); - platformIO.Renderer_CreateWindow = CreateChildWindow; - platformIO.Renderer_DestroyWindow = DestroyChildWindow; - platformIO.Renderer_SetWindowSize = SetChildWindowSize; - platformIO.Renderer_RenderWindow = RenderChildWindow; - platformIO.Renderer_SwapBuffers = ChildSwapBuffers; - - platformIO.Platform_CreateWindow = CreateChildWindow; - platformIO.Platform_DestroyWindow = DestroyChildWindow; - platformIO.Platform_ShowWindow = [](ImGuiViewport* pViewport) {}; - platformIO.Platform_SetWindowPos = SetChildWindowPos; - platformIO.Platform_GetWindowPos = GetChildWindowPos; - platformIO.Platform_SetWindowSize = SetChildWindowSize; - platformIO.Platform_GetWindowSize = GetChildWindowSize; - //platform_io.Platform_SetWindowFocus = ImGui_ImplGlfw_SetWindowFocus; - //platform_io.Platform_GetWindowFocus = ImGui_ImplGlfw_GetWindowFocus; - //platform_io.Platform_GetWindowMinimized = ImGui_ImplGlfw_GetWindowMinimized; - platformIO.Platform_SetWindowTitle = [](ImGuiViewport* pViewport, const char*) {}; - platformIO.Platform_RenderWindow = RenderChildWindow; - platformIO.Platform_SwapBuffers = ChildSwapBuffers; - - platformIO.Monitors.resize(0); - ImGuiPlatformMonitor monitor; - monitor.MainPos = monitor.WorkPos = {}; - monitor.MainSize = monitor.WorkSize = {}; - platformIO.Monitors.push_back(monitor); - }//if(io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) - - //associate io keymap with engine input keymap - - //Initialize instance - auto instance = std::make_unique(); - instance->window = mainWindow; - instance->InitializePipeline(io, renderpass, subpassIndex); - instance->lastFrameTime = std::chrono::high_resolution_clock::now(); - io.UserData = instance.release(); - - ImGuiViewport* viewport = ImGui::GetMainViewport(); - viewport->RendererUserData = io.UserData; - viewport->PlatformHandle = io.UserData; - } - - void SHImGuiVulkanBackend::Render(Handle const& commandBuffer) noexcept - { - GETINSTANCE - ImGui::Render(); - ImDrawData* drawData = ImGui::GetDrawData(); - //instance.Render(io, drawData, ) - } - - void SHImGuiVulkanBackend::CreateChildWindow(ImGuiViewport* viewport) noexcept - { - GETINSTANCE - - auto& info = *new SHImGuiWindow{ instance.device }; - info.window.Create({}, instance.window.GetHWND()); - viewport->RendererUserData = &info; - } - - void SHImGuiVulkanBackend::DestroyChildWindow(ImGuiViewport* viewport) noexcept - { - GETINSTANCE - - auto info = reinterpret_cast(viewport->RendererUserData); - info->window.Close(); - info->window.Destroy(); - delete info; - viewport->RendererUserData = nullptr; - } - - ImVec2 SHImGuiVulkanBackend::GetChildWindowSize(ImGuiViewport* viewport) noexcept - { - auto info = reinterpret_cast(viewport->RendererUserData); - return{}; - } - - void SHImGuiVulkanBackend::SetChildWindowSize(ImGuiViewport* viewport, ImVec2 size) noexcept - { - auto& info = *reinterpret_cast(viewport->RendererUserData); - SetWindowPos - ( - info.window.GetHWND(), - HWND_TOPMOST, - -1, - -1, - static_cast(size.x), - static_cast(size.y), - SWP_NOMOVE | SWP_NOZORDER - ); - } - - ImVec2 SHImGuiVulkanBackend::GetChildWindowPos(ImGuiViewport* viewport) noexcept - { - auto& info = *reinterpret_cast(viewport->RendererUserData); - auto [x, y] = info.window.GetWindowSize(); - return {static_cast(x), static_cast(y)}; - } - - void SHImGuiVulkanBackend::SetChildWindowPos(ImGuiViewport* viewport, ImVec2 size) noexcept - { - auto& info = *reinterpret_cast(viewport->RendererUserData); - info.window.SetPosition(size.x, size.y); - } - - void SHImGuiVulkanBackend::RenderChildWindow(ImGuiViewport* viewport, void*) noexcept - { - GETINSTANCE; - auto& info = *reinterpret_cast(viewport->RendererUserData); - //info.Render(io, viewport->DrawData, instance);; - } - - void SHImGuiVulkanBackend::ChildSwapBuffers(ImGuiViewport* viewport, void*) noexcept - { - } - - - void SHImGuiVulkanBackend::SHImGuiWindow::InitializeBuffers(void) noexcept - { - for (auto& primBuffer : primitiveBuffers) - { - primBuffer.vertexBuffer = device->CreateBuffer(sizeof(ImDrawVert) * 3000, - nullptr, - sizeof(ImDrawVert) * 3000, - vk::BufferUsageFlagBits::eVertexBuffer, - VMA_MEMORY_USAGE_AUTO, - VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT | VMA_ALLOCATION_CREATE_MAPPED_BIT); // alloc flags - - primBuffer.indicesBuffer = device->CreateBuffer(sizeof(ImDrawIdx) * 3000, - nullptr, - sizeof(ImDrawIdx) * 3000, - vk::BufferUsageFlagBits::eIndexBuffer, - VMA_MEMORY_USAGE_AUTO, - VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT | VMA_ALLOCATION_CREATE_MAPPED_BIT); // alloc flags - - } - } - - void SHImGuiVulkanBackend::SHImGuiWindow::Render(ImGuiIO& io, ImDrawData* drawData, - Handle descriptorSetGroup) - { - - } - - - void SHImGuiVulkanBackend::SHBreachInstance::CreateFontsTexture(Handle image, ImGuiIO& io) noexcept - { - // Build texture atlas - unsigned char* pixels; - int width, height; - - // Load as RGBA 32-bits (75% of the memory is wasted, but default font is so small) because it is more likely to be compatible with user's existing shaders. - // If your ImTextureId represent a higher-level concept than just a GL texture id, consider calling GetTexDataAsAlpha8() instead to save on GPU memory. - io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height); - - SHImageCreateParams createParams{}; - createParams.imageType = vk::ImageType::e2D; - createParams.width = width; - createParams.height = height; - createParams.depth = 1; - createParams.levels = 1; - createParams.arrayLayers = 1; - createParams.imageFormat = vk::Format::eR8G8B8A8Unorm; - createParams.usageFlags = vk::ImageUsageFlagBits::eSampled | vk::ImageUsageFlagBits::eTransferDst; - createParams.createFlags = {}; - - fontsMipOffset.push_back(0); - - // Create image. Data should be in staging only now - fontsTexture = device->CreateImage(createParams, pixels, width * height * sizeof(uint32_t), fontsMipOffset, VmaMemoryUsage::VMA_MEMORY_USAGE_AUTO, {}); - - // TODO: Copy the image to device memory here - // 1. Start record - // 2. Do transfer - // 3. End record - // 4. execute cmd buffer - - // We could put here the texture id if we wanted - io.Fonts->TexID = nullptr; - } - - void SHImGuiVulkanBackend::SHBreachInstance::InitializePipeline(ImGuiIO& io, Handle const& renderpass, uint32_t subpassIndex) noexcept - { - // Vertex input state - SHVertexInputState vInputState{}; - vInputState.AddBinding(false, true, - { - SHVertexAttribute(SHAttribFormat::FLOAT_2D), - SHVertexAttribute(SHAttribFormat::FLOAT_2D), - SHVertexAttribute(SHAttribFormat::UINT32_1D), - } - ); - - // Shaders - Handle vs = device->CreateShaderModule(__glsl_shader_vert_spv, "main", vk::ShaderStageFlagBits::eVertex, "__glsl_shader_vert_spv"); - Handle fs = device->CreateShaderModule(__glsl_shader_frag_spv, "main", vk::ShaderStageFlagBits::eFragment, "__glsl_shader_frag_spv"); - - // pipeline layout initialize shaders - SHPipelineLayoutParams pipelineLayoutParams - { - .shaderModules = std::move (std::vector> - { - vs, - fs, - }), - }; - - // Create pipeline layout - Handle pipelineLayouot = device->CreatePipelineLayout(pipelineLayoutParams); - - // Create pipeline (but dont construct it yet) - Handle newPipeline = device->CreatePipeline(pipelineLayouot, nullptr, renderpass, subpassIndex, SH_PIPELINE_TYPE::GRAPHICS); - - // Set the vertex input state - newPipeline->GetPipelineState().SetVertexInputState(vInputState); - - // Actually construct the pipeline - newPipeline->ConstructPipeline(); - - SHVkDescriptorPool::Config config - { - .MaxSets = 10, - .Flags = {}, - }; - - // Create a descriptor pool - descriptorPool = device->CreateDescriptorPools(config); - - // Allocate descriptor sets required for the fonts - descriptorSetGroup = - } - - void SHImGuiVulkanBackend::SHBreachInstance::Render(Handle const& commandBuffer, ImGuiIO& io, ImDrawData* draw_data, Handle const& descriptorSetGroup) noexcept - { - - } - -} \ No newline at end of file diff --git a/SHADE_Engine/src/Editor/Backend/SHImGuiVulkanBackend.h b/SHADE_Engine/src/Editor/Backend/SHImGuiVulkanBackend.h deleted file mode 100644 index 47f31e4c..00000000 --- a/SHADE_Engine/src/Editor/Backend/SHImGuiVulkanBackend.h +++ /dev/null @@ -1,86 +0,0 @@ -#pragma once - -#include -#include "Graphics/Instance/SHVkInstance.h" -#include "Graphics/Buffers/SHVkBuffer.h" -#include "Graphics/Images/SHVkImage.h" -#include "Graphics/Devices/SHVkPhysicalDevice.h" -#include "Graphics/Devices/SHVkLogicalDevice.h" -#include "Graphics/Pipeline/SHVkPipeline.h" -#include "Graphics/Swapchain/SHVkSwapchain.h" -#include "Graphics/MiddleEnd/Interface/SHGraphicsSystem.h" -#include "Graphics/Debugging/SHVulkanDebugUtil.h" -#include "Graphics/Windowing/SHWindow.h" - -namespace SHADE -{ - class SHImGuiVulkanBackend - { - struct SHImGuiWindow - { - struct Buffers - { - Handle vertexBuffer; - Handle indicesBuffer; - }; - //Required to create stuff - Handle device; - - // Window of the imgui window - SHWindow window; - - // Buffers required to draw the imgui entities - std::array primitiveBuffers; - - public: - void InitializeBuffers(void) noexcept; - void Render(ImGuiIO& io, ImDrawData* drawData, Handle descriptorSetGroup); - }; - - struct SHBreachInstance : public SHImGuiWindow - { - // pipeline/shaders used to render imgui entities - Handle pipeline; - - // Last frame time - std::chrono::time_point lastFrameTime; - - // Fonts texture - Handle fontsTexture; - - // mip maps for font image (should just contain 1) - std::vector fontsMipOffset; - - // Descriptor pool rquired to allocate descriptor sets - Handle descriptorPool; - - // Descriptor set required to store font texture - Handle descriptorSetGroup; - - public: - void CreateFontsTexture (Handle image, ImGuiIO& io) noexcept; - void InitializePipeline(ImGuiIO& io, Handle const& renderpass, uint32_t subpassIndex) noexcept; - void Render (Handle const& commandBuffer, ImGuiIO& io, ImDrawData* draw_data, Handle const& descriptorSetGroup) noexcept; - - }; - public: - static void CreateInstance(Handle const& logicalDevice, Handle const& renderpass, uint32_t subpassIndex, SHWindow& mainWindow) noexcept; - static void Render(Handle const& commandBuffer) noexcept; - - - static void EnableDocking(void) noexcept; - - //Platform specific functions - static void CreateChildWindow(ImGuiViewport* viewport) noexcept; - static void DestroyChildWindow(ImGuiViewport* viewport) noexcept; - static ImVec2 GetChildWindowSize(ImGuiViewport* viewport) noexcept; - static void SetChildWindowSize(ImGuiViewport* viewport, ImVec2 size) noexcept; - static ImVec2 GetChildWindowPos(ImGuiViewport* viewport) noexcept; - static void SetChildWindowPos(ImGuiViewport* viewport, ImVec2 size) noexcept; - static void RenderChildWindow(ImGuiViewport* viewport, void*) noexcept; - static void ChildSwapBuffers(ImGuiViewport* viewport, void*) noexcept; - - private: - - }; -} \ No newline at end of file diff --git a/SHADE_Engine/src/Editor/SHEditor.cpp b/SHADE_Engine/src/Editor/SHEditor.cpp deleted file mode 100644 index ab3a220a..00000000 --- a/SHADE_Engine/src/Editor/SHEditor.cpp +++ /dev/null @@ -1,127 +0,0 @@ -#include "SHpch.h" -#include "SHEditor.h" -#include "SHEditorBackend.h" - -#include - -#include -#include -#include -#include -#include "Graphics/Swapchain/SHVkSwapchain.h" -#include "Graphics/Debugging/SHVulkanDebugUtil.h" - -#include "Tools/SHLogger.h" - -extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); - -namespace SHADE -{ - Handle SHEditor::cmdPool; - Handle SHEditor::cmdBuffer; - - void SHEditor::Initialize(HWND hwnd) - { - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - - ImGuiIO& io = ImGui::GetIO(); - - //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable; - io.ConfigFlags |= ImGuiConfigFlags_DockingEnable; - - SetupWin32Backend(hwnd); - SetupVulkanBackend(); - - - } - - void SHEditor::PreRender() - { - cmdPool->Reset(); - } - - void SHEditor::Update() - { - NewFrame(); - - //Add all windows to draw list, Perform necessary updates - //ImGui::ShowDemoWindow(); - - ImGui::Render(); - } - - void SHEditor::Render() - { - ImGui_ImplVulkan_RenderDrawData(ImGui::GetDrawData(), cmdBuffer->GetVkCommandBuffer()); - - ImGuiIO& io = ImGui::GetIO(); - if(io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) - { - ImGui::UpdatePlatformWindows(); - ImGui::RenderPlatformWindowsDefault(); - } - - } - - void SHEditor::Exit() - { - ShutdownVulkanBackend(); - ShutdownWin32Backend(); - ImGui::DestroyContext(); - } - - void SHEditor::SetupVulkanBackend() - { - ImGui_ImplVulkan_InitInfo initInfo; - - initInfo.Instance = SHVkInstance::GetVkInstance(); - auto gfxSystem = reinterpret_cast(SHSystemManager::GetSystem("Graphics System")); - initInfo.PhysicalDevice = gfxSystem->GetPhysicalDevice()->GetVkPhysicalDevice(); - initInfo.Device = gfxSystem->GetDevice()->GetVkLogicalDevice(); - initInfo.Queue = gfxSystem->GetQueue()->GetVkQueue(); - initInfo.MinImageCount = initInfo.ImageCount = gfxSystem->GetSwapchain()->GetNumImages(); - initInfo.DescriptorPool = gfxSystem->GetDescriptorPool()->GetVkHandle(); - initInfo.MSAASamples = VK_SAMPLE_COUNT_1_BIT; - initInfo.Allocator = nullptr; - initInfo.PipelineCache = nullptr; - initInfo.Subpass = 0; - - initInfo.CheckVkResultFn = [](VkResult err) - { - if (err == VK_SUCCESS) - return; - SHVulkanDebugUtil::ReportVkError(vk::Result(err), "Editor Error"); - }; - - ImGui_ImplVulkan_Init(&initInfo, gfxSystem->GetRenderGraph().GetNode("G-Buffer")->GetRenderpass()->GetVkRenderpass()); - - cmdPool = gfxSystem->GetDevice()->CreateCommandPool(SH_QUEUE_FAMILY_ARRAY_INDEX::GRAPHICS, SH_CMD_POOL_RESET::POOL_BASED, true); - cmdBuffer = cmdPool->RequestCommandBuffer(SH_CMD_BUFFER_TYPE::PRIMARY); - - ImGui_ImplVulkan_CreateFontsTexture(cmdBuffer->GetVkCommandBuffer()); - } - - void SHEditor::ShutdownVulkanBackend() - { - ImGui_ImplVulkan_Shutdown(); - } - - void SHEditor::NewFrame() - { - ImGui_ImplVulkan_NewFrame(); - ImGui_ImplWin32_NewFrame(); - ImGui::NewFrame(); - } - - void SHEditor::SetupWin32Backend(HWND hwnd) - { - ImGui_ImplWin32_Init(hwnd); - } - - void SHEditor::ShutdownWin32Backend() - { - } - -} diff --git a/SHADE_Engine/src/Editor/SHEditor.h b/SHADE_Engine/src/Editor/SHEditor.h deleted file mode 100644 index be83e22b..00000000 --- a/SHADE_Engine/src/Editor/SHEditor.h +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once -#include "Graphics/Commands/SHVkCommandPool.h" - -namespace SHADE -{ - class SHEditor - { - public: - - static void Initialize(HWND hwnd); - - static void PreRender(); - - static void Update(); - - static void Render(); - - static void Exit(); - - private: - static void SetupWin32Backend(HWND hwnd); - static void ShutdownWin32Backend(); - static void SetupVulkanBackend(); - static void ShutdownVulkanBackend(); - - static void NewFrame(); - - static Handle cmdPool; - static Handle cmdBuffer; - }; -} diff --git a/SHADE_Engine/src/Editor/SHEditorBackend.h b/SHADE_Engine/src/Editor/SHEditorBackend.h deleted file mode 100644 index 29a19f86..00000000 --- a/SHADE_Engine/src/Editor/SHEditorBackend.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once -#include -#include \ No newline at end of file