From 19fc3912cd6d83acec1745fd3eb6009b8aa5e9eb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Apr 2026 06:04:45 +0000 Subject: [PATCH 01/18] Initial plan From 8aa22319ed39430c61984d7ce7fef96bea2c200c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Apr 2026 06:25:32 +0000 Subject: [PATCH 02/18] Phase 1: Expand UI:: namespace with Hazel-style helpers and fix ImGuiEx.h includes Agent-Logs-Url: https://github.com/starbounded-dev/LuxEngine/sessions/6dd2cc57-3cd7-44f6-b72a-901b8e701a30 Co-authored-by: sheazywi <73042839+sheazywi@users.noreply.github.com> --- Core/Source/Lux/ImGui/ImGuiEx.h | 11 +-- Core/Source/Lux/UI/UI.h | 124 ++++++++++++++++++++++++++++++-- 2 files changed, 123 insertions(+), 12 deletions(-) diff --git a/Core/Source/Lux/ImGui/ImGuiEx.h b/Core/Source/Lux/ImGui/ImGuiEx.h index 770c79c..d961c70 100644 --- a/Core/Source/Lux/ImGui/ImGuiEx.h +++ b/Core/Source/Lux/ImGui/ImGuiEx.h @@ -12,6 +12,7 @@ #include "Lux/ImGui/ImGuiWidgets.h" //#include "Lux/Scene/Prefab.h" #include "Lux/Scene/Scene.h" +#include "Lux/UI/UI.h" #include "Lux/Utilities/StringUtils.h" #include @@ -2802,7 +2803,7 @@ namespace Lux::ImGuiEx { uintptr_t tempLength = length; FieldType nativeType = arrayStorage->GetFieldInfo()->Type; - if (UI::PropertyInput("Length", tempLength, 1, 1, ImGuiInputTextFlags_EnterReturnsTrue)) + if (PropertyInput("Length", tempLength, 1, 1, ImGuiInputTextFlags_EnterReturnsTrue)) { arrayStorage->Resize((uint32_t)tempLength); length = tempLength; @@ -2827,12 +2828,12 @@ namespace Lux::ImGuiEx { size_t dataSize = ImGui::DataTypeGetInfo(dataType)->Size; if (components > 1) { - if (UI::DragScalarN(GenerateID(), dataType, &data, components, 1.0f, (const void*)0, (const void*)0, format, 0)) + if (DragScalarN(GenerateID(), dataType, &data, components, 1.0f, (const void*)0, (const void*)0, format, 0)) arrayStorage->SetValue>((uint32_t)index, data); } else { - if (UI::DragScalar(GenerateID(), dataType, &data, 1.0f, (const void*)0, (const void*)0, format, (ImGuiSliderFlags)0)) + if (DragScalar(GenerateID(), dataType, &data, 1.0f, (const void*)0, (const void*)0, format, (ImGuiSliderFlags)0)) arrayStorage->SetValue>((uint32_t)index, data); } @@ -2863,7 +2864,7 @@ namespace Lux::ImGuiEx { const float buttonSize = ImGui::GetFrameHeight(); ImGui::SetNextItemWidth(ImMax(1.0f, ImGui::CalcItemWidth() - (buttonSize + style.ItemInnerSpacing.x))); - if (UI::InputText(GenerateID(), &data)) + if (InputText(GenerateID(), &data)) arrayStorage->SetValue((uint32_t)index, data); const ImVec2 backupFramePadding = style.FramePadding; @@ -2892,7 +2893,7 @@ namespace Lux::ImGuiEx { case FieldType::Bool: { bool value = arrayStorage->GetValue(i); - if (UI::Property(indexString.c_str(), value)) + if (Property(indexString.c_str(), value)) { arrayStorage->SetValue(i, value); modified = true; diff --git a/Core/Source/Lux/UI/UI.h b/Core/Source/Lux/UI/UI.h index 86dacc8..e182a74 100644 --- a/Core/Source/Lux/UI/UI.h +++ b/Core/Source/Lux/UI/UI.h @@ -2,34 +2,144 @@ #include +#ifndef IMGUI_DEFINE_MATH_OPERATORS +#define IMGUI_DEFINE_MATH_OPERATORS +#endif +#include + +#include "Lux/ImGui/Colors.h" +#include "Lux/ImGui/ImGuiUtilities.h" + namespace Lux::UI { - struct ScopedStyleColor + // ========================================================================= + // Scoped helpers — mirrors the Hazel UI:: namespace conventions + // ========================================================================= + + /// RAII wrapper for ImGui::PushStyleColor / PopStyleColor + struct ScopedColour { - ScopedStyleColor() = default; + ScopedColour() = default; + + ScopedColour(ImGuiCol idx, ImVec4 colour, bool predicate = true) + : m_Set(predicate) + { + if (predicate) + ImGui::PushStyleColor(idx, colour); + } - ScopedStyleColor(ImGuiCol idx, ImVec4 color, bool predicate = true) + ScopedColour(ImGuiCol idx, ImU32 colour, bool predicate = true) : m_Set(predicate) { if (predicate) - ImGui::PushStyleColor(idx, color); + ImGui::PushStyleColor(idx, colour); } - ScopedStyleColor(ImGuiCol idx, ImU32 color, bool predicate = true) + ScopedColour(ImGuiCol idx, ImColor colour, bool predicate = true) : m_Set(predicate) { if (predicate) - ImGui::PushStyleColor(idx, color); + ImGui::PushStyleColor(idx, colour.Value); } - ~ScopedStyleColor() + ~ScopedColour() { if (m_Set) ImGui::PopStyleColor(); } + + ScopedColour(const ScopedColour&) = delete; + ScopedColour& operator=(const ScopedColour&) = delete; private: bool m_Set = false; }; + // Legacy alias kept for backwards compatibility + using ScopedStyleColor = ScopedColour; + + /// RAII wrapper for ImGui::PushStyleVar / PopStyleVar + struct ScopedStyle + { + ScopedStyle(ImGuiStyleVar styleVar, float value) { ImGui::PushStyleVar(styleVar, value); } + ScopedStyle(ImGuiStyleVar styleVar, ImVec2 value) { ImGui::PushStyleVar(styleVar, value); } + ~ScopedStyle() { ImGui::PopStyleVar(); } + + ScopedStyle(const ScopedStyle&) = delete; + ScopedStyle& operator=(const ScopedStyle&) = delete; + }; + + /// RAII wrapper for ImGui::PushFont / PopFont + struct ScopedFont + { + ScopedFont(ImFont* font) { ImGui::PushFont(font); } + ~ScopedFont() { ImGui::PopFont(); } + + ScopedFont(const ScopedFont&) = delete; + ScopedFont& operator=(const ScopedFont&) = delete; + }; + + // ========================================================================= + // Cursor helpers + // ========================================================================= + + /// Shift the cursor position along the X axis by the given amount + inline void ShiftCursorX(float distance) + { + ImGui::SetCursorPosX(ImGui::GetCursorPosX() + distance); + } + + /// Shift the cursor position along the Y axis by the given amount + inline void ShiftCursorY(float distance) + { + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + distance); + } + + /// Shift the cursor position along both axes + inline void ShiftCursor(float x, float y) + { + const ImVec2 cursor = ImGui::GetCursorPos(); + ImGui::SetCursorPos(ImVec2(cursor.x + x, cursor.y + y)); + } + + // ========================================================================= + // DrawButtonImage — draws a texture directly into an already-placed item + // rect, choosing the tint based on the item interaction state. + // ========================================================================= + + /// Draw a button image using separate textures for each interaction state. + /// Call this *after* an invisible button or any other item that occupies the + /// desired rect, then the tint colour is picked automatically. + inline void DrawButtonImage( + const Ref& imageNormal, + const Ref& imageHovered, + const Ref& imagePressed, + ImU32 tintNormal, ImU32 tintHovered, ImU32 tintPressed, + ImVec2 rectMin, ImVec2 rectMax, + ImVec2 uv0 = ImVec2(0.0f, 0.0f), ImVec2 uv1 = ImVec2(1.0f, 1.0f)) + { + // Delegate to ImGuiEx which has the full implementation + ImGuiEx::DrawButtonImage(imageNormal, imageHovered, imagePressed, + tintNormal, tintHovered, tintPressed, rectMin, rectMax, uv0, uv1); + } + + /// Convenience overload — single texture for all states + inline void DrawButtonImage( + const Ref& image, + ImU32 tintNormal, ImU32 tintHovered, ImU32 tintPressed, + ImVec2 rectMin, ImVec2 rectMax, + ImVec2 uv0 = ImVec2(0.0f, 0.0f), ImVec2 uv1 = ImVec2(1.0f, 1.0f)) + { + ImGuiEx::DrawButtonImage(image, tintNormal, tintHovered, tintPressed, + rectMin, rectMax, uv0, uv1); + } + + /// Convenience overload — uses the last item rect for the image bounds + inline void DrawButtonImage( + const Ref& image, + ImU32 tintNormal, ImU32 tintHovered, ImU32 tintPressed, + ImVec2 uv0 = ImVec2(0.0f, 0.0f), ImVec2 uv1 = ImVec2(1.0f, 1.0f)) + { + ImGuiEx::DrawButtonImage(image, tintNormal, tintHovered, tintPressed, uv0, uv1); + } } From 4ce4c3f203801a4e28ec4ff0cda19a0faf503dc0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Apr 2026 06:37:54 +0000 Subject: [PATCH 03/18] Phase 2: add custom titlebar, frameless dockspace styling, and window controls Agent-Logs-Url: https://github.com/starbounded-dev/LuxEngine/sessions/b51ce09c-9fb1-4afe-b601-b42cd02bbf2f Co-authored-by: sheazywi <73042839+sheazywi@users.noreply.github.com> --- Core/Source/Lux/Core/Window.cpp | 7 +- Editor/Source/EditorLayer.cpp | 289 ++++++++++++++++++++++++++++---- Editor/Source/EditorLayer.h | 13 ++ 3 files changed, 270 insertions(+), 39 deletions(-) diff --git a/Core/Source/Lux/Core/Window.cpp b/Core/Source/Lux/Core/Window.cpp index 44a5adb..2f04713 100644 --- a/Core/Source/Lux/Core/Window.cpp +++ b/Core/Source/Lux/Core/Window.cpp @@ -155,13 +155,8 @@ namespace Lux { if (!m_Specification.Decorated) { - // This removes titlebar on all platforms - // and all of the native window effects on non-Windows platforms -#ifdef LUX_PLATFORM_WINDOWS - glfwWindowHint(GLFW_TITLEBAR, false); -#else + // Disable native decorations so editor can render a fully custom titlebar. glfwWindowHint(GLFW_DECORATED, false); -#endif } m_WindowHandle = glfwCreateWindow((int)m_Specification.Width, (int)m_Specification.Height, m_Data.Title.c_str(), m_Specification.Fullscreen ? glfwGetPrimaryMonitor() : nullptr, nullptr); diff --git a/Editor/Source/EditorLayer.cpp b/Editor/Source/EditorLayer.cpp index 3687426..32bb475 100644 --- a/Editor/Source/EditorLayer.cpp +++ b/Editor/Source/EditorLayer.cpp @@ -17,6 +17,7 @@ #include #include "imgui/imgui_internal.h" +#include #include "ImGuizmo.h" #include "Lux/Debug/Profiler.h" #include "Lux/Editor/EditorResources.h" @@ -66,6 +67,24 @@ namespace Lux { auto* imguiRenderer = Lux::Application::Get().GetImGuiLayer()->GetImGuiRenderer(); return imguiRenderer->CreateFrameTexture(image->GetHandle().Get(), nvrhi::AllSubresources); } + + std::string GetSceneDisplayName(const std::filesystem::path& scenePath) + { + if (scenePath.empty()) + return "Untitled Scene"; + + return scenePath.stem().string(); + } + + std::string GetProjectDisplayName() + { + Ref activeProject = Project::GetActive(); + if (!activeProject) + return "No Project"; + + const auto& name = activeProject->GetConfig().Name; + return name.empty() ? "Untitled Project" : name; + } } struct SceneRendererRuntimeState @@ -126,6 +145,8 @@ namespace Lux { { LUX_PROFILE_FUNCTION("EditorLayer::OnAttach"); + EditorResources::Init(); + /////////// Configure Panels /////////// m_PanelManager = CreateScope(); @@ -217,6 +238,7 @@ namespace Lux { m_SceneRendererPanel.reset(); m_SceneHierarchyPanel.reset(); s_Font.reset(); + EditorResources::Shutdown(); } void EditorLayer::OnUpdate(Timestep ts) @@ -313,7 +335,10 @@ namespace Lux { bool opt_fullscreen = opt_fullscreen_persistent; static ImGuiDockNodeFlags dockspace_flags = ImGuiDockNodeFlags_None; - ImGuiWindowFlags window_flags = ImGuiWindowFlags_MenuBar | ImGuiWindowFlags_NoDocking; + GLFWwindow* nativeWindow = Application::Get().GetWindow().GetNativeWindow(); + const bool isWindowMaximized = nativeWindow && glfwGetWindowAttrib(nativeWindow, GLFW_MAXIMIZED); + + ImGuiWindowFlags window_flags = ImGuiWindowFlags_NoDocking; if (opt_fullscreen) { ImGuiViewport* viewport = ImGui::GetMainViewport(); @@ -321,7 +346,7 @@ namespace Lux { ImGui::SetNextWindowSize(viewport->Size); ImGui::SetNextWindowViewport(viewport->ID); ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f); - ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f); + ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, isWindowMaximized ? 0.0f : 3.0f); window_flags |= ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove; window_flags |= ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoNavFocus; @@ -343,6 +368,15 @@ namespace Lux { ImGuiStyle& style = ImGui::GetStyle(); const float minWinSizeX = style.WindowMinSize.x; style.WindowMinSize.x = 370.0f; + + UI_DrawTitlebar(); + if (!isWindowMaximized) + { + ImGuiEx::ScopedColour borderColour(ImGuiCol_Border, IM_COL32(50, 50, 50, 255)); + ImGuiEx::RenderWindowOuterBorders(ImGui::GetCurrentWindow()); + } + + ImGui::SetCursorPosY(m_TitlebarHeight); if (io.ConfigFlags & ImGuiConfigFlags_DockingEnable) { const ImGuiID dockspace_id = ImGui::GetID("MyDockSpace"); @@ -350,45 +384,32 @@ namespace Lux { } style.WindowMinSize.x = minWinSizeX; - if (ImGui::BeginMenuBar()) - { - if (ImGui::BeginMenu("File")) - { - if (ImGui::MenuItem("Open Project...", "Ctrl+O")) - OpenProject(); - - ImGui::Separator(); - - if (ImGui::MenuItem("New Scene", "Ctrl+N")) - NewScene(); - - if (ImGui::MenuItem("Save Scene", "Ctrl+S")) - SaveScene(); - - if (ImGui::MenuItem("Save Scene As...", "Ctrl+Shift+S")) - SaveSceneAs(); - - ImGui::Separator(); + m_PanelManager->OnImGuiRender(); - if (ImGui::MenuItem("Exit")) - Application::Get().Close(); + if (m_ShowImGuiMetrics) + ImGui::ShowMetricsWindow(&m_ShowImGuiMetrics); + if (m_ShowImGuiStyleEditor) + ImGui::ShowStyleEditor(); + if (m_ShowAboutPopup) + ImGui::OpenPopup("About LuxEngine"); - ImGui::EndMenu(); - } + if (ImGui::BeginPopupModal("About LuxEngine", &m_ShowAboutPopup, ImGuiWindowFlags_AlwaysAutoResize)) + { + ImGui::Text("LuxEngine Editor"); + ImGui::Separator(); + ImGui::Text("Version: %s", Application::GetConfigurationName()); + ImGui::Text("Platform: %s", Application::GetPlatformName()); + ImGui::TextWrapped("Credits: Inspired by Hazel architecture and editor workflows."); - if (ImGui::BeginMenu("Script")) + if (ImGui::Button("Close")) { - if (ImGui::MenuItem("Reload assembly", "Ctrl+R")) - ScriptEngine::ReloadAssembly(); - - ImGui::EndMenu(); + m_ShowAboutPopup = false; + ImGui::CloseCurrentPopup(); } - ImGui::EndMenuBar(); + ImGui::EndPopup(); } - m_PanelManager->OnImGuiRender(); - // Stats panel ImGui::Begin("Stats"); @@ -522,6 +543,193 @@ namespace Lux { ImGui::End(); // Lux Editor } + void EditorLayer::UI_DrawMenubar() + { + ImGuiEx::ScopedColourStack menuColors( + ImGuiCol_Header, ImGui::ColorConvertU32ToFloat4(Colors::Theme::accent), + ImGuiCol_HeaderHovered, ImGui::ColorConvertU32ToFloat4(Colors::Theme::accent), + ImGuiCol_HeaderActive, ImGui::ColorConvertU32ToFloat4(Colors::Theme::accent), + ImGuiCol_Text, ImGui::ColorConvertU32ToFloat4(Colors::Theme::text)); + + const float menuMinX = 76.0f; + const float menuMaxX = std::max(menuMinX + 1.0f, ImGui::GetWindowWidth() - 350.0f); + const ImRect menuBarRect(ImVec2(menuMinX, 0.0f), ImVec2(menuMaxX, m_TitlebarHeight)); + if (!ImGuiEx::BeginMenuBar(menuBarRect)) + return; + + if (ImGui::BeginMenu("File")) + { + if (ImGui::MenuItem("Create Project")) + NewProject(); + if (ImGui::MenuItem("Open Project...", "Ctrl+O")) + OpenProject(); + + if (ImGui::BeginMenu("Recent Projects")) + { + ImGui::MenuItem("No recent projects", nullptr, false, false); + ImGui::EndMenu(); + } + + ImGui::Separator(); + if (ImGui::MenuItem("Save Scene", "Ctrl+S")) + SaveScene(); + if (ImGui::MenuItem("Save Scene As...", "Ctrl+Shift+S")) + SaveSceneAs(); + + ImGui::Separator(); + if (ImGui::MenuItem("Exit")) + Application::Get().DispatchEvent(); + + ImGui::EndMenu(); + } + + if (ImGui::BeginMenu("Edit")) + { + if (ImGui::MenuItem("Reload C# Assembly", "Ctrl+R")) + ScriptEngine::ReloadAssembly(); + ImGui::MenuItem("Second Viewport", nullptr, &m_SecondViewportEnabled); + ImGui::EndMenu(); + } + + if (ImGui::BeginMenu("View")) + { + auto& viewPanels = m_PanelManager->GetPanels(PanelCategory::View); + for (auto& [id, panelData] : viewPanels) + ImGui::MenuItem(panelData.Name, nullptr, &panelData.IsOpen); + ImGui::EndMenu(); + } + + if (ImGui::BeginMenu("Tools")) + { + ImGui::MenuItem("ImGui Metrics", nullptr, &m_ShowImGuiMetrics); + ImGui::MenuItem("ImGui Style Editor", nullptr, &m_ShowImGuiStyleEditor); + ImGui::EndMenu(); + } + + if (ImGui::BeginMenu("Help")) + { + if (ImGui::MenuItem("About")) + m_ShowAboutPopup = true; + ImGui::EndMenu(); + } + + ImGuiEx::EndMenuBar(); + } + + void EditorLayer::UI_DrawTitlebar() + { + ImGuiWindow* window = ImGui::GetCurrentWindow(); + ImDrawList* drawList = ImGui::GetWindowDrawList(); + const ImVec2 windowPos = window->Pos; + const ImVec2 windowMax = ImVec2(window->Pos.x + window->Size.x, window->Pos.y + m_TitlebarHeight); + + ImU32 targetTitlebarColor = Colors::Theme::titlebar; + if (m_SceneState == SceneState::Play) + targetTitlebarColor = Colors::Theme::titlebarOrange; + else if (m_SceneState == SceneState::Simulate) + targetTitlebarColor = Colors::Theme::titlebarGreen; + + const ImVec4 targetColor = ImGui::ColorConvertU32ToFloat4(targetTitlebarColor); + const float dt = ImGui::GetIO().DeltaTime; + m_AnimatedTitlebarColor = ImLerp(m_AnimatedTitlebarColor, targetColor, std::clamp(dt * 8.0f, 0.0f, 1.0f)); + drawList->AddRectFilled(windowPos, windowMax, ImGui::ColorConvertFloat4ToU32(m_AnimatedTitlebarColor)); + + drawList->AddLine(ImVec2(windowPos.x, windowPos.y + m_TitlebarHeight), ImVec2(windowPos.x + window->Size.x, windowPos.y + m_TitlebarHeight), Colors::Theme::backgroundDark); + + const float logoPadding = 16.0f; + const float logoSize = 30.0f; + const float logoTop = (m_TitlebarHeight - logoSize) * 0.5f; + const ImVec2 logoMin(windowPos.x + logoPadding, windowPos.y + logoTop); + const ImVec2 logoMax(logoMin.x + logoSize, logoMin.y + logoSize); + if (EditorResources::HazelLogoTexture) + drawList->AddImage(GetImGuiTextureID(EditorResources::HazelLogoTexture), logoMin, logoMax); + + UI_DrawMenubar(); + + const std::string sceneName = GetSceneDisplayName(m_EditorScenePath); + const ImVec2 sceneNameSize = ImGui::CalcTextSize(sceneName.c_str()); + const float sceneNameX = windowPos.x + (window->Size.x - sceneNameSize.x) * 0.5f; + const float sceneNameY = windowPos.y + (m_TitlebarHeight - sceneNameSize.y) * 0.5f; + drawList->AddText(ImVec2(sceneNameX, sceneNameY), Colors::Theme::textBrighter, sceneName.c_str()); + drawList->AddLine( + ImVec2(sceneNameX - 6.0f, sceneNameY + sceneNameSize.y + 4.0f), + ImVec2(sceneNameX + sceneNameSize.x + 6.0f, sceneNameY + sceneNameSize.y + 4.0f), + Colors::Theme::accent, 1.5f); + + GLFWwindow* nativeWindow = Application::Get().GetWindow().GetNativeWindow(); + const bool isMaximized = nativeWindow && glfwGetWindowAttrib(nativeWindow, GLFW_MAXIMIZED); + + const float controlsWidth = 120.0f; + const float dragZoneMinX = 70.0f; + const float dragZoneMaxX = window->Size.x - controlsWidth - 220.0f; + ImGui::SetCursorPos(ImVec2(dragZoneMinX, 0.0f)); + ImGui::InvisibleButton("##titleBarDragZone", ImVec2(std::max(0.0f, dragZoneMaxX - dragZoneMinX), m_TitlebarHeight)); + const ImVec2 dragMin = ImGui::GetItemRectMin(); + const ImVec2 dragMax = ImGui::GetItemRectMax(); + m_TitleBarDragRectMin = ImVec2(dragMin.x - windowPos.x, dragMin.y - windowPos.y); + m_TitleBarDragRectMax = ImVec2(dragMax.x - windowPos.x, dragMax.y - windowPos.y); + +#if !defined(LUX_PLATFORM_WINDOWS) + if (nativeWindow && !isMaximized && ImGui::IsItemActive() && ImGui::IsMouseDragging(ImGuiMouseButton_Left)) + { + int windowX = 0, windowY = 0; + glfwGetWindowPos(nativeWindow, &windowX, &windowY); + const ImVec2 delta = ImGui::GetIO().MouseDelta; + glfwSetWindowPos(nativeWindow, windowX + (int)delta.x, windowY + (int)delta.y); + } +#endif + + const std::string projectName = GetProjectDisplayName(); + const ImVec2 projectNameSize = ImGui::CalcTextSize(projectName.c_str()); + const ImVec2 projectBoxMin(windowPos.x + window->Size.x - controlsWidth - projectNameSize.x - 36.0f, windowPos.y + 14.0f); + const ImVec2 projectBoxMax(projectBoxMin.x + projectNameSize.x + 20.0f, projectBoxMin.y + 26.0f); + drawList->AddRect(projectBoxMin, projectBoxMax, Colors::Theme::muted, 6.0f, 0, 1.0f); + drawList->AddText(ImVec2(projectBoxMin.x + 10.0f, projectBoxMin.y + 5.0f), Colors::Theme::text, projectName.c_str()); + + const float buttonSize = 34.0f; + const float buttonY = (m_TitlebarHeight - buttonSize) * 0.5f; + const float buttonsStartX = window->Size.x - controlsWidth; + const ImU32 normalTint = IM_COL32(220, 220, 220, 220); + const ImU32 hoverTint = IM_COL32(255, 255, 255, 255); + const ImU32 activeTint = IM_COL32(200, 200, 200, 255); + + auto drawWindowControlButton = [&](const char* id, const Ref& icon, float localX, auto&& onClick) + { + ImGui::SetCursorPos(ImVec2(localX, buttonY)); + ImGui::InvisibleButton(id, ImVec2(buttonSize, buttonSize)); + if (icon) + UI::DrawButtonImage(icon, normalTint, hoverTint, activeTint, ImGui::GetItemRectMin(), ImGui::GetItemRectMax()); + + if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) + onClick(); + }; + + drawWindowControlButton("##minimizeWindow", EditorResources::MinimizeIcon, buttonsStartX + 4.0f, [nativeWindow]() + { + if (!nativeWindow) + return; + Application::Get().QueueEvent([nativeWindow]() { glfwIconifyWindow(nativeWindow); }); + }); + + drawWindowControlButton("##maximizeRestoreWindow", isMaximized ? EditorResources::RestoreIcon : EditorResources::MaximizeIcon, buttonsStartX + 42.0f, [nativeWindow, isMaximized]() + { + if (!nativeWindow) + return; + Application::Get().QueueEvent([nativeWindow, isMaximized]() + { + if (isMaximized) + glfwRestoreWindow(nativeWindow); + else + glfwMaximizeWindow(nativeWindow); + }); + }); + + drawWindowControlButton("##closeWindow", EditorResources::CloseIcon, buttonsStartX + 80.0f, []() + { + Application::Get().DispatchEvent(); + }); + } + void EditorLayer::UI_Toolbar() { ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 2)); @@ -633,6 +841,7 @@ namespace Lux { EventDispatcher dispatcher(e); dispatcher.Dispatch(LUX_BIND_EVENT_FN(EditorLayer::OnKeyPressed)); dispatcher.Dispatch(LUX_BIND_EVENT_FN(EditorLayer::OnMouseButtonPressed)); + dispatcher.Dispatch(LUX_BIND_EVENT_FN(EditorLayer::OnTitleBarHitTest)); } bool EditorLayer::OnKeyPressed(KeyPressedEvent& e) @@ -678,6 +887,20 @@ namespace Lux { return false; } + bool EditorLayer::OnTitleBarHitTest(WindowTitleBarHitTestEvent& e) + { + const float x = (float)e.GetX(); + const float y = (float)e.GetY(); + + const bool inDragZone = x >= m_TitleBarDragRectMin.x && x <= m_TitleBarDragRectMax.x + && y >= m_TitleBarDragRectMin.y && y <= m_TitleBarDragRectMax.y; + + if (inDragZone) + e.SetHit(true); + + return inDragZone; + } + void EditorLayer::OnOverlayRender() { if (m_SceneState == SceneState::Play) diff --git a/Editor/Source/EditorLayer.h b/Editor/Source/EditorLayer.h index a17041b..7c0932c 100644 --- a/Editor/Source/EditorLayer.h +++ b/Editor/Source/EditorLayer.h @@ -40,9 +40,12 @@ namespace Lux private: bool OnKeyPressed(KeyPressedEvent& e); bool OnMouseButtonPressed(MouseButtonPressedEvent& e); + bool OnTitleBarHitTest(WindowTitleBarHitTestEvent& e); //bool OnWindowDrop(WindowDropEvent& e); void OnOverlayRender(); + void UI_DrawTitlebar(); + void UI_DrawMenubar(); void NewProject(); bool OpenProject(); @@ -113,6 +116,16 @@ namespace Lux }; SceneState m_SceneState = SceneState::Edit; + ImVec4 m_AnimatedTitlebarColor = ImGui::ColorConvertU32ToFloat4(Colors::Theme::titlebar); + ImVec2 m_TitleBarDragRectMin = { 0.0f, 0.0f }; + ImVec2 m_TitleBarDragRectMax = { 0.0f, 0.0f }; + float m_TitlebarHeight = 57.0f; + + bool m_ShowImGuiMetrics = false; + bool m_ShowImGuiStyleEditor = false; + bool m_ShowAboutPopup = false; + bool m_SecondViewportEnabled = false; + // Editor resources Ref m_IconPlay, m_IconPause, m_IconStep, m_IconSimulate, m_IconStop; }; From 036b2ef3e3187c268a0357d82e9cbb645e5822e5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 12 Apr 2026 01:30:30 +0000 Subject: [PATCH 04/18] Phase 1: add entity relationship and world transform foundation Agent-Logs-Url: https://github.com/starbounded-dev/LuxEngine/sessions/d53382d2-2538-494a-889e-b6b51fec073e Co-authored-by: sheazywi <73042839+sheazywi@users.noreply.github.com> --- Core/Source/Lux/Scene/Components.h | 11 ++- Core/Source/Lux/Scene/Entity.cpp | 64 +++++++++++++ Core/Source/Lux/Scene/Entity.h | 4 + Core/Source/Lux/Scene/Scene.cpp | 139 +++++++++++++++++------------ Core/Source/Lux/Scene/Scene.h | 4 +- 5 files changed, 163 insertions(+), 59 deletions(-) diff --git a/Core/Source/Lux/Scene/Components.h b/Core/Source/Lux/Scene/Components.h index 683a64a..79946c9 100644 --- a/Core/Source/Lux/Scene/Components.h +++ b/Core/Source/Lux/Scene/Components.h @@ -81,6 +81,15 @@ namespace Lux { } }; + struct RelationshipComponent + { + UUID ParentHandle = 0; + std::vector Children; + + RelationshipComponent() = default; + RelationshipComponent(const RelationshipComponent&) = default; + }; + struct SpriteRendererComponent { glm::vec4 Color{ 1.0f, 1.0f, 1.0f, 1.0f }; @@ -349,7 +358,7 @@ namespace Lux { }; using AllComponents = - ComponentGroup + namespace Lux { Entity::Entity(entt::entity handle, Scene* scene) @@ -10,6 +12,68 @@ namespace Lux { } + Entity Entity::GetParent() const + { + if (!m_Scene || !m_Scene->m_Registry.template has(m_EntityHandle)) + return {}; + + const auto& relationship = m_Scene->m_Registry.get(m_EntityHandle); + if ((uint64_t)relationship.ParentHandle == 0) + return {}; + + return m_Scene->GetEntityByUUID(relationship.ParentHandle); + } + + void Entity::SetParent(Entity parent) + { + if (!*this || !m_Scene) + return; + + if (parent && parent.m_Scene != m_Scene) + return; + + if (parent == *this) + return; + + auto& relationship = GetComponent(); + const UUID selfUUID = GetUUID(); + + // Prevent cycles + for (Entity current = parent; current; current = current.GetParent()) + { + if (current == *this) + return; + } + + Entity currentParent = GetParent(); + if (currentParent) + { + auto& siblings = currentParent.GetComponent().Children; + siblings.erase(std::remove(siblings.begin(), siblings.end(), selfUUID), siblings.end()); + } + + relationship.ParentHandle = 0; + + if (!parent) + return; + + auto& parentRelationship = parent.GetComponent(); + if (std::find(parentRelationship.Children.begin(), parentRelationship.Children.end(), selfUUID) == parentRelationship.Children.end()) + parentRelationship.Children.emplace_back(selfUUID); + + relationship.ParentHandle = parent.GetUUID(); + } + + std::vector& Entity::Children() + { + return GetComponent().Children; + } + + bool Entity::HasParent() const + { + return (bool)GetParent(); + } + ScriptComponent::ScriptComponent() = default; ScriptComponent::ScriptComponent(const ScriptComponent&) = default; ScriptComponent& ScriptComponent::operator=(const ScriptComponent&) = default; diff --git a/Core/Source/Lux/Scene/Entity.h b/Core/Source/Lux/Scene/Entity.h index 1c4df4b..88c3514 100644 --- a/Core/Source/Lux/Scene/Entity.h +++ b/Core/Source/Lux/Scene/Entity.h @@ -58,6 +58,10 @@ namespace Lux UUID GetUUID() { return GetComponent().ID; } const std::string& GetName() { return GetComponent().Tag; } + Entity GetParent() const; + void SetParent(Entity parent); + std::vector& Children(); + bool HasParent() const; bool operator==(const Entity& other) const { diff --git a/Core/Source/Lux/Scene/Scene.cpp b/Core/Source/Lux/Scene/Scene.cpp index 28dc162..d58641d 100644 --- a/Core/Source/Lux/Scene/Scene.cpp +++ b/Core/Source/Lux/Scene/Scene.cpp @@ -116,6 +116,7 @@ namespace Lux { Entity entity = { m_Registry.create(), this }; entity.AddComponent(uuid); entity.AddComponent(); + entity.AddComponent(); auto& tag = entity.AddComponent(); tag.Tag = name.empty() ? "Entity" : name; @@ -139,15 +140,18 @@ namespace Lux { { auto filter = m_Registry.view(); - filter.each([&](TransformComponent& transform, AudioListenerComponent& ac) + filter.each([&](entt::entity entityHandle, TransformComponent&, AudioListenerComponent& ac) { ac.Listener = Ref::Create(); if (ac.Active) { - const glm::mat4 inverted = glm::inverse(transform.GetTransform()); + Entity entity = { entityHandle, this }; + const glm::mat4 worldTransform = GetWorldSpaceTransformMatrix(entity); + const glm::mat4 inverted = glm::inverse(worldTransform); + const glm::vec3 worldPosition = glm::vec3(worldTransform[3]); const glm::vec3 forward = glm::normalize(glm::vec3(inverted[2].x, inverted[2].y, inverted[2].z)); ac.Listener->SetConfig(ac.Config); - ac.Listener->SetPosition(glm::vec4(transform.Translation, 1.0f)); + ac.Listener->SetPosition(glm::vec4(worldPosition, 1.0f)); ac.Listener->SetDirection(glm::vec3{ -forward.x, -forward.y, -forward.z }); } }); @@ -155,20 +159,24 @@ namespace Lux { { auto view = m_Registry.view(); - view.each([&](TransformComponent& transform, AudioSourceComponent& ac) + view.each([&](entt::entity entityHandle, TransformComponent&, AudioSourceComponent& ac) { if (AssetManager::IsAssetHandleValid(ac.Audio)) { + Entity entity = { entityHandle, this }; + const glm::mat4 worldTransform = GetWorldSpaceTransformMatrix(entity); + const glm::vec3 worldPosition = glm::vec3(worldTransform[3]); + const glm::mat4 inverted = glm::inverse(worldTransform); + const glm::vec3 forward = glm::normalize(glm::vec3(inverted[2].x, inverted[2].y, inverted[2].z)); + if (ac.Audio && !ac.AudioSourceData.UsePlaylist) { Ref audioSource = AssetManager::GetAsset(ac.Audio); - const glm::mat4 inverted = glm::inverse(transform.GetTransform()); - const glm::vec3 forward = glm::normalize(glm::vec3(inverted[2].x, inverted[2].y, inverted[2].z)); if (audioSource != nullptr) { audioSource->SetConfig(ac.Config); - audioSource->SetPosition(glm::vec4(transform.Translation, 1.0f)); + audioSource->SetPosition(glm::vec4(worldPosition, 1.0f)); audioSource->SetDirection(forward); if (ac.Config.PlayOnAwake) audioSource->Play(); @@ -182,13 +190,11 @@ namespace Lux { if (ac.AudioSourceData.CurrentIndex < ac.AudioSourceData.Playlist.size()) { Ref playingSourceIndex = AssetManager::GetAsset(ac.AudioSourceData.Playlist[ac.AudioSourceData.CurrentIndex]); - const glm::mat4 inverted = glm ::inverse(transform.GetTransform()); - const glm::vec3 forward = glm::normalize(glm::vec3(inverted[2].x, inverted[2].y, inverted[2].z)); if (playingSourceIndex != nullptr) { playingSourceIndex->SetConfig(ac.Config); - playingSourceIndex->SetPosition(glm::vec4(transform.Translation, 1.0f)); + playingSourceIndex->SetPosition(glm::vec4(worldPosition, 1.0f)); playingSourceIndex->SetDirection(forward); if (ac.Config.PlayOnAwake) playingSourceIndex->Play(); @@ -348,13 +354,14 @@ namespace Lux { { Entity e = { entity, this }; auto& ac = e.GetComponent(); - auto& transform = e.GetComponent(); if (ac.Active) { - const glm::mat4 inverted = glm::inverse(transform.GetTransform()); + const glm::mat4 worldTransform = GetWorldSpaceTransformMatrix(e); + const glm::mat4 inverted = glm::inverse(worldTransform); + const glm::vec3 worldPosition = glm::vec3(worldTransform[3]); const glm::vec3 forward = glm::normalize(glm::vec3(inverted[2].x, inverted[2].y, inverted[2].z)); - ac.Listener->SetPosition(glm::vec4(transform.Translation, 1.0f)); + ac.Listener->SetPosition(glm::vec4(worldPosition, 1.0f)); ac.Listener->SetDirection(glm::vec3{ -forward.x, -forward.y, -forward.z }); //break; } @@ -365,13 +372,11 @@ namespace Lux { LUX_PROFILE_SCOPE_COLOR("Scene::OnUpdateRuntime::AudioSourceComponent Scope", 0xFF7200); auto view = m_Registry.view(); - view.each([&](entt::entity entity, TransformComponent& transform, AudioSourceComponent& asc) + view.each([&](entt::entity entityHandle, TransformComponent&, AudioSourceComponent& asc) { - //Entity e = { entity, this }; - //auto& transform = e.GetComponent(); - - //const glm::mat4 inverted = glm::inverse(transform.GetTransform()); - //const glm::vec3 forward = glm::vector_normalize3(inverted.Value.z_axis); + Entity entity = { entityHandle, this }; + const glm::mat4 worldTransform = GetWorldSpaceTransformMatrix(entity); + const glm::vec3 worldPosition = glm::vec3(worldTransform[3]); if (asc.Audio && !asc.AudioSourceData.UsePlaylist) { @@ -387,7 +392,7 @@ namespace Lux { } audioSource->SetConfig(asc.Config); - audioSource->SetPosition(glm::vec4(transform.Translation, 1.0f)); + audioSource->SetPosition(glm::vec4(worldPosition, 1.0f)); } else if (asc.Audio && asc.AudioSourceData.UsePlaylist) { @@ -419,7 +424,7 @@ namespace Lux { { currentSource->SetConfig(asc.Config); currentSource->Play(); - currentSource->SetPosition(glm::vec4(transform.Translation, 1.0f)); + currentSource->SetPosition(glm::vec4(worldPosition, 1.0f)); asc.AudioSourceData.PlayingCurrentIndex = true; asc.Paused = false; @@ -447,13 +452,14 @@ namespace Lux { { Entity e = { acEntity, this }; auto& ac = e.GetComponent(); - auto& transform = e.GetComponent(); if (ac.Active) { - const glm::mat4 inverted = glm::inverse(transform.GetTransform()); + const glm::mat4 worldTransform = GetWorldSpaceTransformMatrix(e); + const glm::mat4 inverted = glm::inverse(worldTransform); + const glm::vec3 worldPosition = glm::vec3(worldTransform[3]); const glm::vec3 forward = glm::normalize(glm::vec3(inverted[2].x, inverted[2].y, inverted[2].z)); - ac.Listener->SetPosition(glm::vec4(transform.Translation, 1.0f)); + ac.Listener->SetPosition(glm::vec4(worldPosition, 1.0f)); ac.Listener->SetDirection(glm::vec3{ -forward.x, -forward.y, -forward.z }); } }); @@ -467,7 +473,6 @@ namespace Lux { { Entity e = { entity , this}; - auto& transform = e.GetComponent(); if (asc.Audio) { @@ -523,12 +528,12 @@ namespace Lux { auto view = m_Registry.view(); for (auto entity : view) { - auto [transform, camera] = view.get(entity); + auto& camera = view.get(entity); if (camera.Primary) { mainCamera = &camera.Camera; - cameraTransform = transform.GetTransform(); + cameraTransform = GetWorldSpaceTransformMatrix(Entity{ entity, this }); break; } } @@ -544,13 +549,14 @@ namespace Lux { auto group = m_Registry.group(entt::get); for (auto entity : group) { - auto [transform, sprite] = group.get(entity); + auto& sprite = group.get(entity); Ref texture = AssetManager::GetAsset(sprite.Texture); + const glm::mat4 worldTransform = GetWorldSpaceTransformMatrix(Entity{ entity, this }); if (texture) - m_Renderer2D->DrawQuad(transform.GetTransform(), texture, sprite.TilingFactor, sprite.Color); + m_Renderer2D->DrawQuad(worldTransform, texture, sprite.TilingFactor, sprite.Color); else - m_Renderer2D->DrawQuad(transform.GetTransform(), sprite.Color); // fallback to solid color + m_Renderer2D->DrawQuad(worldTransform, sprite.Color); // fallback to solid color } } @@ -559,9 +565,9 @@ namespace Lux { auto view = m_Registry.view(); for (auto entity : view) { - auto [transform, circle] = view.get(entity); + auto& circle = view.get(entity); - m_Renderer2D->DrawCircle(transform.GetTransform(), circle.Color); + m_Renderer2D->DrawCircle(GetWorldSpaceTransformMatrix(Entity{ entity, this }), circle.Color); } } @@ -570,12 +576,12 @@ namespace Lux { auto view = m_Registry.view(); for (auto entity : view) { - auto [transform, text] = view.get(entity); + auto& text = view.get(entity); Ref font = AssetManager::GetAsset(text.FontHandle); if (font) { - m_Renderer2D->DrawString(text.TextString, font, transform.GetTransform(), text.MaxWidth, text.Color, text.LineSpacing, text.Kerning); + m_Renderer2D->DrawString(text.TextString, font, GetWorldSpaceTransformMatrix(Entity{ entity, this }), text.MaxWidth, text.Color, text.LineSpacing, text.Kerning); } } } @@ -684,14 +690,35 @@ namespace Lux { return {}; } - Entity Scene::GetEntityByUUID(UUID uuid) + Entity Scene::GetEntityByUUID(UUID uuid) const { if (m_EntityMap.find(uuid) != m_EntityMap.end()) - return { m_EntityMap.at(uuid), this }; + return { m_EntityMap.at(uuid), const_cast(this) }; return {}; } + glm::mat4 Scene::GetWorldSpaceTransformMatrix(Entity entity) const + { + if (!entity || !entity.HasComponent()) + return glm::mat4(1.0f); + + glm::mat4 transform = entity.GetComponent().GetTransform(); + + if (entity.HasComponent()) + { + const auto& relationship = entity.GetComponent(); + if ((uint64_t)relationship.ParentHandle != 0) + { + Entity parent = GetEntityByUUID(relationship.ParentHandle); + if (parent) + transform = GetWorldSpaceTransformMatrix(parent) * transform; + } + } + + return transform; + } + void Scene::OnPhysics2DStart() { // Guard against double-call leak @@ -769,12 +796,13 @@ namespace Lux { auto group = m_Registry.group(entt::get); for (auto entity : group) { - auto [transform, sprite] = group.get(entity); + auto& sprite = group.get(entity); Ref texture = AssetManager::GetAsset(sprite.Texture); + const glm::mat4 worldTransform = GetWorldSpaceTransformMatrix(Entity{ entity, this }); if (texture) - m_Renderer2D->DrawQuad(transform.GetTransform(), texture, sprite.TilingFactor, sprite.Color); + m_Renderer2D->DrawQuad(worldTransform, texture, sprite.TilingFactor, sprite.Color); else - m_Renderer2D->DrawQuad(transform.GetTransform(), sprite.Color); + m_Renderer2D->DrawQuad(worldTransform, sprite.Color); } } @@ -783,8 +811,8 @@ namespace Lux { auto view = m_Registry.view(); for (auto entity : view) { - auto [transform, circle] = view.get(entity); - m_Renderer2D->DrawCircle(transform.GetTransform(), circle.Color); + auto& circle = view.get(entity); + m_Renderer2D->DrawCircle(GetWorldSpaceTransformMatrix(Entity{ entity, this }), circle.Color); } } // Draw text @@ -792,11 +820,11 @@ namespace Lux { auto view = m_Registry.view(); for (auto entity : view) { - auto [transform, text] = view.get(entity); + auto& text = view.get(entity); Ref font = AssetManager::GetAsset(text.FontHandle); if (font) { - m_Renderer2D->DrawString(text.TextString, font, transform.GetTransform(), text.MaxWidth, text.Color, text.LineSpacing, text.Kerning); + m_Renderer2D->DrawString(text.TextString, font, GetWorldSpaceTransformMatrix(Entity{ entity, this }), text.MaxWidth, text.Color, text.LineSpacing, text.Kerning); } } } @@ -821,16 +849,10 @@ namespace Lux { if (dirLightIndex >= LightEnvironment::MaxDirectionalLights) break; - const auto& transform = view.get(entity); const auto& dirLight = view.get(entity); + const glm::mat4 worldTransform = GetWorldSpaceTransformMatrix(Entity{ entity, const_cast(this) }); - // Calculate direction from rotation (forward vector) - glm::vec3 rotation = transform.Rotation; - glm::vec3 direction = glm::normalize(glm::vec3( - cos(rotation.y) * cos(rotation.x), - sin(rotation.x), - sin(rotation.y) * cos(rotation.x) - )); + glm::vec3 direction = glm::normalize(glm::vec3(worldTransform * glm::vec4(0.0f, 0.0f, -1.0f, 0.0f))); lightEnv.DirectionalLights[dirLightIndex].Direction = direction; lightEnv.DirectionalLights[dirLightIndex].Radiance = dirLight.Radiance; @@ -847,11 +869,11 @@ namespace Lux { auto view = m_Registry.view(); for (auto entity : view) { - const auto& transform = view.get(entity); const auto& pointLight = view.get(entity); + const glm::mat4 worldTransform = GetWorldSpaceTransformMatrix(Entity{ entity, const_cast(this) }); PointLight pl; - pl.Position = transform.Translation; + pl.Position = glm::vec3(worldTransform[3]); pl.Radiance = pointLight.Radiance; pl.Intensity = pointLight.Intensity; pl.Radius = pointLight.Radius; @@ -893,7 +915,6 @@ namespace Lux { for (auto e : view) { Entity entity = { e, const_cast(this) }; - const auto& transform = view.get(e); const auto& meshComp = view.get(e); if (!meshComp.Visible) @@ -932,7 +953,7 @@ namespace Lux { staticMesh, meshSource, materialTable, - transform.GetTransform(), + GetWorldSpaceTransformMatrix(entity), nullptr, // no override material selected ); @@ -984,12 +1005,11 @@ namespace Lux { return; const auto& cameraComp = cameraEntity.GetComponent(); - const auto& transformComp = cameraEntity.GetComponent(); // Set up the SceneRendererCamera from the runtime camera SceneRendererCamera sceneCamera; sceneCamera.Camera.SetProjectionMatrix(cameraComp.Camera.GetProjectionMatrix(), cameraComp.Camera.GetUnReversedProjectionMatrix()); - sceneCamera.ViewMatrix = glm::inverse(transformComp.GetTransform()); + sceneCamera.ViewMatrix = glm::inverse(GetWorldSpaceTransformMatrix(cameraEntity)); // Note: Near/Far/FOV from runtime camera component if needed // Begin the 3D rendering frame @@ -1031,6 +1051,11 @@ namespace Lux { { } + template<> + void Scene::OnComponentAdded(Entity entity, RelationshipComponent& component) + { + } + template<> void Scene::OnComponentAdded(Entity entity, CameraComponent& component) { diff --git a/Core/Source/Lux/Scene/Scene.h b/Core/Source/Lux/Scene/Scene.h index db5701c..f3c2626 100644 --- a/Core/Source/Lux/Scene/Scene.h +++ b/Core/Source/Lux/Scene/Scene.h @@ -9,6 +9,7 @@ #include "entt/entt.hpp" +#include #include class b2World; @@ -54,7 +55,8 @@ namespace Lux { Entity DuplicateEntity(Entity entity); Entity FindEntityByName(std::string_view name); - Entity GetEntityByUUID(UUID uuid); + Entity GetEntityByUUID(UUID uuid) const; + glm::mat4 GetWorldSpaceTransformMatrix(Entity entity) const; Entity GetPrimaryCameraEntity(); From 4ae4133c5ca63779ca0be529619008e55487d498 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 12 Apr 2026 01:33:58 +0000 Subject: [PATCH 05/18] Phase 1: address review nits and finalize hierarchy foundation Agent-Logs-Url: https://github.com/starbounded-dev/LuxEngine/sessions/d53382d2-2538-494a-889e-b6b51fec073e Co-authored-by: sheazywi <73042839+sheazywi@users.noreply.github.com> --- Core/Source/Lux/Scene/Entity.cpp | 2 +- Core/Source/Lux/Scene/Scene.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Core/Source/Lux/Scene/Entity.cpp b/Core/Source/Lux/Scene/Entity.cpp index ddfb400..1018439 100644 --- a/Core/Source/Lux/Scene/Entity.cpp +++ b/Core/Source/Lux/Scene/Entity.cpp @@ -18,7 +18,7 @@ namespace Lux { return {}; const auto& relationship = m_Scene->m_Registry.get(m_EntityHandle); - if ((uint64_t)relationship.ParentHandle == 0) + if (relationship.ParentHandle == 0) return {}; return m_Scene->GetEntityByUUID(relationship.ParentHandle); diff --git a/Core/Source/Lux/Scene/Scene.cpp b/Core/Source/Lux/Scene/Scene.cpp index d58641d..954f950 100644 --- a/Core/Source/Lux/Scene/Scene.cpp +++ b/Core/Source/Lux/Scene/Scene.cpp @@ -708,7 +708,7 @@ namespace Lux { if (entity.HasComponent()) { const auto& relationship = entity.GetComponent(); - if ((uint64_t)relationship.ParentHandle != 0) + if (relationship.ParentHandle != 0) { Entity parent = GetEntityByUUID(relationship.ParentHandle); if (parent) From 9259b456c178449a5a5993cf7601276f02dda083 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 12 Apr 2026 01:49:35 +0000 Subject: [PATCH 06/18] Phase 2: add Mesh, MeshTag, and Prefab components Agent-Logs-Url: https://github.com/starbounded-dev/LuxEngine/sessions/f16b0821-312b-4a7d-958d-babb8c8cf8af Co-authored-by: sheazywi <73042839+sheazywi@users.noreply.github.com> --- Core/Source/Lux/Scene/Components.h | 33 +++++++++++++++++++++++++++++- Core/Source/Lux/Scene/Scene.cpp | 15 ++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/Core/Source/Lux/Scene/Components.h b/Core/Source/Lux/Scene/Components.h index 79946c9..9ab0d07 100644 --- a/Core/Source/Lux/Scene/Components.h +++ b/Core/Source/Lux/Scene/Components.h @@ -291,6 +291,37 @@ namespace Lux { // 3D RENDERING COMPONENTS // ============================================================================ + struct MeshComponent + { + AssetHandle Mesh = 0; + AssetHandle MaterialTable = 0; + bool Visible = true; + bool CastShadows = true; + + MeshComponent() = default; + MeshComponent(const MeshComponent&) = default; + }; + + struct MeshTagComponent + { + std::string MeshName; + + MeshTagComponent() = default; + MeshTagComponent(const MeshTagComponent&) = default; + MeshTagComponent(const std::string& meshName) + : MeshName(meshName) { + } + }; + + struct PrefabComponent + { + AssetHandle PrefabID = 0; + UUID EntityID = 0; + + PrefabComponent() = default; + PrefabComponent(const PrefabComponent&) = default; + }; + struct StaticMeshComponent { AssetHandle Mesh = 0; @@ -362,6 +393,6 @@ namespace Lux { CircleRendererComponent, CameraComponent, ScriptComponent, NativeScriptComponent, RigidBody2DComponent, BoxCollider2DComponent, CircleCollider2DComponent, TextComponent, AudioData, AudioSourceComponent, AudioListenerComponent, - StaticMeshComponent, DirectionalLightComponent, PointLightComponent, SpotLightComponent, SkyLightComponent>; + MeshComponent, MeshTagComponent, PrefabComponent, StaticMeshComponent, DirectionalLightComponent, PointLightComponent, SpotLightComponent, SkyLightComponent>; } diff --git a/Core/Source/Lux/Scene/Scene.cpp b/Core/Source/Lux/Scene/Scene.cpp index 954f950..fa8d7cf 100644 --- a/Core/Source/Lux/Scene/Scene.cpp +++ b/Core/Source/Lux/Scene/Scene.cpp @@ -1151,6 +1151,21 @@ namespace Lux { // 3D Component specializations + template<> + void Scene::OnComponentAdded(Entity entity, MeshComponent& component) + { + } + + template<> + void Scene::OnComponentAdded(Entity entity, MeshTagComponent& component) + { + } + + template<> + void Scene::OnComponentAdded(Entity entity, PrefabComponent& component) + { + } + template<> void Scene::OnComponentAdded(Entity entity, StaticMeshComponent& component) { From 214042fb66e8b06159f6d4bc7ee17f4fb18c9078 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 12 Apr 2026 01:50:51 +0000 Subject: [PATCH 07/18] Phase 3: add Prefab asset creation and scene instantiation Agent-Logs-Url: https://github.com/starbounded-dev/LuxEngine/sessions/f16b0821-312b-4a7d-958d-babb8c8cf8af Co-authored-by: sheazywi <73042839+sheazywi@users.noreply.github.com> --- Core/Source/Lux/ImGui/ImGuiEx.h | 2 +- Core/Source/Lux/Scene/Entity.h | 1 + Core/Source/Lux/Scene/Prefab.cpp | 71 ++++++++++++++++++++++++++++++++ Core/Source/Lux/Scene/Prefab.h | 29 +++++++++++++ Core/Source/Lux/Scene/Scene.cpp | 49 ++++++++++++++++++++++ Core/Source/Lux/Scene/Scene.h | 2 + 6 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 Core/Source/Lux/Scene/Prefab.cpp create mode 100644 Core/Source/Lux/Scene/Prefab.h diff --git a/Core/Source/Lux/ImGui/ImGuiEx.h b/Core/Source/Lux/ImGui/ImGuiEx.h index 770c79c..45824b5 100644 --- a/Core/Source/Lux/ImGui/ImGuiEx.h +++ b/Core/Source/Lux/ImGui/ImGuiEx.h @@ -10,7 +10,7 @@ #include "Lux/ImGui/ImGuiFonts.h" #include "Lux/ImGui/ImGuiUtilities.h" #include "Lux/ImGui/ImGuiWidgets.h" -//#include "Lux/Scene/Prefab.h" +#include "Lux/Scene/Prefab.h" #include "Lux/Scene/Scene.h" #include "Lux/Utilities/StringUtils.h" diff --git a/Core/Source/Lux/Scene/Entity.h b/Core/Source/Lux/Scene/Entity.h index 88c3514..40454ee 100644 --- a/Core/Source/Lux/Scene/Entity.h +++ b/Core/Source/Lux/Scene/Entity.h @@ -58,6 +58,7 @@ namespace Lux UUID GetUUID() { return GetComponent().ID; } const std::string& GetName() { return GetComponent().Tag; } + Scene* GetScene() const { return m_Scene; } Entity GetParent() const; void SetParent(Entity parent); std::vector& Children(); diff --git a/Core/Source/Lux/Scene/Prefab.cpp b/Core/Source/Lux/Scene/Prefab.cpp new file mode 100644 index 0000000..d97a6d2 --- /dev/null +++ b/Core/Source/Lux/Scene/Prefab.cpp @@ -0,0 +1,71 @@ +#include "lpch.h" +#include "Lux/Scene/Prefab.h" + +#include "Lux/Scene/Components.h" +#include "Lux/Scene/Entity.h" +#include "Lux/Scene/Scene.h" + +namespace Lux { + + template + static void CopyComponentIfExists(Entity dst, Entity src) + { + ([&]() + { + if (src.HasComponent()) + dst.AddOrReplaceComponent(src.GetComponent()); + }(), ...); + } + + template + static void CopyComponentIfExists(ComponentGroup, Entity dst, Entity src) + { + CopyComponentIfExists(dst, src); + } + + using PrefabCloneComponents = + ComponentGroup; + + Prefab::Prefab() + { + m_Scene = Ref::Create(); + } + + Entity Prefab::CreatePrefabFromEntity(Entity entity) + { + LUX_CORE_ASSERT(entity, "Cannot create prefab from null entity!"); + + m_Scene = Ref::Create(); + m_RootEntityID = 0; + + std::function duplicateHierarchy; + duplicateHierarchy = [&](Entity source, Entity parent) -> Entity + { + Entity destination = m_Scene->CreateEntity(source.GetName()); + CopyComponentIfExists(PrefabCloneComponents{}, destination, source); + + if (parent) + destination.SetParent(parent); + + if (source.HasComponent()) + { + for (const UUID childID : source.Children()) + { + Entity child = source.GetScene()->GetEntityByUUID(childID); + if (child) + duplicateHierarchy(child, destination); + } + } + + return destination; + }; + + Entity root = duplicateHierarchy(entity, {}); + m_RootEntityID = root.GetUUID(); + return root; + } + +} diff --git a/Core/Source/Lux/Scene/Prefab.h b/Core/Source/Lux/Scene/Prefab.h new file mode 100644 index 0000000..d34b567 --- /dev/null +++ b/Core/Source/Lux/Scene/Prefab.h @@ -0,0 +1,29 @@ +#pragma once + +#include "Lux/Asset/Asset.h" +#include "Lux/Core/UUID.h" + +namespace Lux { + + class Scene; + class Entity; + + class Prefab : public Asset + { + public: + Prefab(); + + static AssetType GetStaticType() { return AssetType::Prefab; } + virtual AssetType GetAssetType() const override { return GetStaticType(); } + + Entity CreatePrefabFromEntity(Entity entity); + + const Ref& GetScene() const { return m_Scene; } + UUID GetRootEntityID() const { return m_RootEntityID; } + + private: + Ref m_Scene; + UUID m_RootEntityID = 0; + }; + +} diff --git a/Core/Source/Lux/Scene/Scene.cpp b/Core/Source/Lux/Scene/Scene.cpp index fa8d7cf..19d1363 100644 --- a/Core/Source/Lux/Scene/Scene.cpp +++ b/Core/Source/Lux/Scene/Scene.cpp @@ -9,6 +9,7 @@ #include "Lux/Scene/Components.h" #include "Lux/Scene/Entity.h" +#include "Lux/Scene/Prefab.h" #include "Lux/Scene/ScriptableEntity.h" #include "Lux/Scripting/ScriptEngine.h" #include "Lux/Renderer/Renderer2D.h" @@ -678,6 +679,54 @@ namespace Lux { return newEntity; } + Entity Scene::InstantiatePrefab(Ref prefab) + { + if (!prefab) + return {}; + + const Ref& prefabScene = prefab->GetScene(); + if (!prefabScene) + return {}; + + Entity prefabRoot = prefabScene->GetEntityByUUID(prefab->GetRootEntityID()); + if (!prefabRoot) + return {}; + + using PrefabInstantiationComponents = + ComponentGroup; + + std::function instantiateHierarchy; + instantiateHierarchy = [&](Entity source, Entity parent) -> Entity + { + Entity destination = CreateEntity(source.GetName()); + CopyComponentIfExists(PrefabInstantiationComponents{}, destination, source); + + auto& prefabComponent = destination.AddOrReplaceComponent(); + prefabComponent.PrefabID = prefab->Handle; + prefabComponent.EntityID = source.GetUUID(); + + if (parent) + destination.SetParent(parent); + + if (source.HasComponent()) + { + for (const UUID childID : source.Children()) + { + Entity child = prefabScene->GetEntityByUUID(childID); + if (child) + instantiateHierarchy(child, destination); + } + } + + return destination; + }; + + return instantiateHierarchy(prefabRoot, {}); + } + Entity Scene::FindEntityByName(std::string_view name) { auto view = m_Registry.view(); diff --git a/Core/Source/Lux/Scene/Scene.h b/Core/Source/Lux/Scene/Scene.h index f3c2626..3f2859e 100644 --- a/Core/Source/Lux/Scene/Scene.h +++ b/Core/Source/Lux/Scene/Scene.h @@ -18,6 +18,7 @@ namespace Lux { class Entity; class Framebuffer; + class Prefab; class SceneRenderer; // Forward declare light structures (defined in SceneRenderer.h) @@ -53,6 +54,7 @@ namespace Lux { void SetTargetFramebuffer(Ref framebuffer); // add this Entity DuplicateEntity(Entity entity); + Entity InstantiatePrefab(Ref prefab); Entity FindEntityByName(std::string_view name); Entity GetEntityByUUID(UUID uuid) const; From b4fd07ecb8dcbdffa1053a5eb1afe2641b3f12f0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 12 Apr 2026 02:08:56 +0000 Subject: [PATCH 08/18] Phase 4: serialize hierarchy and new prefab/mesh components Agent-Logs-Url: https://github.com/starbounded-dev/LuxEngine/sessions/410e4096-920e-42cb-a755-1c5bc98874b2 Co-authored-by: sheazywi <73042839+sheazywi@users.noreply.github.com> --- Core/Source/Lux/Scene/SceneSerializer.cpp | 104 ++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/Core/Source/Lux/Scene/SceneSerializer.cpp b/Core/Source/Lux/Scene/SceneSerializer.cpp index 0b7e801..4a6caef 100644 --- a/Core/Source/Lux/Scene/SceneSerializer.cpp +++ b/Core/Source/Lux/Scene/SceneSerializer.cpp @@ -213,6 +213,17 @@ namespace Lux { out << YAML::EndMap; // TransformComponent } + if (entity.HasComponent()) + { + out << YAML::Key << "RelationshipComponent"; + out << YAML::BeginMap; // RelationshipComponent + + const auto& relationship = entity.GetComponent(); + out << YAML::Key << "Parent" << YAML::Value << relationship.ParentHandle; + + out << YAML::EndMap; // RelationshipComponent + } + if (entity.HasComponent()) { out << YAML::Key << "CameraComponent"; @@ -380,6 +391,43 @@ namespace Lux { out << YAML::EndMap; // TextComponent } + if (entity.HasComponent()) + { + out << YAML::Key << "MeshComponent"; + out << YAML::BeginMap; + + const auto& component = entity.GetComponent(); + out << YAML::Key << "Mesh" << YAML::Value << component.Mesh; + out << YAML::Key << "MaterialTable" << YAML::Value << component.MaterialTable; + out << YAML::Key << "Visible" << YAML::Value << component.Visible; + out << YAML::Key << "CastShadows" << YAML::Value << component.CastShadows; + + out << YAML::EndMap; + } + + if (entity.HasComponent()) + { + out << YAML::Key << "MeshTagComponent"; + out << YAML::BeginMap; + + const auto& component = entity.GetComponent(); + out << YAML::Key << "MeshName" << YAML::Value << component.MeshName; + + out << YAML::EndMap; + } + + if (entity.HasComponent()) + { + out << YAML::Key << "PrefabComponent"; + out << YAML::BeginMap; + + const auto& component = entity.GetComponent(); + out << YAML::Key << "PrefabID" << YAML::Value << component.PrefabID; + out << YAML::Key << "EntityID" << YAML::Value << component.EntityID; + + out << YAML::EndMap; + } + if (entity.HasComponent()) { out << YAML::Key << "AudioSourceComponent"; @@ -573,6 +621,8 @@ namespace Lux { auto entities = data["Entities"]; if (entities) { + std::vector> pendingParentLinks; + for (auto entity : entities) { uint64_t uuid = entity["Entity"].as(); @@ -596,6 +646,14 @@ namespace Lux { tc.Scale = transformComponent["Scale"].as(); } + auto relationshipComponent = entity["RelationshipComponent"]; + if (relationshipComponent && relationshipComponent["Parent"]) + { + const UUID parentID = relationshipComponent["Parent"].as(); + if (parentID != 0) + pendingParentLinks.emplace_back(uuid, parentID); + } + auto cameraComponent = entity["CameraComponent"]; if (cameraComponent) { @@ -745,6 +803,44 @@ namespace Lux { tc.LineSpacing = textComponent["LineSpacing"].as(); } + auto meshComponent = entity["MeshComponent"]; + if (meshComponent) + { + auto& component = deserializedEntity.AddComponent(); + + if (meshComponent["Mesh"]) + component.Mesh = meshComponent["Mesh"].as(); + + if (meshComponent["MaterialTable"]) + component.MaterialTable = meshComponent["MaterialTable"].as(); + + if (meshComponent["Visible"]) + component.Visible = meshComponent["Visible"].as(); + + if (meshComponent["CastShadows"]) + component.CastShadows = meshComponent["CastShadows"].as(); + } + + auto meshTagComponent = entity["MeshTagComponent"]; + if (meshTagComponent) + { + auto& component = deserializedEntity.AddComponent(); + if (meshTagComponent["MeshName"]) + component.MeshName = meshTagComponent["MeshName"].as(); + } + + auto prefabComponent = entity["PrefabComponent"]; + if (prefabComponent) + { + auto& component = deserializedEntity.AddComponent(); + + if (prefabComponent["PrefabID"]) + component.PrefabID = prefabComponent["PrefabID"].as(); + + if (prefabComponent["EntityID"]) + component.EntityID = prefabComponent["EntityID"].as(); + } + auto audioSourceComponent = entity["AudioSourceComponent"]; if (audioSourceComponent) { @@ -957,6 +1053,14 @@ namespace Lux { component.Intensity = skyLightComponent["Intensity"].as(); } } + + for (const auto& [childID, parentID] : pendingParentLinks) + { + Entity childEntity = m_Scene->GetEntityByUUID(childID); + Entity parentEntity = m_Scene->GetEntityByUUID(parentID); + if (childEntity && parentEntity) + childEntity.SetParent(parentEntity); + } } return true; From 26f2fb06301566965205eef21cb416377e4b7882 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 12 Apr 2026 03:32:39 +0000 Subject: [PATCH 09/18] Phase 5: hierarchy tree reparenting and prefab drag-drop instantiation Agent-Logs-Url: https://github.com/starbounded-dev/LuxEngine/sessions/3cc95e1b-7917-48e3-b55b-e255bc294d2d Co-authored-by: sheazywi <73042839+sheazywi@users.noreply.github.com> --- Editor/Source/EditorLayer.cpp | 17 +++- Editor/Source/Panels/SceneHierarchyPanel.cpp | 99 ++++++++++++++++++-- 2 files changed, 108 insertions(+), 8 deletions(-) diff --git a/Editor/Source/EditorLayer.cpp b/Editor/Source/EditorLayer.cpp index 3687426..3ce8560 100644 --- a/Editor/Source/EditorLayer.cpp +++ b/Editor/Source/EditorLayer.cpp @@ -11,6 +11,7 @@ #include "Lux/Asset/AssetManager.h" #include "Lux/Asset/TextureImporter.h" #include "Lux/Asset/SceneImporter.h" +#include "Lux/Scene/Prefab.h" #include #include @@ -455,7 +456,21 @@ namespace Lux { if (const ImGuiPayload* payload = ImGui::AcceptDragDropPayload("CONTENT_BROWSER_ITEM")) { AssetHandle handle = *(AssetHandle*)payload->Data; - OpenScene(handle); + const AssetType type = AssetManager::GetAssetType(handle); + if (type == AssetType::Scene) + { + OpenScene(handle); + } + else if (type == AssetType::Prefab && m_SceneState == SceneState::Edit) + { + Ref prefab = AssetManager::GetAsset(handle); + if (prefab) + { + Entity instantiated = m_EditorScene->InstantiatePrefab(prefab); + if (m_SceneHierarchyPanel) + m_SceneHierarchyPanel->SetSelectedEntity(instantiated); + } + } } ImGui::EndDragDropTarget(); } diff --git a/Editor/Source/Panels/SceneHierarchyPanel.cpp b/Editor/Source/Panels/SceneHierarchyPanel.cpp index 798f5e5..c92d49a 100644 --- a/Editor/Source/Panels/SceneHierarchyPanel.cpp +++ b/Editor/Source/Panels/SceneHierarchyPanel.cpp @@ -2,6 +2,7 @@ #include "SceneHierarchyPanel.h" #include "Lux/Scene/Components.h" +#include "Lux/Scene/Prefab.h" #include "Lux/Scripting/ScriptEngine.h" #include "Lux/UI/UI.h" @@ -50,14 +51,48 @@ namespace Lux { return; } - if (m_Context) - { - m_Context->m_Registry.each([&](auto entityID) + if (m_Context) { - Entity entity{ entityID , m_Context.get() }; - DrawEntityNode(entity); - }); - } + m_Context->m_Registry.each([&](auto entityID) + { + Entity entity{ entityID , m_Context.get() }; + if (!entity.HasComponent()) + { + DrawEntityNode(entity); + return; + } + + const auto& relationship = entity.GetComponent(); + const bool hasValidParent = relationship.ParentHandle != 0 && (bool)m_Context->GetEntityByUUID(relationship.ParentHandle); + if (!hasValidParent) + DrawEntityNode(entity); + }); + + const ImRect hierarchyRect(ImGui::GetWindowPos(), ImGui::GetWindowPos() + ImGui::GetWindowSize()); + if (ImGui::BeginDragDropTargetCustom(hierarchyRect, ImGui::GetID("SceneHierarchyRootTarget"))) + { + if (const ImGuiPayload* payload = ImGui::AcceptDragDropPayload("SCENE_HIERARCHY_ENTITY")) + { + const UUID draggedEntityID = *(const UUID*)payload->Data; + Entity draggedEntity = m_Context->GetEntityByUUID(draggedEntityID); + if (draggedEntity) + draggedEntity.SetParent({}); + } + + if (const ImGuiPayload* payload = ImGui::AcceptDragDropPayload("CONTENT_BROWSER_ITEM")) + { + AssetHandle handle = *(AssetHandle*)payload->Data; + if (AssetManager::GetAssetType(handle) == AssetType::Prefab) + { + Ref prefab = AssetManager::GetAsset(handle); + if (prefab) + m_SelectionContext = m_Context->InstantiatePrefab(prefab); + } + } + + ImGui::EndDragDropTarget(); + } + } if (ImGui::IsMouseDown(0) && ImGui::IsWindowHovered()) m_SelectionContext = {}; @@ -98,15 +133,58 @@ namespace Lux { void SceneHierarchyPanel::DrawEntityNode(Entity entity) { auto& tag = entity.GetComponent().Tag; + const auto& relationship = entity.GetComponent(); + const bool hasChildren = !relationship.Children.empty(); ImGuiTreeNodeFlags flags = ((m_SelectionContext == entity) ? ImGuiTreeNodeFlags_Selected : 0) | ImGuiTreeNodeFlags_OpenOnArrow; flags |= ImGuiTreeNodeFlags_SpanAvailWidth; + if (!hasChildren) + flags |= ImGuiTreeNodeFlags_Leaf; bool opened = ImGui::TreeNodeEx((void*)(uint64_t)(uint32_t)entity, flags, tag.c_str()); if (ImGui::IsItemClicked()) { m_SelectionContext = entity; } + if (ImGui::BeginDragDropSource()) + { + const UUID entityID = entity.GetUUID(); + ImGui::SetDragDropPayload("SCENE_HIERARCHY_ENTITY", &entityID, sizeof(UUID)); + ImGui::TextUnformatted(tag.c_str()); + ImGui::EndDragDropSource(); + } + + if (ImGui::BeginDragDropTarget()) + { + if (const ImGuiPayload* payload = ImGui::AcceptDragDropPayload("SCENE_HIERARCHY_ENTITY")) + { + const UUID draggedEntityID = *(const UUID*)payload->Data; + Entity draggedEntity = m_Context->GetEntityByUUID(draggedEntityID); + if (draggedEntity && draggedEntity != entity) + draggedEntity.SetParent(entity); + } + + if (const ImGuiPayload* payload = ImGui::AcceptDragDropPayload("CONTENT_BROWSER_ITEM")) + { + AssetHandle handle = *(AssetHandle*)payload->Data; + if (AssetManager::GetAssetType(handle) == AssetType::Prefab) + { + Ref prefab = AssetManager::GetAsset(handle); + if (prefab) + { + Entity instantiated = m_Context->InstantiatePrefab(prefab); + if (instantiated) + { + instantiated.SetParent(entity); + m_SelectionContext = instantiated; + } + } + } + } + + ImGui::EndDragDropTarget(); + } + bool entityDeleted = false; if (ImGui::BeginPopupContextItem()) { @@ -118,6 +196,13 @@ namespace Lux { if (opened) { + for (UUID childID : relationship.Children) + { + Entity childEntity = m_Context->GetEntityByUUID(childID); + if (childEntity) + DrawEntityNode(childEntity); + } + ImGui::TreePop(); } From 88fd0245655e7757f25d189c1ea5d3bdeec0c228 Mon Sep 17 00:00:00 2001 From: Pier-Olivier Boulianne Date: Mon, 13 Apr 2026 23:24:20 -0400 Subject: [PATCH 10/18] WIP: made the editor abit more likeable --- Core/Source/Lux/Core/Window.cpp | 4 - Core/Source/Lux/ImGui/ImGuiLayer.cpp | 26 +- .../Assets/Scenes/Physics2D.luxscene | 16 +- Editor/Source/EditorLayer.cpp | 318 +++++++++--------- Editor/Source/EditorLayer.h | 11 +- 5 files changed, 188 insertions(+), 187 deletions(-) diff --git a/Core/Source/Lux/Core/Window.cpp b/Core/Source/Lux/Core/Window.cpp index 44a5adb..5dad2e6 100644 --- a/Core/Source/Lux/Core/Window.cpp +++ b/Core/Source/Lux/Core/Window.cpp @@ -157,11 +157,7 @@ namespace Lux { { // This removes titlebar on all platforms // and all of the native window effects on non-Windows platforms -#ifdef LUX_PLATFORM_WINDOWS - glfwWindowHint(GLFW_TITLEBAR, false); -#else glfwWindowHint(GLFW_DECORATED, false); -#endif } m_WindowHandle = glfwCreateWindow((int)m_Specification.Width, (int)m_Specification.Height, m_Data.Title.c_str(), m_Specification.Fullscreen ? glfwGetPrimaryMonitor() : nullptr, nullptr); diff --git a/Core/Source/Lux/ImGui/ImGuiLayer.cpp b/Core/Source/Lux/ImGui/ImGuiLayer.cpp index 56f3d4a..dc79433 100644 --- a/Core/Source/Lux/ImGui/ImGuiLayer.cpp +++ b/Core/Source/Lux/ImGui/ImGuiLayer.cpp @@ -189,7 +189,7 @@ namespace Lux { void ImGuiLayer::Begin() { - ImGui::SetMouseCursor(Input::GetCursorMode() == CursorMode::Normal ? ImGui::GetMouseCursor() : ImGuiMouseCursor_None); + ImGui::SetMouseCursor(Input::GetCursorMode() == CursorMode::Normal ? ImGuiMouseCursor_Arrow : ImGuiMouseCursor_None); m_ImGuiRenderer->UpdateFontTexture(); ImGui_ImplGlfw_NewFrame(); @@ -202,8 +202,7 @@ namespace Lux { { ImGui::Render(); - m_ImGuiRenderer->RenderToSwapchain(ImGui::GetMainViewport(), - &Application::Get().GetWindow().GetSwapChain()); + m_ImGuiRenderer->RenderToSwapchain(ImGui::GetMainViewport(), &Application::Get().GetWindow().GetSwapChain()); // Update and Render additional Platform Windows if (ImGui::GetIO().ConfigFlags & ImGuiConfigFlags_ViewportsEnable) @@ -292,7 +291,6 @@ namespace Lux { colors[ImGuiCol_Tab] = ImGui::ColorConvertU32ToFloat4(Colors::Theme::titlebar); colors[ImGuiCol_TabHovered] = ImColor(255, 225, 135, 30); colors[ImGuiCol_TabActive] = ImColor(255, 225, 135, 60); - colors[ImGuiCol_TabSelectedOverline] = ImColor(255, 225, 135, 60); colors[ImGuiCol_TabUnfocused] = ImGui::ColorConvertU32ToFloat4(Colors::Theme::titlebar); colors[ImGuiCol_TabUnfocusedActive] = colors[ImGuiCol_TabHovered]; @@ -312,12 +310,12 @@ namespace Lux { colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.41f, 0.41f, 0.41f, 1.0f); colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.51f, 0.51f, 0.51f, 1.0f); - // Check Mark - Orange accent - colors[ImGuiCol_CheckMark] = ImGui::ColorConvertU32ToFloat4(Colors::Theme::accent); + // Check Mark + colors[ImGuiCol_CheckMark] = ImColor(200, 200, 200, 255); - // Slider - Orange accent - colors[ImGuiCol_SliderGrab] = ImGui::ColorConvertU32ToFloat4(Colors::Theme::accent); - colors[ImGuiCol_SliderGrabActive] = ImVec4(1.0f, 0.7f, 0.3f, 1.0f); + // Slider + colors[ImGuiCol_SliderGrab] = ImVec4(0.51f, 0.51f, 0.51f, 0.7f); + colors[ImGuiCol_SliderGrabActive] = ImVec4(0.66f, 0.66f, 0.66f, 1.0f); // Text colors[ImGuiCol_Text] = ImGui::ColorConvertU32ToFloat4(Colors::Theme::text); @@ -343,19 +341,11 @@ namespace Lux { // Menubar colors[ImGuiCol_MenuBarBg] = ImVec4{ 0.0f, 0.0f, 0.0f, 0.0f }; - // Docking - colors[ImGuiCol_DockingPreview] = ImGui::ColorConvertU32ToFloat4(Colors::Theme::accent); - - // Nav highlight - colors[ImGuiCol_NavHighlight] = ImGui::ColorConvertU32ToFloat4(Colors::Theme::accent); - //======================================================== /// Style - style.FrameRounding = 4.0f; + style.FrameRounding = 2.5f; style.FrameBorderSize = 1.0f; style.IndentSpacing = 11.0f; - style.ItemSpacing = ImVec2(8.0f, 4.0f); - style.WindowPadding = ImVec2(8.0f, 8.0f); } void ImGuiLayer::AllowInputEvents(bool allowEvents) diff --git a/Editor/SandboxProject/Assets/Scenes/Physics2D.luxscene b/Editor/SandboxProject/Assets/Scenes/Physics2D.luxscene index 6ccfdd5..3e82bb1 100644 --- a/Editor/SandboxProject/Assets/Scenes/Physics2D.luxscene +++ b/Editor/SandboxProject/Assets/Scenes/Physics2D.luxscene @@ -7,6 +7,8 @@ Entities: Translation: [0, 5, 0] Rotation: [0, 0, 0] Scale: [1, 1, 1] + RelationshipComponent: + Parent: 0 SpriteRendererComponent: Color: [1, 1, 1, 1] TextureHandle: 0 @@ -27,14 +29,16 @@ Entities: TransformComponent: Translation: [0, 0, 0] Rotation: [0, 0, 0] - Scale: [1, 1, 1] + Scale: [50, 50, 50] + RelationshipComponent: + Parent: 0 CameraComponent: Camera: ProjectionType: 1 PerspectiveFOV: 0.785398185 PerspectiveNear: 0.00999999978 PerspectiveFar: 1000 - OrthographicSize: 1.20256782 + OrthographicSize: 1.88204801 OrthographicNear: -1 OrthographicFar: 1 Primary: true @@ -51,6 +55,8 @@ Entities: Translation: [0, 10, 0] Rotation: [0, 0, 0] Scale: [1, 1, 1] + RelationshipComponent: + Parent: 0 SpriteRendererComponent: Color: [1, 1, 1, 1] TextureHandle: 0 @@ -72,6 +78,8 @@ Entities: Translation: [0, -10, 0] Rotation: [0, 0, 0] Scale: [10, 1, 1] + RelationshipComponent: + Parent: 0 SpriteRendererComponent: Color: [1, 1, 1, 1] TextureHandle: 0 @@ -93,6 +101,8 @@ Entities: Translation: [0, 0, 0] Rotation: [0, 0, 0] Scale: [1, 1, 1] + RelationshipComponent: + Parent: 0 CircleRendererComponent: Color: [0.934362948, 0.497845858, 0, 1] Thickness: 1 @@ -132,6 +142,8 @@ Entities: Translation: [-3.79999995, 1.79999995, 0] Rotation: [0, 0, 0] Scale: [1, 1, 1] + RelationshipComponent: + Parent: 0 TextComponent: TextString: Welcome to Lux Color: [1, 1, 1, 1] diff --git a/Editor/Source/EditorLayer.cpp b/Editor/Source/EditorLayer.cpp index 3ce8560..3380390 100644 --- a/Editor/Source/EditorLayer.cpp +++ b/Editor/Source/EditorLayer.cpp @@ -15,6 +15,7 @@ #include #include +#include #include #include "imgui/imgui_internal.h" @@ -118,7 +119,7 @@ namespace Lux { static bool s_ShowFontAtlasInStats = false; EditorLayer::EditorLayer() - : Layer("EditorLayer"), m_EditorCamera(60.0f, 1600.0f, 900.0f, 0.1f, 10000.0f) ,m_SquareColor({ 0.2f, 0.3f, 0.8f, 1.0f }) + : Layer("EditorLayer"), m_EditorCamera(60.0f, 1600.0f, 900.0f, 0.1f, 10000.0f), m_SquareColor({ 0.2f, 0.3f, 0.8f, 1.0f }) { s_Font = Font::GetDefaultFont(); } @@ -127,6 +128,8 @@ namespace Lux { { LUX_PROFILE_FUNCTION("EditorLayer::OnAttach"); + EditorResources::Init(); + /////////// Configure Panels /////////// m_PanelManager = CreateScope(); @@ -135,7 +138,7 @@ namespace Lux { m_PanelManager->AddPanel(PanelCategory::View, "TextEditorPanel", "Text Editor", true); m_SceneRendererPanel = m_PanelManager->AddPanel(PanelCategory::View, SCENE_RENDERER_PANEL_ID, "Scene Renderer", true); - + // Console panel for log messages m_PanelManager->AddPanel(PanelCategory::View, CONSOLE_PANEL_ID, "Console", true); @@ -160,11 +163,6 @@ namespace Lux { m_Renderer2D->SetLineWidth(4.0f); FramebufferSpecification fbSpec; - // Attachment 0: RGBA colour output shown in viewport - // Attachment 1: Depth - // NOTE: Entity ID picking (RED_INTEGER attachment + ReadPixel) is not yet - // supported by Framebuffer in this engine. m_HoveredEntity is cleared every - // frame until that infrastructure is added. fbSpec.Attachments = { ImageFormat::RGBA32F, ImageFormat::Depth }; fbSpec.Width = 1280; fbSpec.Height = 720; @@ -172,7 +170,6 @@ namespace Lux { fbSpec.DebugName = "EditorFramebuffer"; m_Framebuffer = Framebuffer::Create(fbSpec); - // Now safe to call - m_Renderer2D is valid. m_Renderer2D->SetTargetFramebuffer(m_Framebuffer); EnsureSceneRenderer(m_ActiveScene, m_ViewportSize); @@ -218,6 +215,7 @@ namespace Lux { m_SceneRendererPanel.reset(); m_SceneHierarchyPanel.reset(); s_Font.reset(); + EditorResources::Shutdown(); } void EditorLayer::OnUpdate(Timestep ts) @@ -251,47 +249,40 @@ namespace Lux { m_Renderer2D->ResetStats(); - // Create selection predicate for 3D rendering (highlights selected entity) Entity selectedEntity = {}; if (m_SceneHierarchyPanel) selectedEntity = m_SceneHierarchyPanel->GetSelectedEntity(); auto isEntitySelected = [selectedEntity](Entity entity) -> bool { return selectedEntity && entity == selectedEntity; - }; + }; switch (m_SceneState) { case SceneState::Edit: { m_EditorCamera.OnUpdate(ts); - - // Render 3D content first (static meshes, lights, skybox) + if (m_SceneRenderer && m_SceneRenderer->IsReady()) m_ActiveScene->Render3D(m_EditorCamera, m_SceneRenderer, isEntitySelected); - - // Then render 2D content (sprites, circles, text) - this blends on top + m_ActiveScene->OnUpdateEditor(ts, m_EditorCamera); break; } case SceneState::Simulate: { m_EditorCamera.OnUpdate(ts); - - // Render 3D content + if (m_SceneRenderer && m_SceneRenderer->IsReady()) m_ActiveScene->Render3D(m_EditorCamera, m_SceneRenderer, isEntitySelected); - - // Then render 2D content and update physics simulation + m_ActiveScene->OnUpdateSimulation(ts, m_EditorCamera); break; } case SceneState::Play: { - // Render 3D content using the runtime camera if (m_SceneRenderer && m_SceneRenderer->IsReady()) m_ActiveScene->Render3DRuntime(m_SceneRenderer); - - // Then run the full runtime update (scripts, physics, 2D rendering) + m_ActiveScene->OnUpdateRuntime(ts); break; } @@ -300,13 +291,84 @@ namespace Lux { OnOverlayRender(); } + void EditorLayer::UI_DrawMenubar() + { + if (ImGui::BeginMenuBar()) + { + if (ImGui::BeginMenu("File")) + { + if (ImGui::MenuItem("Open Project...", "Ctrl+O")) OpenProject(); + ImGui::Separator(); + if (ImGui::MenuItem("New Scene", "Ctrl+N")) NewScene(); + if (ImGui::MenuItem("Save Scene", "Ctrl+S")) SaveScene(); + if (ImGui::MenuItem("Save Scene As...", "Ctrl+Shift+S")) SaveSceneAs(); + ImGui::Separator(); + if (ImGui::MenuItem("Exit")) Application::Get().Close(); + ImGui::EndMenu(); + } + + if (ImGui::BeginMenu("Script")) + { + if (ImGui::MenuItem("Reload assembly", "Ctrl+R")) ScriptEngine::ReloadAssembly(); + ImGui::EndMenu(); + } + + // Add a custom drag zone to the remaining space of the MenuBar so we can drag the window! + float availWidth = ImGui::GetContentRegionAvail().x; + if (availWidth > 100.0f) + { + ImGui::InvisibleButton("##titleBarDragZone", ImVec2(availWidth - 100.0f, ImGui::GetFrameHeight())); + m_TitleBarHovered = ImGui::IsItemHovered(); + + if (ImGui::IsItemActive() && ImGui::IsMouseDragging(ImGuiMouseButton_Left)) + { + auto* window = static_cast(Application::Get().GetWindow().GetNativeWindow()); + ImVec2 point = ImGui::GetMousePos(); + + // Simple window dragging logic + int x, y; + glfwGetWindowPos(window, &x, &y); + glfwSetWindowPos(window, x + (int)ImGui::GetIO().MouseDelta.x, y + (int)ImGui::GetIO().MouseDelta.y); + } + + if (ImGui::IsMouseDoubleClicked(ImGuiMouseButton_Left) && m_TitleBarHovered) + { + auto* window = static_cast(Application::Get().GetWindow().GetNativeWindow()); + bool maximized = (bool)glfwGetWindowAttrib(window, GLFW_MAXIMIZED); + if (maximized) glfwRestoreWindow(window); + else glfwMaximizeWindow(window); + } + } + + ImGui::EndMenuBar(); + } + } + + float EditorLayer::UI_DrawTitlebar() + { + // Since we integrated the drag zone into the MenuBar above, we don't need to draw + // a massive rectangle that covers everything. We just return 0 to prevent offsetting. + return 0.0f; + } + + void EditorLayer::UI_HandleManualWindowResize() + { + auto* window = static_cast(Application::Get().GetWindow().GetNativeWindow()); + const bool maximized = (bool)glfwGetWindowAttrib(window, GLFW_MAXIMIZED); + + // A helper to let ImGui drag the right/bottom borders if the OS border is stripped + // Ensure UI::UpdateWindowManualResize logic exists in ImGuiUtilities.h, else comment out. + } + + bool EditorLayer::UI_TitleBarHitTest(int x, int y) const + { + return m_TitleBarHovered; + } + void EditorLayer::OnImGuiRender() { LUX_PROFILE_FUNCTION("EditorLayer::OnImGuiRender"); - // Must be called once per frame before any other ImGuizmo function. - // Without this, IsOver() / IsUsing() return stale state and Manipulate() - // produces garbage transforms. ImGuizmo::BeginFrame(); static bool dockspaceOpen = true; @@ -314,6 +376,10 @@ namespace Lux { bool opt_fullscreen = opt_fullscreen_persistent; static ImGuiDockNodeFlags dockspace_flags = ImGuiDockNodeFlags_None; + GLFWwindow* nativeWindow = static_cast(Application::Get().GetWindow().GetNativeWindow()); + const bool isWindowMaximized = nativeWindow && glfwGetWindowAttrib(nativeWindow, GLFW_MAXIMIZED); + + // FIX: Added ImGuiWindowFlags_MenuBar back to the window flags! ImGuiWindowFlags window_flags = ImGuiWindowFlags_MenuBar | ImGuiWindowFlags_NoDocking; if (opt_fullscreen) { @@ -322,7 +388,7 @@ namespace Lux { ImGui::SetNextWindowSize(viewport->Size); ImGui::SetNextWindowViewport(viewport->ID); ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f); - ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f); + ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, isWindowMaximized ? 0.0f : 1.0f); window_flags |= ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove; window_flags |= ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoNavFocus; @@ -340,10 +406,14 @@ namespace Lux { if (dockspaceVisible) { + // Render the MenuBar (which now contains our custom drag zone) + UI_DrawMenubar(); + ImGuiIO& io = ImGui::GetIO(); ImGuiStyle& style = ImGui::GetStyle(); const float minWinSizeX = style.WindowMinSize.x; style.WindowMinSize.x = 370.0f; + if (io.ConfigFlags & ImGuiConfigFlags_DockingEnable) { const ImGuiID dockspace_id = ImGui::GetID("MyDockSpace"); @@ -351,83 +421,30 @@ namespace Lux { } style.WindowMinSize.x = minWinSizeX; - if (ImGui::BeginMenuBar()) - { - if (ImGui::BeginMenu("File")) - { - if (ImGui::MenuItem("Open Project...", "Ctrl+O")) - OpenProject(); - - ImGui::Separator(); - - if (ImGui::MenuItem("New Scene", "Ctrl+N")) - NewScene(); - - if (ImGui::MenuItem("Save Scene", "Ctrl+S")) - SaveScene(); - - if (ImGui::MenuItem("Save Scene As...", "Ctrl+Shift+S")) - SaveSceneAs(); - - ImGui::Separator(); - - if (ImGui::MenuItem("Exit")) - Application::Get().Close(); - - ImGui::EndMenu(); - } - - if (ImGui::BeginMenu("Script")) - { - if (ImGui::MenuItem("Reload assembly", "Ctrl+R")) - ScriptEngine::ReloadAssembly(); - - ImGui::EndMenu(); - } - - ImGui::EndMenuBar(); - } - m_PanelManager->OnImGuiRender(); - // Stats panel + // --- Stats Panel --- ImGui::Begin("Stats"); - -#if 0 - std::string name = "None"; - if (m_HoveredEntity) - name = m_HoveredEntity.GetComponent().Tag; - ImGui::Text("Hovered Entity: %s", name.c_str()); -#endif - auto stats = m_Renderer2D->GetDrawStats(); ImGui::Text("Renderer2D Stats:"); ImGui::Text("Draw Calls: %d", stats.DrawCalls); ImGui::Text("Quads: %d", stats.QuadCount); ImGui::Text("Vertices: %d", stats.GetTotalVertexCount()); ImGui::Text("Indices: %d", stats.GetTotalIndexCount()); - ImGui::Separator(); - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - - if (ImGui::Checkbox("VSync", &m_VSync)) - Application::Get().GetWindow().SetVSync(m_VSync); - + if (ImGui::Checkbox("VSync", &m_VSync)) Application::Get().GetWindow().SetVSync(m_VSync); if (ImGui::Checkbox("Show Physics Colliders", &m_ShowPhysicsColliders)) { - if (s_SceneRendererState.Renderer) - s_SceneRendererState.Renderer->GetOptions().ShowPhysicsColliders = m_ShowPhysicsColliders; + if (s_SceneRendererState.Renderer) s_SceneRendererState.Renderer->GetOptions().ShowPhysicsColliders = m_ShowPhysicsColliders; } - ImGui::Separator(); ImGui::Checkbox("Show Font Atlas", &s_ShowFontAtlasInStats); if (s_ShowFontAtlasInStats) ImGui::Image(GetImGuiTextureID(s_Font->GetFontAtlas()), { 512, 512 }, { 0, 1 }, { 1, 0 }); + ImGui::End(); - ImGui::End(); // Stats - - // Viewport panel + // --- Viewport Panel --- ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2{ 0, 0 }); ImGui::Begin("Viewport"); @@ -441,9 +458,6 @@ namespace Lux { m_ViewportHovered = ImGui::IsWindowHovered(); Application::Get().GetImGuiLayer()->AllowInputEvents(m_ViewportFocused || m_ViewportHovered); - // Guard against zero-size during panel drag/dock transitions; a zero - // size would propagate to Framebuffer::Resize(0,0) next frame and - // destroy all attachment images while they are still in use. ImVec2 viewportPanelSize = ImGui::GetContentRegionAvail(); if (viewportPanelSize.x > 1.0f && viewportPanelSize.y > 1.0f) m_ViewportSize = { viewportPanelSize.x, viewportPanelSize.y }; @@ -457,29 +471,27 @@ namespace Lux { { AssetHandle handle = *(AssetHandle*)payload->Data; const AssetType type = AssetManager::GetAssetType(handle); - if (type == AssetType::Scene) - { - OpenScene(handle); - } + if (type == AssetType::Scene) OpenScene(handle); else if (type == AssetType::Prefab && m_SceneState == SceneState::Edit) { Ref prefab = AssetManager::GetAsset(handle); if (prefab) { Entity instantiated = m_EditorScene->InstantiatePrefab(prefab); - if (m_SceneHierarchyPanel) - m_SceneHierarchyPanel->SetSelectedEntity(instantiated); + if (m_SceneHierarchyPanel) m_SceneHierarchyPanel->SetSelectedEntity(instantiated); } } } ImGui::EndDragDropTarget(); } - // Gizmos + UI_GizmosToolbar(); + UI_CentralToolbar(); + + // --- Gizmos --- Entity selectedEntity = {}; - if (m_SceneHierarchyPanel) - selectedEntity = m_SceneHierarchyPanel->GetSelectedEntity(); - if (selectedEntity && m_GizmoType != -1) + if (m_SceneHierarchyPanel) selectedEntity = m_SceneHierarchyPanel->GetSelectedEntity(); + if (selectedEntity && m_GizmoType != -1 && m_SceneState == SceneState::Edit) { ImGuizmo::SetOrthographic(false); ImGuizmo::SetDrawlist(); @@ -487,8 +499,6 @@ namespace Lux { m_ViewportBounds[1].x - m_ViewportBounds[0].x, m_ViewportBounds[1].y - m_ViewportBounds[0].y); - // FIX: Use GetProjectionMatrix() (projection only), not - // GetViewProjection() (combined VP). ImGuizmo needs them separate. const glm::mat4& cameraProjection = m_EditorCamera.GetProjectionMatrix(); glm::mat4 cameraView = m_EditorCamera.GetViewMatrix(); @@ -499,27 +509,16 @@ namespace Lux { float snapValue = (m_GizmoType == ImGuizmo::OPERATION::ROTATE) ? 45.0f : 0.5f; float snapValues[3] = { snapValue, snapValue, snapValue }; - // FIX: Actually call Manipulate() - it was completely missing, - // so gizmos were never drawn or interactable at all. ImGuizmo::Manipulate( - glm::value_ptr(cameraView), - glm::value_ptr(cameraProjection), - (ImGuizmo::OPERATION)m_GizmoType, - ImGuizmo::LOCAL, - glm::value_ptr(transform), - nullptr, - snap ? snapValues : nullptr); - - // FIX: DecomposeTransform signature is (mat4, vec3&, quat&, vec3&). - // Decompose into a quaternion then convert to euler angles for storage. + glm::value_ptr(cameraView), glm::value_ptr(cameraProjection), + (ImGuizmo::OPERATION)m_GizmoType, ImGuizmo::LOCAL, glm::value_ptr(transform), + nullptr, snap ? snapValues : nullptr); + if (ImGuizmo::IsUsing()) { glm::vec3 translation, scale; glm::quat rotationQuat; Math::DecomposeTransform(transform, translation, rotationQuat, scale); - - // Convert quat to euler and apply as a delta to avoid gimbal lock - // accumulation that would occur from direct euler assignment. glm::vec3 rotationEuler = glm::eulerAngles(rotationQuat); glm::vec3 deltaRotation = rotationEuler - tc.Rotation; tc.Translation = translation; @@ -530,43 +529,66 @@ namespace Lux { ImGui::End(); // Viewport ImGui::PopStyleVar(); - - UI_Toolbar(); } ImGui::End(); // Lux Editor } - void EditorLayer::UI_Toolbar() + void EditorLayer::UI_GizmosToolbar() { ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 2)); ImGui::PushStyleVar(ImGuiStyleVar_ItemInnerSpacing, ImVec2(0, 0)); + ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f); ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0, 0, 0, 0)); - auto& colors = ImGui::GetStyle().Colors; - const auto& buttonHovered = colors[ImGuiCol_ButtonHovered]; - ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(buttonHovered.x, buttonHovered.y, buttonHovered.z, 0.5f)); - const auto& buttonActive = colors[ImGuiCol_ButtonActive]; - ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(buttonActive.x, buttonActive.y, buttonActive.z, 0.5f)); - ImGui::Begin("##toolbar", nullptr, ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoScrollWithMouse); + const float edgeOffset = 4.0f; + const float windowHeight = 32.0f; - bool toolbarEnabled = (bool)m_ActiveScene; + ImGui::SetNextWindowPos(ImVec2(m_ViewportBounds[0].x + 14, m_ViewportBounds[0].y + edgeOffset)); + ImGui::SetNextWindowSize(ImVec2(100.0f, windowHeight)); + ImGui::SetNextWindowBgAlpha(0.0f); + ImGui::Begin("##viewport_tools", 0, ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoDocking); - ImVec4 tintColor = ImVec4(1, 1, 1, 1); - if (!toolbarEnabled) - tintColor.w = 0.5f; + if (ImGui::Button("S")) m_GizmoType = -1; + ImGui::SameLine(); + if (ImGui::Button("T")) m_GizmoType = ImGuizmo::OPERATION::TRANSLATE; + ImGui::SameLine(); + if (ImGui::Button("R")) m_GizmoType = ImGuizmo::OPERATION::ROTATE; + ImGui::SameLine(); + if (ImGui::Button("E")) m_GizmoType = ImGuizmo::OPERATION::SCALE; - float size = ImGui::GetWindowHeight() - 4.0f; - ImGui::SetCursorPosX((ImGui::GetWindowContentRegionMax().x * 0.5f) - (size * 0.5f)); + ImGui::End(); + ImGui::PopStyleColor(); + ImGui::PopStyleVar(3); + } + void EditorLayer::UI_CentralToolbar() + { + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 2)); + ImGui::PushStyleVar(ImGuiStyleVar_ItemInnerSpacing, ImVec2(0, 0)); + ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f); + ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0, 0, 0, 0)); + + float toolbarX = (m_ViewportBounds[0].x + m_ViewportBounds[1].x) / 2.0f; + const float edgeOffset = 4.0f; + const float windowHeight = 32.0f; + const float backgroundWidth = 120.0f; + + ImGui::SetNextWindowPos(ImVec2(toolbarX - (backgroundWidth / 2.0f), m_ViewportBounds[0].y + edgeOffset)); + ImGui::SetNextWindowSize(ImVec2(backgroundWidth, windowHeight)); + ImGui::SetNextWindowBgAlpha(0.0f); + ImGui::Begin("##viewport_central_toolbar", 0, ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoDocking); + + float size = 24.0f; bool hasPlayButton = m_SceneState == SceneState::Edit || m_SceneState == SceneState::Play; bool hasSimulateButton = m_SceneState == SceneState::Edit || m_SceneState == SceneState::Simulate; bool hasPauseButton = m_SceneState != SceneState::Edit; + ImVec4 tintColor = ImVec4(1, 1, 1, 1); if (hasPlayButton) { Ref icon = (m_SceneState == SceneState::Edit || m_SceneState == SceneState::Simulate) ? m_IconPlay : m_IconStop; - if (ImGui::ImageButton("##play", GetImGuiTextureID(icon), ImVec2(size, size), ImVec2(0, 0), ImVec2(1, 1), ImVec4(0,0,0,0), tintColor)) + if (ImGui::ImageButton("##play", GetImGuiTextureID(icon), ImVec2(size, size), ImVec2(0, 0), ImVec2(1, 1), ImVec4(0, 0, 0, 0), tintColor)) { if (m_SceneState == SceneState::Edit || m_SceneState == SceneState::Simulate) OnScenePlay(); @@ -581,7 +603,7 @@ namespace Lux { ImGui::SameLine(); Ref icon = (m_SceneState == SceneState::Edit || m_SceneState == SceneState::Play) ? m_IconSimulate : m_IconStop; - if (ImGui::ImageButton("##simulate", GetImGuiTextureID(icon), ImVec2(size, size), ImVec2(0, 0), ImVec2(1, 1), ImVec4(0,0,0,0), tintColor)) + if (ImGui::ImageButton("##simulate", GetImGuiTextureID(icon), ImVec2(size, size), ImVec2(0, 0), ImVec2(1, 1), ImVec4(0, 0, 0, 0), tintColor)) { if (m_SceneState == SceneState::Edit || m_SceneState == SceneState::Play) OnSceneSimulate(); @@ -594,48 +616,22 @@ namespace Lux { { bool isPaused = m_ActiveScene->IsPaused(); ImGui::SameLine(); + if (ImGui::ImageButton("##pause", GetImGuiTextureID(m_IconPause), ImVec2(size, size), ImVec2(0, 0), ImVec2(1, 1), ImVec4(0, 0, 0, 0), tintColor)) { - if (ImGui::ImageButton("##pause", GetImGuiTextureID(m_IconPause), ImVec2(size, size), ImVec2(0, 0), ImVec2(1, 1), ImVec4(0,0,0,0), tintColor) && toolbarEnabled) - m_ActiveScene->SetPaused(!isPaused); + m_ActiveScene->SetPaused(!isPaused); } if (isPaused) { ImGui::SameLine(); - if (ImGui::ImageButton("##step", GetImGuiTextureID(m_IconStep), ImVec2(size, size), ImVec2(0, 0), ImVec2(1, 1), ImVec4(0,0,0,0), tintColor) && toolbarEnabled) + if (ImGui::ImageButton("##step", GetImGuiTextureID(m_IconStep), ImVec2(size, size), ImVec2(0, 0), ImVec2(1, 1), ImVec4(0, 0, 0, 0), tintColor)) m_ActiveScene->Step(); } } - ImGui::SameLine(); - ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); - ImGui::SameLine(); - - // Gizmo mode indicator - const char* gizmoMode = "None"; - if (m_GizmoType == ImGuizmo::TRANSLATE) gizmoMode = "Translate"; - else if (m_GizmoType == ImGuizmo::ROTATE) gizmoMode = "Rotate"; - else if (m_GizmoType == ImGuizmo::SCALE) gizmoMode = "Scale"; - - ImGui::Text("%s", gizmoMode); - ImGui::SameLine(); - - // Grid toggle - if (s_SceneRendererState.Renderer) - { - bool showGrid = s_SceneRendererState.Renderer->GetOptions().ShowGrid; - ImGui::SameLine(); - if (ImGui::Checkbox("##grid", &showGrid)) - { - s_SceneRendererState.Renderer->GetOptions().ShowGrid = showGrid; - } - if (ImGui::IsItemHovered()) - ImGui::SetTooltip("Toggle Grid"); - } - - ImGui::PopStyleVar(2); - ImGui::PopStyleColor(3); ImGui::End(); + ImGui::PopStyleColor(); + ImGui::PopStyleVar(3); } void EditorLayer::OnEvent(Event& e) diff --git a/Editor/Source/EditorLayer.h b/Editor/Source/EditorLayer.h index a17041b..201160d 100644 --- a/Editor/Source/EditorLayer.h +++ b/Editor/Source/EditorLayer.h @@ -65,7 +65,13 @@ namespace Lux void OnDuplicateEntity(); // UI Panels - void UI_Toolbar(); + void UI_DrawMenubar(); + float UI_DrawTitlebar(); + void UI_HandleManualWindowResize(); + bool UI_TitleBarHitTest(int x, int y) const; + + void UI_GizmosToolbar(); + void UI_CentralToolbar(); private: EditorCamera m_EditorCamera; @@ -98,7 +104,7 @@ namespace Lux Ref m_CheckerboardTexture; - glm::vec2 m_ViewportSize = {0.0f, 0.0f}; + glm::vec2 m_ViewportSize = { 0.0f, 0.0f }; glm::vec2 m_ViewportBounds[2]; glm::vec4 m_SquareColor = { 0.2f, 0.3f, 0.8f, 1.0f }; @@ -106,6 +112,7 @@ namespace Lux int m_GizmoType = -1; bool m_ShowPhysicsColliders = false; + bool m_TitleBarHovered = false; enum class SceneState { From d03b17bd4e96ca273df43842baa48754421648bb Mon Sep 17 00:00:00 2001 From: Pier-Olivier Boulianne Date: Thu, 16 Apr 2026 01:24:52 -0400 Subject: [PATCH 11/18] WIP: aded Lux Shaders, not compiles them --- Core/Source/Lux/ImGui/ImGuiEx.h | 1 - Core/Source/Lux/Renderer/SceneRenderer.cpp | 23 ++ Core/Source/Lux/Renderer/SceneRenderer.h | 2 + Core/Source/Lux/UI/UI.h | 145 ----------- Editor/Resources/Shaders/LuxPBR_Static.glsl | 228 ++++++++++++++++++ .../Resources/Shaders/LuxPBR_Transparent.glsl | 187 ++++++++++++++ Editor/Source/EditorLayer.cpp | 39 +-- Editor/Source/EditorLayer.h | 9 +- 8 files changed, 446 insertions(+), 188 deletions(-) delete mode 100644 Core/Source/Lux/UI/UI.h create mode 100644 Editor/Resources/Shaders/LuxPBR_Static.glsl create mode 100644 Editor/Resources/Shaders/LuxPBR_Transparent.glsl diff --git a/Core/Source/Lux/ImGui/ImGuiEx.h b/Core/Source/Lux/ImGui/ImGuiEx.h index 8815093..76f7ad0 100644 --- a/Core/Source/Lux/ImGui/ImGuiEx.h +++ b/Core/Source/Lux/ImGui/ImGuiEx.h @@ -12,7 +12,6 @@ #include "Lux/ImGui/ImGuiWidgets.h" #include "Lux/Scene/Prefab.h" #include "Lux/Scene/Scene.h" -#include "Lux/UI/UI.h" #include "Lux/Utilities/StringUtils.h" #include diff --git a/Core/Source/Lux/Renderer/SceneRenderer.cpp b/Core/Source/Lux/Renderer/SceneRenderer.cpp index 2fd4f16..60170d2 100644 --- a/Core/Source/Lux/Renderer/SceneRenderer.cpp +++ b/Core/Source/Lux/Renderer/SceneRenderer.cpp @@ -72,6 +72,8 @@ namespace Lux { m_UBSShadow = UniformBufferSet::Create(sizeof(UBShadow)); m_UBSRendererData = UniformBufferSet::Create(sizeof(UBRendererData)); m_UBSPointLights = UniformBufferSet::Create(sizeof(UBPointLights)); + m_UBSSpotLights = UniformBufferSet::Create(sizeof(UBSpotLights)); + m_UBSSpotShadow = UniformBufferSet::Create(sizeof(UBSpotShadow)); // ── Storage buffer sets (start with generous initial capacity) ───────── { @@ -87,6 +89,15 @@ namespace Lux { spec.DebugName = "ObjectIndexes"; m_SBSObjectIndexes = StorageBufferSet::Create(spec, sizeof(uint32_t) * 4096); } + { + StorageBufferSpecification indexSpec; + indexSpec.GPUOnly = false; + indexSpec.DebugName = "VisiblePointLightIndices"; + m_SBSVisiblePointLightIndices = StorageBufferSet::Create(indexSpec, sizeof(uint32_t) * 1024); + + indexSpec.DebugName = "VisibleSpotLightIndices"; + m_SBSVisibleSpotLightIndices = StorageBufferSet::Create(indexSpec, sizeof(uint32_t) * 1024); + } // Common vertex layout for all opaque mesh pipelines VertexBufferLayout vertexLayout = { @@ -218,6 +229,10 @@ namespace Lux { m_GeometryPass->SetInput("ShadowData", m_UBSShadow); m_GeometryPass->SetInput("RendererData", m_UBSRendererData); m_GeometryPass->SetInput("PointLightData", m_UBSPointLights); + m_GeometryPass->SetInput("SpotLightData", m_UBSSpotLights); + m_GeometryPass->SetInput("SpotShadowData", m_UBSSpotShadow); + m_GeometryPass->SetInput("VisiblePointLightIndicesBuffer", m_SBSVisiblePointLightIndices); + m_GeometryPass->SetInput("VisibleSpotLightIndicesBuffer", m_SBSVisibleSpotLightIndices); m_GeometryPass->SetInput("InstanceTransforms", m_SBSInstanceTransforms); m_GeometryPass->SetInput("ObjectIndexes", m_SBSObjectIndexes); // Environment textures – overridden each frame in BeginScene once env is set @@ -226,6 +241,7 @@ namespace Lux { m_GeometryPass->SetInput("u_BRDFLUTTexture", Renderer::GetBRDFLutTexture()); // Shadow map output from the shadow pass above m_GeometryPass->SetInput("u_ShadowMapTexture", m_ShadowMapPass->GetDepthOutput()); + m_GeometryPass->SetInput("u_SpotShadowTexture", Renderer::GetWhiteTexture()); // or a dummy 2D array if required LUX_CORE_VERIFY(m_GeometryPass->Validate()); m_GeometryPass->Bake(); @@ -239,12 +255,19 @@ namespace Lux { m_GeometryPassTransparent->SetInput("ShadowData", m_UBSShadow); m_GeometryPassTransparent->SetInput("RendererData", m_UBSRendererData); m_GeometryPassTransparent->SetInput("PointLightData", m_UBSPointLights); + m_GeometryPassTransparent->SetInput("SpotLightData", m_UBSSpotLights); + m_GeometryPassTransparent->SetInput("SpotShadowData", m_UBSSpotShadow); + m_GeometryPassTransparent->SetInput("VisiblePointLightIndicesBuffer", m_SBSVisiblePointLightIndices); + m_GeometryPassTransparent->SetInput("VisibleSpotLightIndicesBuffer", m_SBSVisibleSpotLightIndices); m_GeometryPassTransparent->SetInput("InstanceTransforms", m_SBSInstanceTransforms); m_GeometryPassTransparent->SetInput("ObjectIndexes", m_SBSObjectIndexes); + // Environment textures – overridden each frame in BeginScene once env is set m_GeometryPassTransparent->SetInput("u_EnvRadianceTex", Renderer::GetBlackCubeTexture()); m_GeometryPassTransparent->SetInput("u_EnvIrradianceTex", Renderer::GetBlackCubeTexture()); m_GeometryPassTransparent->SetInput("u_BRDFLUTTexture", Renderer::GetBRDFLutTexture()); + // Shadow map output from the shadow pass above m_GeometryPassTransparent->SetInput("u_ShadowMapTexture", m_ShadowMapPass->GetDepthOutput()); + m_GeometryPassTransparent->SetInput("u_SpotShadowTexture", Renderer::GetWhiteTexture()); // or a dummy 2D array if required LUX_CORE_VERIFY(m_GeometryPassTransparent->Validate()); m_GeometryPassTransparent->Bake(); } diff --git a/Core/Source/Lux/Renderer/SceneRenderer.h b/Core/Source/Lux/Renderer/SceneRenderer.h index 37a1762..0ff71dc 100644 --- a/Core/Source/Lux/Renderer/SceneRenderer.h +++ b/Core/Source/Lux/Renderer/SceneRenderer.h @@ -367,6 +367,8 @@ namespace Lux { Ref m_SBSInstanceTransforms; // TransformVertexData[] Ref m_SBSObjectIndexes; // uint32_t[] – maps draw → transform + Ref m_SBSVisiblePointLightIndices; + Ref m_SBSVisibleSpotLightIndices; // ── Shadow map (single ortho cascade) ──────────────────────────────── Ref m_ShadowMapPass; diff --git a/Core/Source/Lux/UI/UI.h b/Core/Source/Lux/UI/UI.h deleted file mode 100644 index e182a74..0000000 --- a/Core/Source/Lux/UI/UI.h +++ /dev/null @@ -1,145 +0,0 @@ -#pragma once - -#include - -#ifndef IMGUI_DEFINE_MATH_OPERATORS -#define IMGUI_DEFINE_MATH_OPERATORS -#endif -#include - -#include "Lux/ImGui/Colors.h" -#include "Lux/ImGui/ImGuiUtilities.h" - -namespace Lux::UI { - - // ========================================================================= - // Scoped helpers — mirrors the Hazel UI:: namespace conventions - // ========================================================================= - - /// RAII wrapper for ImGui::PushStyleColor / PopStyleColor - struct ScopedColour - { - ScopedColour() = default; - - ScopedColour(ImGuiCol idx, ImVec4 colour, bool predicate = true) - : m_Set(predicate) - { - if (predicate) - ImGui::PushStyleColor(idx, colour); - } - - ScopedColour(ImGuiCol idx, ImU32 colour, bool predicate = true) - : m_Set(predicate) - { - if (predicate) - ImGui::PushStyleColor(idx, colour); - } - - ScopedColour(ImGuiCol idx, ImColor colour, bool predicate = true) - : m_Set(predicate) - { - if (predicate) - ImGui::PushStyleColor(idx, colour.Value); - } - - ~ScopedColour() - { - if (m_Set) - ImGui::PopStyleColor(); - } - - ScopedColour(const ScopedColour&) = delete; - ScopedColour& operator=(const ScopedColour&) = delete; - private: - bool m_Set = false; - }; - - // Legacy alias kept for backwards compatibility - using ScopedStyleColor = ScopedColour; - - /// RAII wrapper for ImGui::PushStyleVar / PopStyleVar - struct ScopedStyle - { - ScopedStyle(ImGuiStyleVar styleVar, float value) { ImGui::PushStyleVar(styleVar, value); } - ScopedStyle(ImGuiStyleVar styleVar, ImVec2 value) { ImGui::PushStyleVar(styleVar, value); } - ~ScopedStyle() { ImGui::PopStyleVar(); } - - ScopedStyle(const ScopedStyle&) = delete; - ScopedStyle& operator=(const ScopedStyle&) = delete; - }; - - /// RAII wrapper for ImGui::PushFont / PopFont - struct ScopedFont - { - ScopedFont(ImFont* font) { ImGui::PushFont(font); } - ~ScopedFont() { ImGui::PopFont(); } - - ScopedFont(const ScopedFont&) = delete; - ScopedFont& operator=(const ScopedFont&) = delete; - }; - - // ========================================================================= - // Cursor helpers - // ========================================================================= - - /// Shift the cursor position along the X axis by the given amount - inline void ShiftCursorX(float distance) - { - ImGui::SetCursorPosX(ImGui::GetCursorPosX() + distance); - } - - /// Shift the cursor position along the Y axis by the given amount - inline void ShiftCursorY(float distance) - { - ImGui::SetCursorPosY(ImGui::GetCursorPosY() + distance); - } - - /// Shift the cursor position along both axes - inline void ShiftCursor(float x, float y) - { - const ImVec2 cursor = ImGui::GetCursorPos(); - ImGui::SetCursorPos(ImVec2(cursor.x + x, cursor.y + y)); - } - - // ========================================================================= - // DrawButtonImage — draws a texture directly into an already-placed item - // rect, choosing the tint based on the item interaction state. - // ========================================================================= - - /// Draw a button image using separate textures for each interaction state. - /// Call this *after* an invisible button or any other item that occupies the - /// desired rect, then the tint colour is picked automatically. - inline void DrawButtonImage( - const Ref& imageNormal, - const Ref& imageHovered, - const Ref& imagePressed, - ImU32 tintNormal, ImU32 tintHovered, ImU32 tintPressed, - ImVec2 rectMin, ImVec2 rectMax, - ImVec2 uv0 = ImVec2(0.0f, 0.0f), ImVec2 uv1 = ImVec2(1.0f, 1.0f)) - { - // Delegate to ImGuiEx which has the full implementation - ImGuiEx::DrawButtonImage(imageNormal, imageHovered, imagePressed, - tintNormal, tintHovered, tintPressed, rectMin, rectMax, uv0, uv1); - } - - /// Convenience overload — single texture for all states - inline void DrawButtonImage( - const Ref& image, - ImU32 tintNormal, ImU32 tintHovered, ImU32 tintPressed, - ImVec2 rectMin, ImVec2 rectMax, - ImVec2 uv0 = ImVec2(0.0f, 0.0f), ImVec2 uv1 = ImVec2(1.0f, 1.0f)) - { - ImGuiEx::DrawButtonImage(image, tintNormal, tintHovered, tintPressed, - rectMin, rectMax, uv0, uv1); - } - - /// Convenience overload — uses the last item rect for the image bounds - inline void DrawButtonImage( - const Ref& image, - ImU32 tintNormal, ImU32 tintHovered, ImU32 tintPressed, - ImVec2 uv0 = ImVec2(0.0f, 0.0f), ImVec2 uv1 = ImVec2(1.0f, 1.0f)) - { - ImGuiEx::DrawButtonImage(image, tintNormal, tintHovered, tintPressed, uv0, uv1); - } - -} diff --git a/Editor/Resources/Shaders/LuxPBR_Static.glsl b/Editor/Resources/Shaders/LuxPBR_Static.glsl new file mode 100644 index 0000000..ef985d7 --- /dev/null +++ b/Editor/Resources/Shaders/LuxPBR_Static.glsl @@ -0,0 +1,228 @@ +#version 450 core +#pragma stage : vert + +#include +#include +#include + +layout(location = 0) in vec3 a_Position; +layout(location = 1) in vec3 a_Normal; +layout(location = 2) in vec3 a_Tangent; +layout(location = 3) in vec3 a_Binormal; +layout(location = 4) in vec2 a_TexCoord; + +struct VertexOutput +{ + vec3 WorldPosition; + vec3 Normal; + vec2 TexCoord; + mat3 WorldNormals; + mat3 WorldTransform; + vec3 Binormal; + + mat3 CameraView; + + vec3 ShadowMapCoords[4]; + vec3 ViewPosition; +}; + +layout(location = 0) out VertexOutput Output; + +// Must exactly match the C++ MeshDrawPushConstants + Material data +layout(push_constant) uniform PushConstants +{ + uint ObjectIndexBase; + uint LightIndex; + uint BoneTransformBase; + uint BoneTransformStride; + + vec3 AlbedoColor; + float Metalness; + float Roughness; + float Emission; + + float EnvMapRotation; + + bool UseNormalMap; +} u_MaterialUniforms; + +invariant gl_Position; + +void main() +{ + mat4 transform = GetInstanceTransform(u_MaterialUniforms.ObjectIndexBase + gl_InstanceIndex); + vec4 worldPosition = transform * vec4(a_Position, 1.0); + + Output.WorldPosition = worldPosition.xyz; + Output.Normal = mat3(transform) * a_Normal; + Output.TexCoord = vec2(a_TexCoord.x, 1.0 - a_TexCoord.y); + Output.WorldNormals = mat3(transform) * mat3(a_Tangent, a_Binormal, a_Normal); + Output.WorldTransform = mat3(transform); + Output.Binormal = a_Binormal; + + Output.CameraView = mat3(u_Camera.ViewMatrix); + + vec4 shadowCoords[4]; + shadowCoords[0] = u_DirShadow.DirLightMatrices[0] * vec4(Output.WorldPosition.xyz, 1.0); + shadowCoords[1] = u_DirShadow.DirLightMatrices[1] * vec4(Output.WorldPosition.xyz, 1.0); + shadowCoords[2] = u_DirShadow.DirLightMatrices[2] * vec4(Output.WorldPosition.xyz, 1.0); + shadowCoords[3] = u_DirShadow.DirLightMatrices[3] * vec4(Output.WorldPosition.xyz, 1.0); + Output.ShadowMapCoords[0] = vec3(shadowCoords[0].xyz / shadowCoords[0].w); + Output.ShadowMapCoords[1] = vec3(shadowCoords[1].xyz / shadowCoords[1].w); + Output.ShadowMapCoords[2] = vec3(shadowCoords[2].xyz / shadowCoords[2].w); + Output.ShadowMapCoords[3] = vec3(shadowCoords[3].xyz / shadowCoords[3].w); + + Output.ViewPosition = vec3(u_Camera.ViewMatrix * vec4(Output.WorldPosition, 1.0)); + + gl_Position = u_Camera.ViewProjectionMatrix * worldPosition; +} + + +#version 450 core +#pragma stage : frag + +#include +#include +#include +#include +#include +#include + +const vec3 Fdielectric = vec3(0.04); + +struct VertexOutput +{ + vec3 WorldPosition; + vec3 Normal; + vec2 TexCoord; + mat3 WorldNormals; + mat3 WorldTransform; + vec3 Binormal; + + mat3 CameraView; + + vec3 ShadowMapCoords[4]; + vec3 ViewPosition; +}; + +layout(location = 0) in VertexOutput Input; + +layout(location = 0) out vec4 color; +layout(location = 1) out vec4 o_ViewNormalsLuminance; +layout(location = 2) out vec4 o_MetalnessRoughness; + +layout(push_constant) uniform PushConstants +{ + uint ObjectIndexBase; + uint LightIndex; + uint BoneTransformBase; + uint BoneTransformStride; + + vec3 AlbedoColor; + float Metalness; + float Roughness; + float Emission; + + float EnvMapRotation; + + bool UseNormalMap; +} u_MaterialUniforms; + +vec3 IBL(vec3 F0, vec3 Lr) +{ + vec3 irradiance = SampleLinear(u_EnvIrradianceTex, m_Params.Normal).rgb; + vec3 F = FresnelSchlickRoughness(F0, m_Params.NdotV, m_Params.Roughness); + vec3 kd = (1.0 - F) * (1.0 - m_Params.Metalness); + vec3 diffuseIBL = m_Params.Albedo * irradiance; + + int envRadianceTexLevels = textureQueryLevels(samplerCube(u_EnvRadianceTex, r_LinearSampler)); + vec3 specularIrradiance = SampleLinearLOD(u_EnvRadianceTex, RotateVectorAboutY(u_MaterialUniforms.EnvMapRotation, Lr), m_Params.Roughness * envRadianceTexLevels).rgb; + + vec2 specularBRDF = SampleLinear(u_BRDFLUTTexture, vec2(m_Params.NdotV, m_Params.Roughness)).rg; + vec3 specularIBL = specularIrradiance * (F0 * specularBRDF.x + specularBRDF.y); + + return kd * diffuseIBL + specularIBL; +} + +vec3 GetGradient(float value) +{ + vec3 zero = vec3(0.0, 0.0, 0.0); + vec3 white = vec3(0.0, 0.1, 0.9); + vec3 red = vec3(0.2, 0.9, 0.4); + vec3 blue = vec3(0.8, 0.8, 0.3); + vec3 green = vec3(0.9, 0.2, 0.3); + + float step0 = 0.0f; + float step1 = 2.0f; + float step2 = 4.0f; + float step3 = 8.0f; + float step4 = 16.0f; + + vec3 color = mix(zero, white, smoothstep(step0, step1, value)); + color = mix(color, white, smoothstep(step1, step2, value)); + color = mix(color, red, smoothstep(step1, step2, value)); + color = mix(color, blue, smoothstep(step2, step3, value)); + color = mix(color, green, smoothstep(step3, step4, value)); + + return color; +} + +void main() +{ + vec4 albedoTexColor = SampleLinear(u_AlbedoTexture, Input.TexCoord); + m_Params.Albedo = albedoTexColor.rgb * ToLinear(vec4(u_MaterialUniforms.AlbedoColor, 1.0)).rgb; + float alpha = albedoTexColor.a; + + m_Params.Metalness = SampleLinear(u_MetalnessTexture, Input.TexCoord).b * u_MaterialUniforms.Metalness; + m_Params.Roughness = SampleLinear(u_RoughnessTexture, Input.TexCoord).g * u_MaterialUniforms.Roughness; + o_MetalnessRoughness = vec4(m_Params.Metalness, m_Params.Roughness, 0.f, 1.f); + m_Params.Roughness = max(m_Params.Roughness, 0.05); + + m_Params.Normal = normalize(Input.Normal); + if (u_MaterialUniforms.UseNormalMap) + { + m_Params.Normal = normalize(SampleLinear(u_NormalTexture, Input.TexCoord).rgb * 2.0f - 1.0f); + m_Params.Normal = normalize(Input.WorldNormals * m_Params.Normal); + } + + o_ViewNormalsLuminance.xyz = Input.CameraView * m_Params.Normal; + + m_Params.View = normalize(u_Scene.CameraPosition - Input.WorldPosition); + m_Params.NdotV = max(dot(m_Params.Normal, m_Params.View), 0.0); + + vec3 Lr = 2.0 * m_Params.NdotV * m_Params.Normal - m_Params.View; + vec3 F0 = mix(Fdielectric, m_Params.Albedo, m_Params.Metalness); + + uint cascadeIndex = 0; + const uint SHADOW_MAP_CASCADE_COUNT = 4; + for (uint i = 0; i < SHADOW_MAP_CASCADE_COUNT - 1; i++) + { + if (Input.ViewPosition.z < u_RendererData.CascadeSplits[i]) + cascadeIndex = i + 1; + } + + float shadowScale = u_RendererData.SoftShadows ? + PCSS_DirectionalLight(u_ShadowMapTexture, cascadeIndex, GetShadowMapCoords(Input.ShadowMapCoords, cascadeIndex), u_RendererData.LightSize) : + HardShadows_DirectionalLight(u_ShadowMapTexture, cascadeIndex, GetShadowMapCoords(Input.ShadowMapCoords, cascadeIndex)); + + shadowScale = 1.0 - clamp(u_Scene.DirectionalLights.ShadowAmount - shadowScale, 0.0f, 1.0f); + + vec3 lightContribution = CalculateDirLights(F0) * shadowScale; + lightContribution += CalculatePointLights(F0, Input.WorldPosition); + lightContribution += m_Params.Albedo * u_MaterialUniforms.Emission; + + vec3 iblContribution = IBL(F0, Lr) * u_Scene.EnvironmentMapIntensity; + + color = vec4(iblContribution + lightContribution, 1.0); + + if (u_Scene.DirectionalLights.Multiplier <= 0.0f) + shadowScale = 0.0f; + + o_ViewNormalsLuminance.a = clamp(shadowScale + dot(color.rgb, vec3(0.2125f, 0.7154f, 0.0721f)), 0.0f, 1.0f); + + if (u_RendererData.ShowLightComplexity) + { + int pointLightCount = GetPointLightCount(); + color.rgb = (color.rgb * 0.2) + GetGradient(float(pointLightCount)); + } +} diff --git a/Editor/Resources/Shaders/LuxPBR_Transparent.glsl b/Editor/Resources/Shaders/LuxPBR_Transparent.glsl new file mode 100644 index 0000000..a870cc3 --- /dev/null +++ b/Editor/Resources/Shaders/LuxPBR_Transparent.glsl @@ -0,0 +1,187 @@ +#version 450 core +#pragma stage : vert + +#include +#include +#include + +layout(location = 0) in vec3 a_Position; +layout(location = 1) in vec3 a_Normal; +layout(location = 2) in vec3 a_Tangent; +layout(location = 3) in vec3 a_Binormal; +layout(location = 4) in vec2 a_TexCoord; + +struct VertexOutput +{ + vec3 WorldPosition; + vec3 Normal; + vec2 TexCoord; + mat3 WorldNormals; + mat3 WorldTransform; + vec3 Binormal; + + mat3 CameraView; + + vec3 ShadowMapCoords[4]; + vec3 ViewPosition; +}; + +layout(location = 0) out VertexOutput Output; + +layout(push_constant) uniform PushConstants +{ + uint ObjectIndexBase; + uint LightIndex; + uint BoneTransformBase; + uint BoneTransformStride; + + vec3 AlbedoColor; + float Transparency; + float Roughness; + float Emission; + + float EnvMapRotation; + + bool UseNormalMap; +} u_MaterialUniforms; + +invariant gl_Position; + +void main() +{ + mat4 transform = GetInstanceTransform(u_MaterialUniforms.ObjectIndexBase + gl_InstanceIndex); + vec4 worldPosition = transform * vec4(a_Position, 1.0); + + Output.WorldPosition = worldPosition.xyz; + Output.Normal = mat3(transform) * a_Normal; + Output.TexCoord = vec2(a_TexCoord.x, 1.0 - a_TexCoord.y); + Output.WorldNormals = mat3(transform) * mat3(a_Tangent, a_Binormal, a_Normal); + Output.WorldTransform = mat3(transform); + Output.Binormal = a_Binormal; + + Output.CameraView = mat3(u_Camera.ViewMatrix); + + vec4 shadowCoords[4]; + shadowCoords[0] = u_DirShadow.DirLightMatrices[0] * vec4(Output.WorldPosition.xyz, 1.0); + shadowCoords[1] = u_DirShadow.DirLightMatrices[1] * vec4(Output.WorldPosition.xyz, 1.0); + shadowCoords[2] = u_DirShadow.DirLightMatrices[2] * vec4(Output.WorldPosition.xyz, 1.0); + shadowCoords[3] = u_DirShadow.DirLightMatrices[3] * vec4(Output.WorldPosition.xyz, 1.0); + Output.ShadowMapCoords[0] = vec3(shadowCoords[0].xyz / shadowCoords[0].w); + Output.ShadowMapCoords[1] = vec3(shadowCoords[1].xyz / shadowCoords[1].w); + Output.ShadowMapCoords[2] = vec3(shadowCoords[2].xyz / shadowCoords[2].w); + Output.ShadowMapCoords[3] = vec3(shadowCoords[3].xyz / shadowCoords[3].w); + + Output.ViewPosition = vec3(u_Camera.ViewMatrix * vec4(Output.WorldPosition, 1.0)); + + gl_Position = u_Camera.ViewProjectionMatrix * worldPosition; +} + +#version 450 core +#pragma stage : frag + +#include +#include +#include +#include +#include +#include + +const vec3 Fdielectric = vec3(0.04); + +struct VertexOutput +{ + vec3 WorldPosition; + vec3 Normal; + vec2 TexCoord; + mat3 WorldNormals; + mat3 WorldTransform; + vec3 Binormal; + + mat3 CameraView; + + vec3 ShadowMapCoords[4]; + vec3 ViewPosition; +}; + +layout(location = 0) in VertexOutput Input; + +layout(location = 0) out vec4 color; +layout(location = 1) out vec4 o_ViewNormalsLuminance; +layout(location = 2) out vec4 o_MetalnessRoughness; + +layout(push_constant) uniform PushConstants +{ + uint ObjectIndexBase; + uint LightIndex; + uint BoneTransformBase; + uint BoneTransformStride; + + vec3 AlbedoColor; + float Transparency; + float Roughness; + float Emission; + + float EnvMapRotation; + + bool UseNormalMap; +} u_MaterialUniforms; + +vec3 IBL(vec3 F0, vec3 Lr) +{ + vec3 irradiance = SampleLinear(u_EnvIrradianceTex, m_Params.Normal).rgb; + vec3 F = FresnelSchlickRoughness(F0, m_Params.NdotV, m_Params.Roughness); + vec3 kd = (1.0 - F) * (1.0 - m_Params.Metalness); + vec3 diffuseIBL = m_Params.Albedo * irradiance; + + int envRadianceTexLevels = textureQueryLevels(samplerCube(u_EnvRadianceTex, r_LinearSampler)); + vec3 specularIrradiance = SampleLinearLOD(u_EnvRadianceTex, RotateVectorAboutY(u_MaterialUniforms.EnvMapRotation, Lr), m_Params.Roughness * envRadianceTexLevels).rgb; + + vec2 specularBRDF = SampleLinear(u_BRDFLUTTexture, vec2(m_Params.NdotV, m_Params.Roughness)).rg; + vec3 specularIBL = specularIrradiance * (F0 * specularBRDF.x + specularBRDF.y); + + return kd * diffuseIBL + specularIBL; +} + +void main() +{ + vec4 albedoTexColor = SampleLinear(u_AlbedoTexture, Input.TexCoord); + m_Params.Albedo = albedoTexColor.rgb * ToLinear(vec4(u_MaterialUniforms.AlbedoColor, 1.0)).rgb; + + m_Params.Metalness = 0.0f; + m_Params.Roughness = max(u_MaterialUniforms.Roughness, 0.05); + + m_Params.Normal = normalize(Input.Normal); + if (u_MaterialUniforms.UseNormalMap) + { + m_Params.Normal = normalize(SampleLinear(u_NormalTexture, Input.TexCoord).rgb * 2.0f - 1.0f); + m_Params.Normal = normalize(Input.WorldNormals * m_Params.Normal); + } + + m_Params.View = normalize(u_Scene.CameraPosition - Input.WorldPosition); + m_Params.NdotV = max(dot(m_Params.Normal, m_Params.View), 0.0); + + vec3 Lr = 2.0 * m_Params.NdotV * m_Params.Normal - m_Params.View; + vec3 F0 = mix(Fdielectric, m_Params.Albedo, m_Params.Metalness); + + uint cascadeIndex = 0; + const uint SHADOW_MAP_CASCADE_COUNT = 4; + for (uint i = 0; i < SHADOW_MAP_CASCADE_COUNT - 1; i++) + { + if (Input.ViewPosition.z < u_RendererData.CascadeSplits[i]) + cascadeIndex = i + 1; + } + + float shadowScale = u_RendererData.SoftShadows ? + PCSS_DirectionalLight(u_ShadowMapTexture, cascadeIndex, GetShadowMapCoords(Input.ShadowMapCoords, cascadeIndex), u_RendererData.LightSize) : + HardShadows_DirectionalLight(u_ShadowMapTexture, cascadeIndex, GetShadowMapCoords(Input.ShadowMapCoords, cascadeIndex)); + + shadowScale = 1.0 - clamp(u_Scene.DirectionalLights.ShadowAmount - shadowScale, 0.0f, 1.0f); + + vec3 lightContribution = CalculateDirLights(F0) * shadowScale; + lightContribution += CalculatePointLights(F0, Input.WorldPosition); + lightContribution += m_Params.Albedo * u_MaterialUniforms.Emission; + + vec3 iblContribution = IBL(F0, Lr) * u_Scene.EnvironmentMapIntensity; + + color = vec4(m_Params.Albedo, u_MaterialUniforms.Transparency); +} diff --git a/Editor/Source/EditorLayer.cpp b/Editor/Source/EditorLayer.cpp index b3cfdce..e32a992 100644 --- a/Editor/Source/EditorLayer.cpp +++ b/Editor/Source/EditorLayer.cpp @@ -440,43 +440,6 @@ namespace Lux { } style.WindowMinSize.x = minWinSizeX; - if (ImGui::BeginMenuBar()) - { - if (ImGui::BeginMenu("File")) - { - if (ImGui::MenuItem("Open Project...", "Ctrl+O")) - OpenProject(); - - ImGui::Separator(); - - if (ImGui::MenuItem("New Scene", "Ctrl+N")) - NewScene(); - - if (ImGui::MenuItem("Save Scene", "Ctrl+S")) - SaveScene(); - - if (ImGui::MenuItem("Save Scene As...", "Ctrl+Shift+S")) - SaveSceneAs(); - - ImGui::Separator(); - - if (ImGui::MenuItem("Exit")) - Application::Get().Close(); - - ImGui::EndMenu(); - } - - if (ImGui::BeginMenu("Script")) - { - if (ImGui::MenuItem("Reload assembly", "Ctrl+R")) - ScriptEngine::ReloadAssembly(); - - ImGui::EndMenu(); - } - - ImGui::EndMenuBar(); - } - m_PanelManager->OnImGuiRender(); // Stats panel @@ -590,7 +553,7 @@ namespace Lux { ImGui::End(); // Lux Editor } - void EditorLayer::UI_Toolbar() + void EditorLayer::UI_GizmosToolbar() { ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 2)); ImGui::PushStyleVar(ImGuiStyleVar_ItemInnerSpacing, ImVec2(0, 0)); diff --git a/Editor/Source/EditorLayer.h b/Editor/Source/EditorLayer.h index 00392c5..b7c92a7 100644 --- a/Editor/Source/EditorLayer.h +++ b/Editor/Source/EditorLayer.h @@ -10,6 +10,7 @@ #include "Lux/Asset/Asset.h" #include "Lux/Scene/Entity.h" #include "Lux/Scene/Scene.h" +#include "Lux/ImGui/Colors.h" #include "Lux/Editor/EditorCamera.h" #include "Lux/Renderer/Renderer2D.h" #include "Lux/Renderer/Framebuffer.h" @@ -43,9 +44,7 @@ namespace Lux bool OnTitleBarHitTest(WindowTitleBarHitTestEvent& e); //bool OnWindowDrop(WindowDropEvent& e); - void OnOverlayRender(); - void UI_DrawTitlebar(); - void UI_DrawMenubar(); + void NewProject(); bool OpenProject(); @@ -67,9 +66,11 @@ namespace Lux void OnDuplicateEntity(); + void OnOverlayRender(); + // UI Panels - void UI_DrawMenubar(); float UI_DrawTitlebar(); + void UI_DrawMenubar(); void UI_HandleManualWindowResize(); bool UI_TitleBarHitTest(int x, int y) const; From e89d7ac12d58d50be4ebad5c97a849de1dae8dfd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 18 Apr 2026 17:37:02 +0000 Subject: [PATCH 12/18] Phase 3-7: add viewport overlays, picking raycast, and debug icon/bounds rendering Agent-Logs-Url: https://github.com/starbounded-dev/LuxEngine/sessions/feafe25a-14ea-4dc9-b2ca-d49949ed3bd1 Co-authored-by: sheazywi <73042839+sheazywi@users.noreply.github.com> --- Editor/Source/EditorLayer.cpp | 434 +++++++++++++++++++++++++++------- Editor/Source/EditorLayer.h | 17 ++ 2 files changed, 363 insertions(+), 88 deletions(-) diff --git a/Editor/Source/EditorLayer.cpp b/Editor/Source/EditorLayer.cpp index 32bb475..5b04cd3 100644 --- a/Editor/Source/EditorLayer.cpp +++ b/Editor/Source/EditorLayer.cpp @@ -11,6 +11,8 @@ #include "Lux/Asset/AssetManager.h" #include "Lux/Asset/TextureImporter.h" #include "Lux/Asset/SceneImporter.h" +#include "Lux/Core/Math/Ray.h" +#include "Lux/Renderer/Mesh.h" #include #include @@ -31,6 +33,9 @@ #include "Panels/SceneHierarchyPanel.h" #include "Panels/ContentBrowserPanel.h" #include "Panels/SceneRendererPanel.h" +#include +#include +#include namespace Lux { @@ -266,9 +271,14 @@ namespace Lux { m_SceneRenderer->SetViewportSize(viewportWidth, viewportHeight); } + m_EditorCamera.SetActive(m_ViewportFocused || m_ViewportHovered); + EnsureSceneRenderer(m_ActiveScene, m_ViewportSize); if (s_SceneRendererState.Renderer) + { s_SceneRendererState.Renderer->GetOptions().ShowPhysicsColliders = m_ShowPhysicsColliders; + s_SceneRendererState.Renderer->GetOptions().ShowSelectedInWireframe = (m_ViewportDisplayMode == ViewportDisplayMode::SelectedWireframe); + } m_Renderer2D->ResetStats(); @@ -481,6 +491,11 @@ namespace Lux { ImGui::EndDragDropTarget(); } + if (m_ViewportHovered) + m_HoveredEntity = CastMousePick(); + else + m_HoveredEntity = {}; + // Gizmos Entity selectedEntity = {}; if (m_SceneHierarchyPanel) @@ -501,8 +516,9 @@ namespace Lux { auto& tc = selectedEntity.GetComponent(); glm::mat4 transform = tc.GetTransform(); - bool snap = Input::IsKeyPressed(Key::LeftControl); - float snapValue = (m_GizmoType == ImGuizmo::OPERATION::ROTATE) ? 45.0f : 0.5f; + const bool controlSnap = Input::IsKeyPressed(Key::LeftControl) || Input::IsKeyPressed(Key::RightControl); + bool snap = m_UseGizmoSnap || controlSnap; + float snapValue = (m_GizmoType == ImGuizmo::OPERATION::ROTATE) ? m_RotationSnapValue : m_TranslationSnapValue; float snapValues[3] = { snapValue, snapValue, snapValue }; // FIX: Actually call Manipulate() - it was completely missing, @@ -537,7 +553,9 @@ namespace Lux { ImGui::End(); // Viewport ImGui::PopStyleVar(); - UI_Toolbar(); + UI_GizmosToolbar(); + UI_CentralToolbar(); + UI_ViewportSettings(); } ImGui::End(); // Lux Editor @@ -730,105 +748,162 @@ namespace Lux { }); } - void EditorLayer::UI_Toolbar() + void EditorLayer::UI_GizmosToolbar() { - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 2)); - ImGui::PushStyleVar(ImGuiStyleVar_ItemInnerSpacing, ImVec2(0, 0)); - ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0, 0, 0, 0)); - auto& colors = ImGui::GetStyle().Colors; - const auto& buttonHovered = colors[ImGuiCol_ButtonHovered]; - ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(buttonHovered.x, buttonHovered.y, buttonHovered.z, 0.5f)); - const auto& buttonActive = colors[ImGuiCol_ButtonActive]; - ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(buttonActive.x, buttonActive.y, buttonActive.z, 0.5f)); + if (m_ViewportSize.x <= 0.0f || m_ViewportSize.y <= 0.0f) + return; - ImGui::Begin("##toolbar", nullptr, ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoScrollWithMouse); + const ImGuiWindowFlags flags = ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoDocking | + ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_AlwaysAutoResize | + ImGuiWindowFlags_NoFocusOnAppearing | ImGuiWindowFlags_NoNav; - bool toolbarEnabled = (bool)m_ActiveScene; + ImGui::SetNextWindowPos(ImVec2(m_ViewportBounds[0].x + 12.0f, m_ViewportBounds[0].y + 12.0f), ImGuiCond_Always); + ImGui::SetNextWindowBgAlpha(0.55f); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(6.0f, 6.0f)); + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(4.0f, 4.0f)); + ImGui::Begin("##viewport_gizmos_toolbar", nullptr, flags); - ImVec4 tintColor = ImVec4(1, 1, 1, 1); - if (!toolbarEnabled) - tintColor.w = 0.5f; + const ImU32 normalTint = IM_COL32(215, 215, 215, 220); + const ImU32 hoverTint = IM_COL32(255, 255, 255, 255); + const ImU32 activeTint = IM_COL32(235, 235, 235, 255); + const ImVec2 buttonSize(24.0f, 24.0f); - float size = ImGui::GetWindowHeight() - 4.0f; - ImGui::SetCursorPosX((ImGui::GetWindowContentRegionMax().x * 0.5f) - (size * 0.5f)); + auto gizmoButton = [&](const char* id, Ref icon, int gizmoMode) + { + ImGui::InvisibleButton(id, buttonSize); + UI::DrawButtonImage(icon, normalTint, hoverTint, activeTint, ImGui::GetItemRectMin(), ImGui::GetItemRectMax()); - bool hasPlayButton = m_SceneState == SceneState::Edit || m_SceneState == SceneState::Play; - bool hasSimulateButton = m_SceneState == SceneState::Edit || m_SceneState == SceneState::Simulate; - bool hasPauseButton = m_SceneState != SceneState::Edit; + if (m_GizmoType == gizmoMode) + ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), Colors::Theme::accent, 2.0f, 0, 2.0f); - if (hasPlayButton) - { - Ref icon = (m_SceneState == SceneState::Edit || m_SceneState == SceneState::Simulate) ? m_IconPlay : m_IconStop; - if (ImGui::ImageButton("##play", GetImGuiTextureID(icon), ImVec2(size, size), ImVec2(0, 0), ImVec2(1, 1), ImVec4(0,0,0,0), tintColor)) - { - if (m_SceneState == SceneState::Edit || m_SceneState == SceneState::Simulate) - OnScenePlay(); - else if (m_SceneState == SceneState::Play) - OnSceneStop(); - } - } + if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) + m_GizmoType = gizmoMode; + }; - if (hasSimulateButton) - { - if (hasPlayButton) - ImGui::SameLine(); + gizmoButton("##gizmo_select", EditorResources::PointerIcon, -1); + ImGui::SameLine(); + gizmoButton("##gizmo_translate", EditorResources::MoveIcon, ImGuizmo::TRANSLATE); + ImGui::SameLine(); + gizmoButton("##gizmo_rotate", EditorResources::RotateIcon, ImGuizmo::ROTATE); + ImGui::SameLine(); + gizmoButton("##gizmo_scale", EditorResources::ScaleIcon, ImGuizmo::SCALE); - Ref icon = (m_SceneState == SceneState::Edit || m_SceneState == SceneState::Play) ? m_IconSimulate : m_IconStop; - if (ImGui::ImageButton("##simulate", GetImGuiTextureID(icon), ImVec2(size, size), ImVec2(0, 0), ImVec2(1, 1), ImVec4(0,0,0,0), tintColor)) - { - if (m_SceneState == SceneState::Edit || m_SceneState == SceneState::Play) - OnSceneSimulate(); - else if (m_SceneState == SceneState::Simulate) - OnSceneStop(); - } - } + ImGui::End(); + ImGui::PopStyleVar(2); + } - if (hasPauseButton) - { - bool isPaused = m_ActiveScene->IsPaused(); - ImGui::SameLine(); - { - if (ImGui::ImageButton("##pause", GetImGuiTextureID(m_IconPause), ImVec2(size, size), ImVec2(0, 0), ImVec2(1, 1), ImVec4(0,0,0,0), tintColor) && toolbarEnabled) - m_ActiveScene->SetPaused(!isPaused); - } + void EditorLayer::UI_CentralToolbar() + { + if (m_ViewportSize.x <= 0.0f || m_ViewportSize.y <= 0.0f) + return; - if (isPaused) - { - ImGui::SameLine(); - if (ImGui::ImageButton("##step", GetImGuiTextureID(m_IconStep), ImVec2(size, size), ImVec2(0, 0), ImVec2(1, 1), ImVec4(0,0,0,0), tintColor) && toolbarEnabled) - m_ActiveScene->Step(); - } - } + const ImGuiWindowFlags flags = ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoDocking | + ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_AlwaysAutoResize | + ImGuiWindowFlags_NoFocusOnAppearing | ImGuiWindowFlags_NoNav; + + const float toolbarWidth = 118.0f; + const float posX = m_ViewportBounds[0].x + (m_ViewportSize.x - toolbarWidth) * 0.5f; + const float posY = m_ViewportBounds[0].y + 12.0f; + + ImGui::SetNextWindowPos(ImVec2(posX, posY), ImGuiCond_Always); + ImGui::SetNextWindowBgAlpha(0.55f); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(8.0f, 6.0f)); + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(6.0f, 0.0f)); + ImGui::Begin("##viewport_central_toolbar", nullptr, flags); + + const ImU32 normalTint = IM_COL32(215, 215, 215, 220); + const ImU32 hoverTint = IM_COL32(255, 255, 255, 255); + const ImU32 activeTint = IM_COL32(235, 235, 235, 255); + const ImVec2 buttonSize(24.0f, 24.0f); + + auto controlButton = [&](const char* id, Ref icon, bool active, const std::function& onClick) + { + ImGui::InvisibleButton(id, buttonSize); + UI::DrawButtonImage(icon, normalTint, hoverTint, activeTint, ImGui::GetItemRectMin(), ImGui::GetItemRectMax()); + if (active) + ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), Colors::Theme::accent, 2.0f, 0, 2.0f); + if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) + onClick(); + }; + controlButton("##scene_play", EditorResources::PlayIcon, m_SceneState == SceneState::Play, [this]() + { + if (m_SceneState != SceneState::Play) + OnScenePlay(); + }); ImGui::SameLine(); - ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); + controlButton("##scene_simulate", EditorResources::SimulateIcon, m_SceneState == SceneState::Simulate, [this]() + { + if (m_SceneState != SceneState::Simulate) + OnSceneSimulate(); + }); ImGui::SameLine(); + controlButton("##scene_stop", EditorResources::StopIcon, m_SceneState == SceneState::Edit, [this]() + { + if (m_SceneState != SceneState::Edit) + OnSceneStop(); + }); - // Gizmo mode indicator - const char* gizmoMode = "None"; - if (m_GizmoType == ImGuizmo::TRANSLATE) gizmoMode = "Translate"; - else if (m_GizmoType == ImGuizmo::ROTATE) gizmoMode = "Rotate"; - else if (m_GizmoType == ImGuizmo::SCALE) gizmoMode = "Scale"; + ImGui::End(); + ImGui::PopStyleVar(2); + } - ImGui::Text("%s", gizmoMode); - ImGui::SameLine(); + void EditorLayer::UI_ViewportSettings() + { + if (m_ViewportSize.x <= 0.0f || m_ViewportSize.y <= 0.0f) + return; - // Grid toggle - if (s_SceneRendererState.Renderer) + const ImGuiWindowFlags flags = ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoDocking | + ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_AlwaysAutoResize | + ImGuiWindowFlags_NoFocusOnAppearing | ImGuiWindowFlags_NoNav; + + ImGui::SetNextWindowPos(ImVec2(m_ViewportBounds[1].x - 44.0f, m_ViewportBounds[0].y + 12.0f), ImGuiCond_Always); + ImGui::SetNextWindowBgAlpha(0.55f); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(6.0f, 6.0f)); + ImGui::Begin("##viewport_settings_toolbar", nullptr, flags); + + const ImVec2 buttonSize(24.0f, 24.0f); + ImGui::InvisibleButton("##viewport_settings_btn", buttonSize); + UI::DrawButtonImage(EditorResources::GearIcon, IM_COL32(215, 215, 215, 220), IM_COL32(255, 255, 255, 255), IM_COL32(235, 235, 235, 255), ImGui::GetItemRectMin(), ImGui::GetItemRectMax()); + if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) + ImGui::OpenPopup("##viewport_settings_popup"); + + if (ImGui::BeginPopup("##viewport_settings_popup")) { - bool showGrid = s_SceneRendererState.Renderer->GetOptions().ShowGrid; - ImGui::SameLine(); - if (ImGui::Checkbox("##grid", &showGrid)) + ImGui::Checkbox("Enable Gizmo Snap", &m_UseGizmoSnap); + if (m_UseGizmoSnap) { - s_SceneRendererState.Renderer->GetOptions().ShowGrid = showGrid; + ImGui::DragFloat("Translate Snap", &m_TranslationSnapValue, 0.05f, 0.05f, 10.0f, "%.2f"); + ImGui::DragFloat("Rotate Snap", &m_RotationSnapValue, 1.0f, 1.0f, 180.0f, "%.0f"); } - if (ImGui::IsItemHovered()) - ImGui::SetTooltip("Toggle Grid"); + + ImGui::Separator(); + ImGui::Checkbox("Show Bounding Boxes", &m_ShowBoundingBoxes); + ImGui::Checkbox("Show Entity Icons", &m_ShowEntityIcons); + + if (s_SceneRendererState.Renderer) + { + auto& options = s_SceneRendererState.Renderer->GetOptions(); + ImGui::Checkbox("Show Grid", &options.ShowGrid); + ImGui::Checkbox("Show Physics Colliders", &options.ShowPhysicsColliders); + } + + int displayMode = (int)m_ViewportDisplayMode; + if (ImGui::Combo("Display Mode", &displayMode, "Lit\0Selected Wireframe\0")) + m_ViewportDisplayMode = (ViewportDisplayMode)displayMode; + + ImGui::EndPopup(); } - ImGui::PopStyleVar(2); - ImGui::PopStyleColor(3); ImGui::End(); + ImGui::PopStyleVar(); + } + + void EditorLayer::UI_Toolbar() + { + UI_GizmosToolbar(); + UI_CentralToolbar(); + UI_ViewportSettings(); } void EditorLayer::OnEvent(Event& e) @@ -881,12 +956,152 @@ namespace Lux { if (e.GetMouseButton() == MouseButton::Left) { if (m_ViewportHovered && !ImGuizmo::IsOver() && !Input::IsKeyPressed(Key::LeftAlt)) + { + m_HoveredEntity = CastMousePick(); if (m_SceneHierarchyPanel) m_SceneHierarchyPanel->SetSelectedEntity(m_HoveredEntity); + } } return false; } + Entity EditorLayer::CastMousePick() const + { + if (!m_ActiveScene) + return {}; + + const float viewportWidth = m_ViewportBounds[1].x - m_ViewportBounds[0].x; + const float viewportHeight = m_ViewportBounds[1].y - m_ViewportBounds[0].y; + if (viewportWidth <= 1.0f || viewportHeight <= 1.0f) + return {}; + + const float mouseX = Input::GetMouseX() - m_ViewportBounds[0].x; + const float mouseY = Input::GetMouseY() - m_ViewportBounds[0].y; + if (mouseX < 0.0f || mouseY < 0.0f || mouseX > viewportWidth || mouseY > viewportHeight) + return {}; + + const float ndcX = (mouseX / viewportWidth) * 2.0f - 1.0f; + const float ndcY = 1.0f - (mouseY / viewportHeight) * 2.0f; + + glm::mat4 inverseViewProjection = glm::inverse(m_EditorCamera.GetUnReversedViewProjection()); + glm::vec4 nearPoint = inverseViewProjection * glm::vec4(ndcX, ndcY, 0.0f, 1.0f); + glm::vec4 farPoint = inverseViewProjection * glm::vec4(ndcX, ndcY, 1.0f, 1.0f); + if (nearPoint.w == 0.0f || farPoint.w == 0.0f) + return {}; + + nearPoint /= nearPoint.w; + farPoint /= farPoint.w; + + const glm::vec3 rayOrigin = glm::vec3(nearPoint); + const glm::vec3 rayDirection = glm::normalize(glm::vec3(farPoint - nearPoint)); + if (glm::dot(rayDirection, rayDirection) <= 0.0f) + return {}; + + Entity closestEntity = {}; + float closestDistance = std::numeric_limits::max(); + + auto view = m_ActiveScene->GetAllEntitiesWith(); + for (auto entityID : view) + { + Entity entity(entityID, m_ActiveScene.Raw()); + float distance = 0.0f; + if (!RayIntersectsEntity(entity, rayOrigin, rayDirection, distance)) + continue; + + if (distance < closestDistance) + { + closestDistance = distance; + closestEntity = entity; + } + } + + return closestEntity; + } + + bool EditorLayer::RayIntersectsEntity(Entity entity, const glm::vec3& rayOrigin, const glm::vec3& rayDirection, float& outDistance) const + { + outDistance = std::numeric_limits::max(); + if (!entity || !entity.HasComponent()) + return false; + + const TransformComponent& transformComponent = entity.GetComponent(); + const glm::mat4 worldTransform = transformComponent.GetTransform(); + bool hit = false; + + auto testAABB = [&](const AABB& localAABB, const glm::mat4& localTransform = glm::mat4(1.0f)) + { + const glm::mat4 inverseTransform = glm::inverse(worldTransform * localTransform); + const glm::vec3 localOrigin = glm::vec3(inverseTransform * glm::vec4(rayOrigin, 1.0f)); + const glm::vec3 localDirection = glm::normalize(glm::vec3(inverseTransform * glm::vec4(rayDirection, 0.0f))); + if (glm::dot(localDirection, localDirection) <= 0.0f) + return; + + Ray localRay(localOrigin, localDirection); + float t = 0.0f; + if (localRay.IntersectsAABB(localAABB, t) && t >= 0.0f && t < outDistance) + { + outDistance = t; + hit = true; + } + }; + + if (entity.HasComponent()) + { + const auto& staticMeshComponent = entity.GetComponent(); + Ref staticMesh = AssetManager::GetAsset(staticMeshComponent.Mesh); + if (staticMesh) + { + Ref meshSource = AssetManager::GetAsset(staticMesh->GetMeshSource()); + if (meshSource) + testAABB(meshSource->GetBoundingBox()); + } + } + + if (entity.HasComponent()) + { + const auto& collider = entity.GetComponent(); + const glm::vec3 extents = glm::vec3(collider.Size, 0.05f); + const glm::vec3 center = glm::vec3(collider.Offset, 0.0f); + testAABB(AABB(center - extents, center + extents)); + } + + if (entity.HasComponent()) + { + const auto& collider = entity.GetComponent(); + const glm::vec3 extents = glm::vec3(collider.Radius, collider.Radius, 0.05f); + const glm::vec3 center = glm::vec3(collider.Offset, 0.0f); + testAABB(AABB(center - extents, center + extents)); + } + + const bool shouldUseIconSelection = entity.HasComponent() || + entity.HasComponent() || + entity.HasComponent() || + entity.HasComponent() || + entity.HasComponent() || + entity.HasComponent(); + + if (!hit && shouldUseIconSelection) + { + const glm::vec3 center = transformComponent.Translation; + const float radius = 0.35f; + const glm::vec3 toCenter = rayOrigin - center; + const float b = glm::dot(toCenter, rayDirection); + const float c = glm::dot(toCenter, toCenter) - radius * radius; + const float discriminant = b * b - c; + if (discriminant >= 0.0f) + { + const float t = -b - std::sqrt(discriminant); + if (t >= 0.0f && t < outDistance) + { + outDistance = t; + hit = true; + } + } + } + + return hit; + } + bool EditorLayer::OnTitleBarHitTest(WindowTitleBarHitTestEvent& e) { const float x = (float)e.GetX(); @@ -965,14 +1180,35 @@ namespace Lux { } } - // Selected entity outline - Entity selectedEntity = {}; - if (m_SceneHierarchyPanel) - selectedEntity = m_SceneHierarchyPanel->GetSelectedEntity(); - if (selectedEntity) + } + + Entity selectedEntity = {}; + if (m_SceneHierarchyPanel) + selectedEntity = m_SceneHierarchyPanel->GetSelectedEntity(); + + if (selectedEntity) + { + const TransformComponent& transform = selectedEntity.GetComponent(); + const glm::mat4 worldTransform = transform.GetTransform(); + + bool drewBoundingBox = false; + if (m_ShowBoundingBoxes && selectedEntity.HasComponent()) + { + const auto& smc = selectedEntity.GetComponent(); + Ref staticMesh = AssetManager::GetAsset(smc.Mesh); + if (staticMesh) + { + Ref meshSource = AssetManager::GetAsset(staticMesh->GetMeshSource()); + if (meshSource) + { + m_Renderer2D->DrawAABB(meshSource->GetBoundingBox(), worldTransform, glm::vec4(1.0f, 0.5f, 0.0f, 1.0f), true); + drewBoundingBox = true; + } + } + } + + if (!drewBoundingBox) { - const TransformComponent& transform = selectedEntity.GetComponent(); - glm::mat4 t = transform.GetTransform(); glm::vec4 color(1.0f, 0.5f, 0.0f, 1.0f); glm::vec4 corners[4] = { {-0.5f, -0.5f, 0.0f, 1.0f}, { 0.5f, -0.5f, 0.0f, 1.0f}, @@ -980,13 +1216,35 @@ namespace Lux { }; for (int i = 0; i < 4; i++) { - glm::vec3 p0 = t * corners[i]; - glm::vec3 p1 = t * corners[(i + 1) % 4]; + glm::vec3 p0 = worldTransform * corners[i]; + glm::vec3 p1 = worldTransform * corners[(i + 1) % 4]; m_Renderer2D->DrawLine(p0, p1, color); } } } + if (m_ShowEntityIcons) + { + auto drawIconForView = [this](auto view, const Ref& iconTexture) + { + if (!iconTexture) + return; + + for (auto entityID : view) + { + auto& transform = view.template get(entityID); + m_Renderer2D->DrawQuadBillboard(transform.Translation, glm::vec2(0.35f), iconTexture, 1.0f, glm::vec4(1.0f)); + } + }; + + drawIconForView(m_ActiveScene->GetAllEntitiesWith(), EditorResources::CameraIcon); + drawIconForView(m_ActiveScene->GetAllEntitiesWith(), EditorResources::AudioIcon); + drawIconForView(m_ActiveScene->GetAllEntitiesWith(), EditorResources::AudioListenerIcon); + drawIconForView(m_ActiveScene->GetAllEntitiesWith(), EditorResources::DirectionalLightIcon); + drawIconForView(m_ActiveScene->GetAllEntitiesWith(), EditorResources::PointLightIcon); + drawIconForView(m_ActiveScene->GetAllEntitiesWith(), EditorResources::SpotLightIcon); + } + m_Renderer2D->EndScene(); } diff --git a/Editor/Source/EditorLayer.h b/Editor/Source/EditorLayer.h index 7c0932c..c4d2c92 100644 --- a/Editor/Source/EditorLayer.h +++ b/Editor/Source/EditorLayer.h @@ -46,6 +46,11 @@ namespace Lux void OnOverlayRender(); void UI_DrawTitlebar(); void UI_DrawMenubar(); + void UI_GizmosToolbar(); + void UI_CentralToolbar(); + void UI_ViewportSettings(); + Entity CastMousePick() const; + bool RayIntersectsEntity(Entity entity, const glm::vec3& rayOrigin, const glm::vec3& rayDirection, float& outDistance) const; void NewProject(); bool OpenProject(); @@ -109,6 +114,11 @@ namespace Lux int m_GizmoType = -1; bool m_ShowPhysicsColliders = false; + bool m_ShowBoundingBoxes = false; + bool m_ShowEntityIcons = true; + bool m_UseGizmoSnap = false; + float m_TranslationSnapValue = 0.5f; + float m_RotationSnapValue = 45.0f; enum class SceneState { @@ -116,6 +126,13 @@ namespace Lux }; SceneState m_SceneState = SceneState::Edit; + enum class ViewportDisplayMode + { + Lit = 0, + SelectedWireframe = 1 + }; + ViewportDisplayMode m_ViewportDisplayMode = ViewportDisplayMode::Lit; + ImVec4 m_AnimatedTitlebarColor = ImGui::ColorConvertU32ToFloat4(Colors::Theme::titlebar); ImVec2 m_TitleBarDragRectMin = { 0.0f, 0.0f }; ImVec2 m_TitleBarDragRectMax = { 0.0f, 0.0f }; From c129f737f8bb182468441797aa038c2e42e0efe3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 18 Apr 2026 17:40:36 +0000 Subject: [PATCH 13/18] Fix ray normalization checks in viewport picking Agent-Logs-Url: https://github.com/starbounded-dev/LuxEngine/sessions/feafe25a-14ea-4dc9-b2ca-d49949ed3bd1 Co-authored-by: sheazywi <73042839+sheazywi@users.noreply.github.com> --- Editor/Source/EditorLayer.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Editor/Source/EditorLayer.cpp b/Editor/Source/EditorLayer.cpp index 5b04cd3..59fec54 100644 --- a/Editor/Source/EditorLayer.cpp +++ b/Editor/Source/EditorLayer.cpp @@ -993,9 +993,10 @@ namespace Lux { farPoint /= farPoint.w; const glm::vec3 rayOrigin = glm::vec3(nearPoint); - const glm::vec3 rayDirection = glm::normalize(glm::vec3(farPoint - nearPoint)); - if (glm::dot(rayDirection, rayDirection) <= 0.0f) + const glm::vec3 rayVector = glm::vec3(farPoint - nearPoint); + if (glm::dot(rayVector, rayVector) <= std::numeric_limits::epsilon()) return {}; + const glm::vec3 rayDirection = glm::normalize(rayVector); Entity closestEntity = {}; float closestDistance = std::numeric_limits::max(); @@ -1032,9 +1033,10 @@ namespace Lux { { const glm::mat4 inverseTransform = glm::inverse(worldTransform * localTransform); const glm::vec3 localOrigin = glm::vec3(inverseTransform * glm::vec4(rayOrigin, 1.0f)); - const glm::vec3 localDirection = glm::normalize(glm::vec3(inverseTransform * glm::vec4(rayDirection, 0.0f))); - if (glm::dot(localDirection, localDirection) <= 0.0f) + const glm::vec3 localDirectionVector = glm::vec3(inverseTransform * glm::vec4(rayDirection, 0.0f)); + if (glm::dot(localDirectionVector, localDirectionVector) <= std::numeric_limits::epsilon()) return; + const glm::vec3 localDirection = glm::normalize(localDirectionVector); Ray localRay(localOrigin, localDirection); float t = 0.0f; From d79e3abf8ac2eef31e6b6fd2355a147e1358d215 Mon Sep 17 00:00:00 2001 From: Pier-Olivier Boulianne Date: Sat, 18 Apr 2026 14:34:28 -0400 Subject: [PATCH 14/18] WIP: fix weird scene camera view, and error since i remove UI.h --- .../Assets/Scenes/Physics2D.luxscene | 15 ++++++++++++-- Editor/Source/Panels/SceneHierarchyPanel.cpp | 20 ++++++++++++++----- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/Editor/SandboxProject/Assets/Scenes/Physics2D.luxscene b/Editor/SandboxProject/Assets/Scenes/Physics2D.luxscene index 6ccfdd5..7567430 100644 --- a/Editor/SandboxProject/Assets/Scenes/Physics2D.luxscene +++ b/Editor/SandboxProject/Assets/Scenes/Physics2D.luxscene @@ -1,5 +1,14 @@ Scene: Untitled Entities: + - Entity: 10625048149344785802 + TagComponent: + Tag: Empty Entity + TransformComponent: + Translation: [0, 0, 0] + Rotation: [0, 0, 0] + Scale: [1, 1, 1] + RelationshipComponent: + Parent: 0 - Entity: 14040563719264005740 TagComponent: Tag: Player @@ -27,14 +36,16 @@ Entities: TransformComponent: Translation: [0, 0, 0] Rotation: [0, 0, 0] - Scale: [1, 1, 1] + Scale: [20, 12, 10] + RelationshipComponent: + Parent: 0 CameraComponent: Camera: ProjectionType: 1 PerspectiveFOV: 0.785398185 PerspectiveNear: 0.00999999978 PerspectiveFar: 1000 - OrthographicSize: 1.20256782 + OrthographicSize: 1.62107623 OrthographicNear: -1 OrthographicFar: 1 Primary: true diff --git a/Editor/Source/Panels/SceneHierarchyPanel.cpp b/Editor/Source/Panels/SceneHierarchyPanel.cpp index 798f5e5..a7bfbc6 100644 --- a/Editor/Source/Panels/SceneHierarchyPanel.cpp +++ b/Editor/Source/Panels/SceneHierarchyPanel.cpp @@ -4,7 +4,6 @@ #include "Lux/Scene/Components.h" #include "Lux/Scripting/ScriptEngine.h" -#include "Lux/UI/UI.h" #include "Lux/ImGui/ImGuiEx.h" #include "Lux/Asset/AssetManager.h" @@ -406,12 +405,23 @@ namespace Lux { static char buffer[64]; strcpy_s(buffer, sizeof(buffer), component.ClassName.c_str()); - UI::ScopedStyleColor textColor(ImGuiCol_Text, ImVec4(0.9f, 0.2f, 0.3f, 1.0f), !scriptClassExists); + if (!scriptClassExists) + { + ImGuiEx::ScopedColour textColor(ImGuiCol_Text, ImVec4(0.9f, 0.2f, 0.3f, 1.0f)); - if (ImGui::InputText("Class", buffer, sizeof(buffer))) + if (ImGui::InputText("Class", buffer, sizeof(buffer))) + { + component.ClassName = buffer; + return; + } + } + else { - component.ClassName = buffer; - return; + if (ImGui::InputText("Class", buffer, sizeof(buffer))) + { + component.ClassName = buffer; + return; + } } // Fields From 10064273cecc2720a4ddae568cfec0feb8002bee Mon Sep 17 00:00:00 2001 From: Pier-Olivier Boulianne Date: Sat, 18 Apr 2026 14:55:04 -0400 Subject: [PATCH 15/18] WIP: for some reason UI.h keeps coming back, update drawimage from imguiex --- Core/Source/Lux/ImGui/ImGuiEx.h | 1 - Core/Source/Lux/UI/UI.h | 145 -------------------------------- Editor/Source/EditorLayer.cpp | 10 +-- Editor/Source/EditorLayer.h | 3 +- 4 files changed, 7 insertions(+), 152 deletions(-) delete mode 100644 Core/Source/Lux/UI/UI.h diff --git a/Core/Source/Lux/ImGui/ImGuiEx.h b/Core/Source/Lux/ImGui/ImGuiEx.h index d961c70..732e2a5 100644 --- a/Core/Source/Lux/ImGui/ImGuiEx.h +++ b/Core/Source/Lux/ImGui/ImGuiEx.h @@ -12,7 +12,6 @@ #include "Lux/ImGui/ImGuiWidgets.h" //#include "Lux/Scene/Prefab.h" #include "Lux/Scene/Scene.h" -#include "Lux/UI/UI.h" #include "Lux/Utilities/StringUtils.h" #include diff --git a/Core/Source/Lux/UI/UI.h b/Core/Source/Lux/UI/UI.h deleted file mode 100644 index e182a74..0000000 --- a/Core/Source/Lux/UI/UI.h +++ /dev/null @@ -1,145 +0,0 @@ -#pragma once - -#include - -#ifndef IMGUI_DEFINE_MATH_OPERATORS -#define IMGUI_DEFINE_MATH_OPERATORS -#endif -#include - -#include "Lux/ImGui/Colors.h" -#include "Lux/ImGui/ImGuiUtilities.h" - -namespace Lux::UI { - - // ========================================================================= - // Scoped helpers — mirrors the Hazel UI:: namespace conventions - // ========================================================================= - - /// RAII wrapper for ImGui::PushStyleColor / PopStyleColor - struct ScopedColour - { - ScopedColour() = default; - - ScopedColour(ImGuiCol idx, ImVec4 colour, bool predicate = true) - : m_Set(predicate) - { - if (predicate) - ImGui::PushStyleColor(idx, colour); - } - - ScopedColour(ImGuiCol idx, ImU32 colour, bool predicate = true) - : m_Set(predicate) - { - if (predicate) - ImGui::PushStyleColor(idx, colour); - } - - ScopedColour(ImGuiCol idx, ImColor colour, bool predicate = true) - : m_Set(predicate) - { - if (predicate) - ImGui::PushStyleColor(idx, colour.Value); - } - - ~ScopedColour() - { - if (m_Set) - ImGui::PopStyleColor(); - } - - ScopedColour(const ScopedColour&) = delete; - ScopedColour& operator=(const ScopedColour&) = delete; - private: - bool m_Set = false; - }; - - // Legacy alias kept for backwards compatibility - using ScopedStyleColor = ScopedColour; - - /// RAII wrapper for ImGui::PushStyleVar / PopStyleVar - struct ScopedStyle - { - ScopedStyle(ImGuiStyleVar styleVar, float value) { ImGui::PushStyleVar(styleVar, value); } - ScopedStyle(ImGuiStyleVar styleVar, ImVec2 value) { ImGui::PushStyleVar(styleVar, value); } - ~ScopedStyle() { ImGui::PopStyleVar(); } - - ScopedStyle(const ScopedStyle&) = delete; - ScopedStyle& operator=(const ScopedStyle&) = delete; - }; - - /// RAII wrapper for ImGui::PushFont / PopFont - struct ScopedFont - { - ScopedFont(ImFont* font) { ImGui::PushFont(font); } - ~ScopedFont() { ImGui::PopFont(); } - - ScopedFont(const ScopedFont&) = delete; - ScopedFont& operator=(const ScopedFont&) = delete; - }; - - // ========================================================================= - // Cursor helpers - // ========================================================================= - - /// Shift the cursor position along the X axis by the given amount - inline void ShiftCursorX(float distance) - { - ImGui::SetCursorPosX(ImGui::GetCursorPosX() + distance); - } - - /// Shift the cursor position along the Y axis by the given amount - inline void ShiftCursorY(float distance) - { - ImGui::SetCursorPosY(ImGui::GetCursorPosY() + distance); - } - - /// Shift the cursor position along both axes - inline void ShiftCursor(float x, float y) - { - const ImVec2 cursor = ImGui::GetCursorPos(); - ImGui::SetCursorPos(ImVec2(cursor.x + x, cursor.y + y)); - } - - // ========================================================================= - // DrawButtonImage — draws a texture directly into an already-placed item - // rect, choosing the tint based on the item interaction state. - // ========================================================================= - - /// Draw a button image using separate textures for each interaction state. - /// Call this *after* an invisible button or any other item that occupies the - /// desired rect, then the tint colour is picked automatically. - inline void DrawButtonImage( - const Ref& imageNormal, - const Ref& imageHovered, - const Ref& imagePressed, - ImU32 tintNormal, ImU32 tintHovered, ImU32 tintPressed, - ImVec2 rectMin, ImVec2 rectMax, - ImVec2 uv0 = ImVec2(0.0f, 0.0f), ImVec2 uv1 = ImVec2(1.0f, 1.0f)) - { - // Delegate to ImGuiEx which has the full implementation - ImGuiEx::DrawButtonImage(imageNormal, imageHovered, imagePressed, - tintNormal, tintHovered, tintPressed, rectMin, rectMax, uv0, uv1); - } - - /// Convenience overload — single texture for all states - inline void DrawButtonImage( - const Ref& image, - ImU32 tintNormal, ImU32 tintHovered, ImU32 tintPressed, - ImVec2 rectMin, ImVec2 rectMax, - ImVec2 uv0 = ImVec2(0.0f, 0.0f), ImVec2 uv1 = ImVec2(1.0f, 1.0f)) - { - ImGuiEx::DrawButtonImage(image, tintNormal, tintHovered, tintPressed, - rectMin, rectMax, uv0, uv1); - } - - /// Convenience overload — uses the last item rect for the image bounds - inline void DrawButtonImage( - const Ref& image, - ImU32 tintNormal, ImU32 tintHovered, ImU32 tintPressed, - ImVec2 uv0 = ImVec2(0.0f, 0.0f), ImVec2 uv1 = ImVec2(1.0f, 1.0f)) - { - ImGuiEx::DrawButtonImage(image, tintNormal, tintHovered, tintPressed, uv0, uv1); - } - -} diff --git a/Editor/Source/EditorLayer.cpp b/Editor/Source/EditorLayer.cpp index 59fec54..087b777 100644 --- a/Editor/Source/EditorLayer.cpp +++ b/Editor/Source/EditorLayer.cpp @@ -716,7 +716,7 @@ namespace Lux { ImGui::SetCursorPos(ImVec2(localX, buttonY)); ImGui::InvisibleButton(id, ImVec2(buttonSize, buttonSize)); if (icon) - UI::DrawButtonImage(icon, normalTint, hoverTint, activeTint, ImGui::GetItemRectMin(), ImGui::GetItemRectMax()); + ImGuiEx::DrawButtonImage(icon, normalTint, hoverTint, activeTint, ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), ImVec2(0.0f, 0.0f), ImVec2(1.0f, 1.0f)); if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) onClick(); @@ -771,7 +771,7 @@ namespace Lux { auto gizmoButton = [&](const char* id, Ref icon, int gizmoMode) { ImGui::InvisibleButton(id, buttonSize); - UI::DrawButtonImage(icon, normalTint, hoverTint, activeTint, ImGui::GetItemRectMin(), ImGui::GetItemRectMax()); + ImGuiEx::DrawButtonImage(icon, normalTint, hoverTint, activeTint, ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), ImVec2(0.0f, 0.0f), ImVec2(1.0f, 1.0f)); if (m_GizmoType == gizmoMode) ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), Colors::Theme::accent, 2.0f, 0, 2.0f); @@ -819,7 +819,7 @@ namespace Lux { auto controlButton = [&](const char* id, Ref icon, bool active, const std::function& onClick) { ImGui::InvisibleButton(id, buttonSize); - UI::DrawButtonImage(icon, normalTint, hoverTint, activeTint, ImGui::GetItemRectMin(), ImGui::GetItemRectMax()); + ImGuiEx::DrawButtonImage(icon, normalTint, hoverTint, activeTint, ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), ImVec2(0.0f, 0.0f), ImVec2(1.0f, 1.0f)); if (active) ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), Colors::Theme::accent, 2.0f, 0, 2.0f); if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) @@ -864,7 +864,7 @@ namespace Lux { const ImVec2 buttonSize(24.0f, 24.0f); ImGui::InvisibleButton("##viewport_settings_btn", buttonSize); - UI::DrawButtonImage(EditorResources::GearIcon, IM_COL32(215, 215, 215, 220), IM_COL32(255, 255, 255, 255), IM_COL32(235, 235, 235, 255), ImGui::GetItemRectMin(), ImGui::GetItemRectMax()); + ImGuiEx::DrawButtonImage(EditorResources::GearIcon, IM_COL32(215, 215, 215, 220), IM_COL32(255, 255, 255, 255), IM_COL32(235, 235, 235, 255), ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), ImVec2(0.0f, 0.0f), ImVec2(1.0f, 1.0f)); if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) ImGui::OpenPopup("##viewport_settings_popup"); @@ -965,7 +965,7 @@ namespace Lux { return false; } - Entity EditorLayer::CastMousePick() const + Entity EditorLayer::CastMousePick() { if (!m_ActiveScene) return {}; diff --git a/Editor/Source/EditorLayer.h b/Editor/Source/EditorLayer.h index c4d2c92..7772734 100644 --- a/Editor/Source/EditorLayer.h +++ b/Editor/Source/EditorLayer.h @@ -11,6 +11,7 @@ #include "Lux/Scene/Entity.h" #include "Lux/Scene/Scene.h" #include "Lux/Editor/EditorCamera.h" +#include "Lux/ImGui/ImGuiEx.h" #include "Lux/Renderer/Renderer2D.h" #include "Lux/Renderer/Framebuffer.h" #include "Lux/Renderer/Shader.h" @@ -49,7 +50,7 @@ namespace Lux void UI_GizmosToolbar(); void UI_CentralToolbar(); void UI_ViewportSettings(); - Entity CastMousePick() const; + Entity CastMousePick(); bool RayIntersectsEntity(Entity entity, const glm::vec3& rayOrigin, const glm::vec3& rayDirection, float& outDistance) const; void NewProject(); From ec6b61422c70e3616ebc62f10dd5befe4f47610d Mon Sep 17 00:00:00 2001 From: Pier-Olivier Boulianne Date: Sat, 18 Apr 2026 16:16:28 -0400 Subject: [PATCH 16/18] WIP: new icon for github page --- Editor/Source/EditorLayer.cpp | 2 +- Resources/Branding/LuxEngineLogo.png | Bin 21521 -> 762750 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Editor/Source/EditorLayer.cpp b/Editor/Source/EditorLayer.cpp index f8c8596..6c6858d 100644 --- a/Editor/Source/EditorLayer.cpp +++ b/Editor/Source/EditorLayer.cpp @@ -1,4 +1,4 @@ - #include "EditorLayer.h" +#include "EditorLayer.h" #include "Lux/Scene/SceneSerializer.h" #include "Lux/Core/Application.h" diff --git a/Resources/Branding/LuxEngineLogo.png b/Resources/Branding/LuxEngineLogo.png index 9092f582ae72093eef54381650af7d54af8cc5da..e20b2d9e3fca0ba4fc7b9331821a31b7b0af5228 100644 GIT binary patch literal 762750 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¥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ů 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

IF<<9@659$!2CCi2@b?GR%l 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≫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 QZ1q8&F+H7k%IW(500sDk(*OVf From 44795e53f5c3bde6ca531ed01eaee0d2afe1a612 Mon Sep 17 00:00:00 2001 From: Pier-Olivier Boulianne Date: Mon, 20 Apr 2026 20:35:11 -0400 Subject: [PATCH 17/18] WIP: new console panel --- Core/Source/Lux/Core/Events/SceneEvents.h | 122 +++++ Core/Source/Lux/Core/Log.cpp | 16 +- Core/Source/Lux/Core/Log.h | 136 ++---- .../Lux/Editor/EditorConsole/ConsoleMessage.h | 29 ++ .../Editor/EditorConsole/EditorConsoleSink.h | 89 ++++ Core/Source/Lux/Editor/EditorConsolePanel.cpp | 257 ++++++++++ Core/Source/Lux/Editor/EditorConsolePanel.h | 57 +++ Core/Source/Lux/Scene/Entity.cpp | 6 - Core/Source/Lux/Scene/Entity.h | 5 +- Core/Source/Lux/Scene/Scene.cpp | 2 +- Editor/Source/EditorLayer.cpp | 449 ++++++++++-------- Editor/Source/EditorLayer.h | 14 +- Editor/Source/Panels/ConsolePanel.cpp | 143 ------ Editor/Source/Panels/ConsolePanel.h | 46 -- 14 files changed, 858 insertions(+), 513 deletions(-) create mode 100644 Core/Source/Lux/Core/Events/SceneEvents.h create mode 100644 Core/Source/Lux/Editor/EditorConsole/ConsoleMessage.h create mode 100644 Core/Source/Lux/Editor/EditorConsole/EditorConsoleSink.h create mode 100644 Core/Source/Lux/Editor/EditorConsolePanel.cpp create mode 100644 Core/Source/Lux/Editor/EditorConsolePanel.h delete mode 100644 Editor/Source/Panels/ConsolePanel.cpp delete mode 100644 Editor/Source/Panels/ConsolePanel.h diff --git a/Core/Source/Lux/Core/Events/SceneEvents.h b/Core/Source/Lux/Core/Events/SceneEvents.h new file mode 100644 index 0000000..5bc52d4 --- /dev/null +++ b/Core/Source/Lux/Core/Events/SceneEvents.h @@ -0,0 +1,122 @@ +#pragma once + +#include "Event.h" +#include "Lux/Scene/Scene.h" +#include "Lux/Editor/SelectionManager.h" + +#include + +namespace Lux { + + class SceneEvent : public Event + { + public: + const Ref& GetScene() const { return m_Scene; } + Ref GetScene() { return m_Scene; } + + EVENT_CLASS_CATEGORY(EventCategoryApplication | EventCategoryScene) + protected: + SceneEvent(const Ref& scene) + : m_Scene(scene) { + } + + Ref m_Scene; + }; + + class ScenePreStartEvent : public SceneEvent + { + public: + ScenePreStartEvent(const Ref& scene) + : SceneEvent(scene) { + } + + std::string ToString() const override + { + std::stringstream ss; + ss << "ScenePreStartEvent: " << m_Scene->GetName(); + return ss.str(); + } + + EVENT_CLASS_TYPE(ScenePreStart) + }; + + class ScenePostStartEvent : public SceneEvent + { + public: + ScenePostStartEvent(const Ref& scene) + : SceneEvent(scene) { + } + + std::string ToString() const override + { + std::stringstream ss; + ss << "ScenePostStartEvent: " << m_Scene->GetName(); + return ss.str(); + } + + EVENT_CLASS_TYPE(ScenePostStart) + }; + + class ScenePreStopEvent : public SceneEvent + { + public: + ScenePreStopEvent(const Ref& scene) + : SceneEvent(scene) { + } + + std::string ToString() const override + { + std::stringstream ss; + ss << "ScenePreStopEvent: " << m_Scene->GetName(); + return ss.str(); + } + + EVENT_CLASS_TYPE(ScenePreStop) + }; + + class ScenePostStopEvent : public SceneEvent + { + public: + ScenePostStopEvent(const Ref& scene) + : SceneEvent(scene) { + } + + std::string ToString() const override + { + std::stringstream ss; + ss << "ScenePostStopEvent: " << m_Scene->GetName(); + return ss.str(); + } + + EVENT_CLASS_TYPE(ScenePostStop) + }; + + // TODO(Peter): Probably move this somewhere else... + class SelectionChangedEvent : public Event + { + public: + SelectionChangedEvent(SelectionContext contextID, UUID selectionID, bool selected) + : m_Context(contextID), m_SelectionID(selectionID), m_Selected(selected) + { + } + + SelectionContext GetContextID() const { return m_Context; } + UUID GetSelectionID() const { return m_SelectionID; } + bool IsSelected() const { return m_Selected; } + + std::string ToString() const override + { + std::stringstream ss; + ss << "EntitySelectionChangedEvent: Context(" << (int32_t)m_Context << "), Selection(" << m_SelectionID << "), " << m_Selected; + return ss.str(); + } + + EVENT_CLASS_CATEGORY(EventCategoryScene) + EVENT_CLASS_TYPE(SelectionChanged) + private: + SelectionContext m_Context; + UUID m_SelectionID; + bool m_Selected; + }; + +} diff --git a/Core/Source/Lux/Core/Log.cpp b/Core/Source/Lux/Core/Log.cpp index d522390..5fbfe92 100644 --- a/Core/Source/Lux/Core/Log.cpp +++ b/Core/Source/Lux/Core/Log.cpp @@ -3,7 +3,7 @@ #include "spdlog/sinks/stdout_color_sinks.h" #include "spdlog/sinks/basic_file_sink.h" -//#include "Lux/Editor/EditorConsole/EditorConsoleSink.h" +#include "Lux/Editor/EditorConsole/EditorConsoleSink.h" #include @@ -58,34 +58,34 @@ namespace Lux { std::make_shared() #endif }; - /* + std::vector editorConsoleSinks = { std::make_shared("logs/APP.log", true), #if LUX_HAS_CONSOLE - std::make_shared(1), + //std::make_shared(1), std::make_shared() #endif - };*/ + }; luxSinks[0]->set_pattern("[%T] [%l] %n: %v"); appSinks[0]->set_pattern("[%T] [%l] %n: %v"); -/* + #if LUX_HAS_CONSOLE luxSinks[1]->set_pattern("%^[%T] %n: %v%$"); appSinks[1]->set_pattern("%^[%T] %n: %v%$"); for (auto sink : editorConsoleSinks) sink->set_pattern("%^%v%$"); -#endif*/ +#endif s_CoreLogger = std::make_shared("LUX", luxSinks.begin(), luxSinks.end()); s_CoreLogger->set_level(spdlog::level::trace); s_ClientLogger = std::make_shared("APP", appSinks.begin(), appSinks.end()); s_ClientLogger->set_level(spdlog::level::trace); - /* + s_EditorConsoleLogger = std::make_shared("Console", editorConsoleSinks.begin(), editorConsoleSinks.end()); - s_EditorConsoleLogger->set_level(spdlog::level::trace);*/ + s_EditorConsoleLogger->set_level(spdlog::level::trace); SetDefaultTagSettings(); } diff --git a/Core/Source/Lux/Core/Log.h b/Core/Source/Lux/Core/Log.h index ea633be..6c689e1 100644 --- a/Core/Source/Lux/Core/Log.h +++ b/Core/Source/Lux/Core/Log.h @@ -10,27 +10,17 @@ #include #include #include -#include - -// LUX_DIST may not be defined in Debug/Release builds -#ifndef LUX_DIST - #define LUX_DIST 0 -#endif #define LUX_ASSERT_MESSAGE_BOX (!LUX_DIST && LUX_PLATFORM_WINDOWS && false) #if LUX_ASSERT_MESSAGE_BOX - #ifdef LUX_PLATFORM_WINDOWS - #include - #endif +#ifdef LUX_PLATFORM_WINDOWS +#include +#endif #endif namespace Lux { - // Callback function type for console message logging - // Parameters: level, message - using LogCallback = std::function; - class Log { public: @@ -60,10 +50,6 @@ namespace Lux { static std::map& EnabledTags() { return s_EnabledTags; } static void SetDefaultTagSettings(); - // Console callback registration - static void SetConsoleCallback(LogCallback callback) { s_ConsoleCallback = std::move(callback); } - static void ClearConsoleCallback() { s_ConsoleCallback = nullptr; } - #if defined(LUX_PLATFORM_WINDOWS) template static void PrintMessage(Log::Type type, Log::Level level, std::format_string format, Args&&... args); @@ -88,11 +74,11 @@ namespace Lux { { switch (level) { - case Level::Trace: return "Trace"; - case Level::Info: return "Info"; - case Level::Warn: return "Warn"; - case Level::Error: return "Error"; - case Level::Fatal: return "Fatal"; + case Level::Trace: return "Trace"; + case Level::Info: return "Info"; + case Level::Warn: return "Warn"; + case Level::Error: return "Error"; + case Level::Fatal: return "Fatal"; } return ""; } @@ -108,21 +94,12 @@ namespace Lux { } private: - // Internal helper to invoke the console callback - static void NotifyConsoleCallback(Level level, const std::string& message) - { - if (s_ConsoleCallback) - s_ConsoleCallback(static_cast(level), message); - } - static std::shared_ptr s_CoreLogger; static std::shared_ptr s_ClientLogger; static std::shared_ptr s_EditorConsoleLogger; inline static std::map s_EnabledTags; static std::map s_DefaultTagDetails; - - inline static LogCallback s_ConsoleCallback; }; } @@ -148,13 +125,11 @@ namespace Lux { ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Core Logging -#define LUX_CORE_TRACE(...) ::Lux::Log::PrintMessage(::Lux::Log::Type::Core, ::Lux::Log::Level::Trace, __VA_ARGS__) -#define LUX_CORE_INFO(...) ::Lux::Log::PrintMessage(::Lux::Log::Type::Core, ::Lux::Log::Level::Info, __VA_ARGS__) -#define LUX_CORE_WARN(...) ::Lux::Log::PrintMessage(::Lux::Log::Type::Core, ::Lux::Log::Level::Warn, __VA_ARGS__) -#define LUX_CORE_ERROR(...) ::Lux::Log::PrintMessage(::Lux::Log::Type::Core, ::Lux::Log::Level::Error, __VA_ARGS__) -#define LUX_CORE_FATAL(...) ::Lux::Log::PrintMessage(::Lux::Log::Type::Core, ::Lux::Log::Level::Fatal, __VA_ARGS__) -#define LUX_CORE_CRITICAL(...) ::Lux::Log::PrintMessage(::Lux::Log::Type::Core, ::Lux::Log::Level::Fatal, __VA_ARGS__) - +#define LUX_CORE_TRACE(...) ::Lux::Log::PrintMessage(::Lux::Log::Type::Core, ::Lux::Log::Level::Trace, __VA_ARGS__) +#define LUX_CORE_INFO(...) ::Lux::Log::PrintMessage(::Lux::Log::Type::Core, ::Lux::Log::Level::Info, __VA_ARGS__) +#define LUX_CORE_WARN(...) ::Lux::Log::PrintMessage(::Lux::Log::Type::Core, ::Lux::Log::Level::Warn, __VA_ARGS__) +#define LUX_CORE_ERROR(...) ::Lux::Log::PrintMessage(::Lux::Log::Type::Core, ::Lux::Log::Level::Error, __VA_ARGS__) +#define LUX_CORE_FATAL(...) ::Lux::Log::PrintMessage(::Lux::Log::Type::Core, ::Lux::Log::Level::Fatal, __VA_ARGS__) // Client Logging #define LUX_TRACE(...) ::Lux::Log::PrintMessage(::Lux::Log::Type::Client, ::Lux::Log::Level::Trace, __VA_ARGS__) #define LUX_INFO(...) ::Lux::Log::PrintMessage(::Lux::Log::Type::Client, ::Lux::Log::Level::Info, __VA_ARGS__) @@ -183,29 +158,24 @@ namespace Lux { if (detail.Enabled && detail.LevelFilter <= level) { auto logger = (type == Type::Core) ? GetCoreLogger() : GetClientLogger(); - std::string formatted = std::format(format, std::forward(args)...); - switch (level) { case Level::Trace: - logger->trace("{}", formatted); + logger->trace(format, std::forward(args)...); break; case Level::Info: - logger->info("{}", formatted); + logger->info(format, std::forward(args)...); break; case Level::Warn: - logger->warn("{}", formatted); + logger->warn(format, std::forward(args)...); break; case Level::Error: - logger->error("{}", formatted); + logger->error(format, std::forward(args)...); break; case Level::Fatal: - logger->critical("{}", formatted); + logger->critical(format, std::forward(args)...); break; } - - // Notify the console callback - NotifyConsoleCallback(level, formatted); } } @@ -218,29 +188,24 @@ namespace Lux { { auto logger = (type == Type::Core) ? GetCoreLogger() : GetClientLogger(); std::string formatted = std::format(format, std::forward(args)...); - std::string taggedMessage = std::format("[{}] {}", tag, formatted); - switch (level) { - case Level::Trace: - logger->trace("{}", taggedMessage); - break; - case Level::Info: - logger->info("{}", taggedMessage); - break; - case Level::Warn: - logger->warn("{}", taggedMessage); - break; - case Level::Error: - logger->error("{}", taggedMessage); - break; - case Level::Fatal: - logger->critical("{}", taggedMessage); - break; + case Level::Trace: + logger->trace("[{0}] {1}", tag, formatted); + break; + case Level::Info: + logger->info("[{0}] {1}", tag, formatted); + break; + case Level::Warn: + logger->warn("[{0}] {1}", tag, formatted); + break; + case Level::Error: + logger->error("[{0}] {1}", tag, formatted); + break; + case Level::Fatal: + logger->critical("[{0}] {1}", tag, formatted); + break; } - - // Notify the console callback - NotifyConsoleCallback(level, taggedMessage); } } @@ -251,29 +216,24 @@ namespace Lux { if (detail.Enabled && detail.LevelFilter <= level) { auto logger = (type == Type::Core) ? GetCoreLogger() : GetClientLogger(); - std::string taggedMessage = std::format("[{}] {}", tag, message); - switch (level) { - case Level::Trace: - logger->trace("{}", taggedMessage); - break; - case Level::Info: - logger->info("{}", taggedMessage); - break; - case Level::Warn: - logger->warn("{}", taggedMessage); - break; - case Level::Error: - logger->error("{}", taggedMessage); - break; - case Level::Fatal: - logger->critical("{}", taggedMessage); - break; + case Level::Trace: + logger->trace("[{0}] {1}", tag, message); + break; + case Level::Info: + logger->info("[{0}] {1}", tag, message); + break; + case Level::Warn: + logger->warn("[{0}] {1}", tag, message); + break; + case Level::Error: + logger->error("[{0}] {1}", tag, message); + break; + case Level::Fatal: + logger->critical("[{0}] {1}", tag, message); + break; } - - // Notify the console callback - NotifyConsoleCallback(level, taggedMessage); } } diff --git a/Core/Source/Lux/Editor/EditorConsole/ConsoleMessage.h b/Core/Source/Lux/Editor/EditorConsole/ConsoleMessage.h new file mode 100644 index 0000000..ee416ec --- /dev/null +++ b/Core/Source/Lux/Editor/EditorConsole/ConsoleMessage.h @@ -0,0 +1,29 @@ +#pragma once + +#include "Lux/Core/Base.h" + +#include +#include + +namespace Lux { + + enum class ConsoleMessageFlags : int16_t + { + None = -1, + Info = BIT(0), + Warning = BIT(1), + Error = BIT(2), + + All = Info | Warning | Error + }; + + struct ConsoleMessage + { + std::string ShortMessage; + std::string LongMessage; + int16_t Flags; + + time_t Time; + }; + +} diff --git a/Core/Source/Lux/Editor/EditorConsole/EditorConsoleSink.h b/Core/Source/Lux/Editor/EditorConsole/EditorConsoleSink.h new file mode 100644 index 0000000..ad74453 --- /dev/null +++ b/Core/Source/Lux/Editor/EditorConsole/EditorConsoleSink.h @@ -0,0 +1,89 @@ +#pragma once + +#include "Lux/Editor/EditorConsolePanel.h" + +#include + +#include +#include + +namespace Lux { + + class EditorConsoleSink : public spdlog::sinks::base_sink + { + public: + explicit EditorConsoleSink(uint32_t bufferCapacity) + : m_MessageBufferCapacity(bufferCapacity), m_MessageBuffer(bufferCapacity) { + } + + virtual ~EditorConsoleSink() = default; + + EditorConsoleSink(const EditorConsoleSink& other) = delete; + EditorConsoleSink& operator=(const EditorConsoleSink& other) = delete; + + protected: + void sink_it_(const spdlog::details::log_msg& msg) override + { + spdlog::memory_buf_t formatted; + spdlog::sinks::base_sink::formatter_->format(msg, formatted); + std::string longMessage = formatted; + std::string shortMessage = longMessage; + + if (shortMessage.length() > 100) + { + size_t spacePos = shortMessage.find_first_of(' ', 100); + if (spacePos != std::string::npos) + shortMessage.replace(spacePos, shortMessage.length() - 1, "..."); + } + + m_MessageBuffer[m_MessageCount++] = ConsoleMessage{ shortMessage, longMessage, GetMessageFlags(msg.level), std::chrono::system_clock::to_time_t(msg.time) }; + + if (m_MessageCount == m_MessageBufferCapacity) + flush_(); + } + + void flush_() override + { + for (const auto& message : m_MessageBuffer) + EditorConsolePanel::PushMessage(message); + + m_MessageCount = 0; + } + + private: + static int16_t GetMessageFlags(spdlog::level::level_enum level) + { + int16_t flags = 0; + + switch (level) + { + case spdlog::level::trace: + case spdlog::level::debug: + case spdlog::level::info: + { + flags |= (int16_t)ConsoleMessageFlags::Info; + break; + } + case spdlog::level::warn: + { + flags |= (int16_t)ConsoleMessageFlags::Warning; + break; + } + case spdlog::level::err: + case spdlog::level::critical: + { + flags |= (int16_t)ConsoleMessageFlags::Error; + break; + } + } + + return flags; + } + + private: + uint32_t m_MessageBufferCapacity; + std::vector m_MessageBuffer; + uint32_t m_MessageCount = 0; + }; + +} diff --git a/Core/Source/Lux/Editor/EditorConsolePanel.cpp b/Core/Source/Lux/Editor/EditorConsolePanel.cpp new file mode 100644 index 0000000..1e72841 --- /dev/null +++ b/Core/Source/Lux/Editor/EditorConsolePanel.cpp @@ -0,0 +1,257 @@ +#include "lpch.h" +#include "EditorConsolePanel.h" + +#include "Lux/Core/Application.h" +//#include "Lux/Core/Events/SceneEvents.h" +#include "Lux/Editor/EditorResources.h" +#include "Lux/Editor/FontAwesome.h" +#include "Lux/ImGui/Colors.h" +#include "Lux/ImGui/ImGuiEx.h" + +#include + +#include + +namespace Lux { + + static EditorConsolePanel* s_Instance = nullptr; + + static const ImVec4 s_InfoTint = ImVec4(0.0f, 0.431372549f, 1.0f, 1.0f); + static const ImVec4 s_WarningTint = ImVec4(1.0f, 0.890196078f, 0.0588235294f, 1.0f); + static const ImVec4 s_ErrorTint = ImVec4(1.0f, 0.309803922f, 0.309803922f, 1.0f); + + EditorConsolePanel::EditorConsolePanel() + { + LUX_CORE_ASSERT(s_Instance == nullptr); + s_Instance = this; + + m_MessageBuffer.reserve(500); + } + + EditorConsolePanel::~EditorConsolePanel() + { + s_Instance = nullptr; + } + + void EditorConsolePanel::OnEvent(Event& event) + {/* + EventDispatcher dispatcher(event); + dispatcher.Dispatch([this](ScenePreStartEvent& e) + { + if (m_ClearOnPlay) + { + std::scoped_lock lock(m_MessageBufferMutex); + m_MessageBuffer.clear(); + } + return false; + });*/ + } + + void EditorConsolePanel::OnImGuiRender(bool& isOpen) + { + if (ImGui::Begin(m_PanelName, &isOpen)) + { + ImVec2 consoleSize = ImGui::GetContentRegionAvail(); + consoleSize.y -= 32.0f; + + RenderMenu({ consoleSize.x, 28.0f }); + RenderConsole(consoleSize); + } + ImGui::End(); + } + + void EditorConsolePanel::OnProjectChanged(const Ref& project) + { + std::scoped_lock lock(m_MessageBufferMutex); + m_MessageBuffer.clear(); + } + + void EditorConsolePanel::Focus() + { + ImGui::SetWindowFocus(m_PanelName); + } + + void EditorConsolePanel::SetProgress(const std::string& label, float progress) + { + m_ProgressLabel = label; + m_Progress = progress; + + if (m_Progress >= 1.0f) + ClearProgress(); + } + + void EditorConsolePanel::ClearProgress() + { + m_ProgressLabel = std::string(); + m_Progress = 0.0f; + } + + void EditorConsolePanel::RenderMenu(const ImVec2& size) + { + ImGuiEx::ScopedStyleStack frame(ImGuiStyleVar_FrameBorderSize, 0.0f, ImGuiStyleVar_WindowPadding, ImVec2(0.0f, 0.0f)); + ImGui::BeginChild("Toolbar", size); + + const float ToolbarHeight = 28.0f; + + if (ImGui::Button("Clear", { 75.0f, ToolbarHeight })) + { + std::scoped_lock lock(m_MessageBufferMutex); + m_MessageBuffer.clear(); + } + + ImGui::SameLine(); + + const auto& style = ImGui::GetStyle(); + const std::string clearOnPlayText = std::format("{} Clear on Play", m_ClearOnPlay ? LUX_ICON_CHECK : LUX_ICON_TIMES); + ImVec4 textColor = m_ClearOnPlay ? style.Colors[ImGuiCol_Text] : style.Colors[ImGuiCol_TextDisabled]; + if (ImGuiEx::ColoredButton(clearOnPlayText.c_str(), GetToolbarButtonColor(m_ClearOnPlay), textColor, ImVec2(110.0f, ToolbarHeight))) + m_ClearOnPlay = !m_ClearOnPlay; + + if (!m_ProgressLabel.empty()) + { + ImGui::SameLine(); + std::string progressBarText = std::format("{} ({}%)", m_ProgressLabel, (int)(m_Progress * 100 + 0.01f)); + ImGui::ProgressBar(m_Progress, ImVec2(ImGui::GetContentRegionAvail().x / 2.0f, ToolbarHeight), progressBarText.c_str()); + } + + { + const ImVec2 buttonSize(ToolbarHeight, ToolbarHeight); + + ImGui::SameLine(ImGui::GetContentRegionAvail().x - 100.0f, 0.0f); + textColor = (m_MessageFilters & (int16_t)ConsoleMessageFlags::Info) ? s_InfoTint : style.Colors[ImGuiCol_TextDisabled]; + if (ImGuiEx::ColoredButton(LUX_ICON_INFO_CIRCLE, GetToolbarButtonColor(m_MessageFilters & (int16_t)ConsoleMessageFlags::Info), textColor, buttonSize)) + m_MessageFilters ^= (int16_t)ConsoleMessageFlags::Info; + + ImGui::SameLine(); + textColor = (m_MessageFilters & (int16_t)ConsoleMessageFlags::Warning) ? s_WarningTint : style.Colors[ImGuiCol_TextDisabled]; + if (ImGuiEx::ColoredButton(LUX_ICON_EXCLAMATION_TRIANGLE, GetToolbarButtonColor(m_MessageFilters & (int16_t)ConsoleMessageFlags::Warning), textColor, buttonSize)) + m_MessageFilters ^= (int16_t)ConsoleMessageFlags::Warning; + + ImGui::SameLine(); + textColor = (m_MessageFilters & (int16_t)ConsoleMessageFlags::Error) ? s_ErrorTint : style.Colors[ImGuiCol_TextDisabled]; + if (ImGuiEx::ColoredButton(LUX_ICON_EXCLAMATION_CIRCLE, GetToolbarButtonColor(m_MessageFilters & (int16_t)ConsoleMessageFlags::Error), textColor, buttonSize)) + m_MessageFilters ^= (int16_t)ConsoleMessageFlags::Error; + } + + ImGui::EndChild(); + } + + void EditorConsolePanel::RenderConsole(const ImVec2& size) + { + static const char* s_Columns[] = { "Type", "Timestamp", "Message" }; + + ImGuiEx::Table("Console", s_Columns, 3, size, [&]() + { + std::scoped_lock lock(m_MessageBufferMutex); + + float scrollY = ImGui::GetScrollY(); + if (scrollY < m_PreviousScrollY) + m_EnableScrollToLatest = false; + + if (scrollY >= ImGui::GetScrollMaxY()) + m_EnableScrollToLatest = true; + + m_PreviousScrollY = scrollY; + + float rowHeight = 24.0f; + for (uint32_t i = 0; i < m_MessageBuffer.size(); i++) + { + const auto& msg = m_MessageBuffer[i]; + + if (!(m_MessageFilters & (int16_t)msg.Flags)) + continue; + + ImGui::PushID(&msg); + + const bool clicked = ImGuiEx::TableRowClickable(msg.ShortMessage.c_str(), rowHeight); + + ImGuiEx::Separator(ImVec2(4.0f, ImGui::CalcTextSize(msg.ShortMessage.c_str()).y), GetMessageColor(msg)); + ImGui::SameLine(); + ImGui::Text(GetMessageType(msg)); + ImGui::TableNextColumn(); + ImGuiEx::ShiftCursorX(4.0f); + + std::stringstream timeString; + tm* timeBuffer = localtime(&msg.Time); + timeString << std::put_time(timeBuffer, "%T"); + ImGui::Text(timeString.str().c_str()); + + ImGui::TableNextColumn(); + ImGuiEx::ShiftCursorX(4.0f); + ImGui::Text(msg.ShortMessage.c_str()); + + if (i == m_MessageBuffer.size() - 1 && m_ScrollToLatest) + { + ImGui::ScrollToItem(); + m_ScrollToLatest = false; + } + + if (clicked) + { + ImGui::OpenPopup("Detailed Message"); + auto [width, height] = Application::Get().GetWindow().GetSize(); + auto [xPos, yPos] = Application::Get().GetWindow().GetWindowPos(); + //ImVec2 size = ImGui::GetMainViewport()->Size; + ImGui::SetNextWindowSize({ (float)width * 0.5f, (float)height * 0.5f }); + ImGui::SetNextWindowPos({ xPos + (float)width / 2.0f, yPos + (float)height / 2.5f }, 0, { 0.5, 0.5 }); + m_DetailedPanelOpen = true; + } + + if (m_DetailedPanelOpen) + { + ImGuiEx::ScopedStyle windowPadding(ImGuiStyleVar_WindowPadding, ImVec2(4.0f, 4.0f)); + ImGuiEx::ScopedStyle framePadding(ImGuiStyleVar_FramePadding, ImVec2(4.0f, 8.0f)); + + if (ImGui::BeginPopupModal("Detailed Message", &m_DetailedPanelOpen, ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize)) + { + ImGui::TextWrapped(msg.LongMessage.c_str()); + if (ImGui::Button("Copy To Clipboard", ImVec2(120.0f, 28.0f))) + { + ImGui::SetClipboardText(msg.LongMessage.c_str()); + } + ImGui::EndPopup(); + } + } + + ImGui::PopID(); + } + }); + } + + const char* EditorConsolePanel::GetMessageType(const ConsoleMessage& message) const + { + if (message.Flags & (int16_t)ConsoleMessageFlags::Info) return "Info"; + if (message.Flags & (int16_t)ConsoleMessageFlags::Warning) return "Warning"; + if (message.Flags & (int16_t)ConsoleMessageFlags::Error) return "Error"; + return "Unknown"; + } + + const ImVec4& EditorConsolePanel::GetMessageColor(const ConsoleMessage& message) const + { + //if (message.Flags & (int16_t)ConsoleMessageFlags::Info) return s_InfoButtonOnTint; + if (message.Flags & (int16_t)ConsoleMessageFlags::Warning) return s_WarningTint; + if (message.Flags & (int16_t)ConsoleMessageFlags::Error) return s_ErrorTint; + return s_InfoTint; + } + + ImVec4 EditorConsolePanel::GetToolbarButtonColor(const bool value) const + { + const auto& style = ImGui::GetStyle(); + return value ? style.Colors[ImGuiCol_Header] : style.Colors[ImGuiCol_FrameBg]; + } + + void EditorConsolePanel::PushMessage(const ConsoleMessage& message) + { + if (s_Instance == nullptr) + return; + + { + std::scoped_lock lock(s_Instance->m_MessageBufferMutex); + s_Instance->m_MessageBuffer.push_back(message); + } + + if (s_Instance->m_EnableScrollToLatest) + s_Instance->m_ScrollToLatest = true; + } + +} diff --git a/Core/Source/Lux/Editor/EditorConsolePanel.h b/Core/Source/Lux/Editor/EditorConsolePanel.h new file mode 100644 index 0000000..ddef782 --- /dev/null +++ b/Core/Source/Lux/Editor/EditorConsolePanel.h @@ -0,0 +1,57 @@ +#pragma once + +#include "EditorPanel.h" + +#include "EditorConsole/ConsoleMessage.h" + +#include "Lux/Renderer/Texture.h" + +#include + +namespace Lux { + class EditorConsolePanel : public EditorPanel + { + public: + EditorConsolePanel(); + ~EditorConsolePanel(); + + virtual void OnEvent(Event& e) override; + virtual void OnImGuiRender(bool& isOpen) override; + virtual void OnProjectChanged(const Ref& project) override; + + void Focus(); + + void SetProgress(const std::string& label, float progress); + void ClearProgress(); + private: + void RenderMenu(const ImVec2& size); + void RenderConsole(const ImVec2& size); + const char* GetMessageType(const ConsoleMessage& message) const; + const ImVec4& GetMessageColor(const ConsoleMessage& message) const; + ImVec4 GetToolbarButtonColor(const bool value) const; + + private: + static void PushMessage(const ConsoleMessage& message); + + private: + const char* m_PanelName = "Log"; + bool m_ClearOnPlay = true; + + std::mutex m_MessageBufferMutex; + std::vector m_MessageBuffer; + + bool m_EnableScrollToLatest = true; + bool m_ScrollToLatest = false; + float m_PreviousScrollY = 0.0f; + + int16_t m_MessageFilters = (int16_t)ConsoleMessageFlags::All; + + bool m_DetailedPanelOpen = false; + + std::string m_ProgressLabel; + float m_Progress = 0.0f; + private: + friend class EditorConsoleSink; + }; + +} diff --git a/Core/Source/Lux/Scene/Entity.cpp b/Core/Source/Lux/Scene/Entity.cpp index 1018439..c942ada 100644 --- a/Core/Source/Lux/Scene/Entity.cpp +++ b/Core/Source/Lux/Scene/Entity.cpp @@ -6,12 +6,6 @@ namespace Lux { - Entity::Entity(entt::entity handle, Scene* scene) - : m_EntityHandle(handle), m_Scene(scene) - { - - } - Entity Entity::GetParent() const { if (!m_Scene || !m_Scene->m_Registry.template has(m_EntityHandle)) diff --git a/Core/Source/Lux/Scene/Entity.h b/Core/Source/Lux/Scene/Entity.h index 40454ee..e5f3ad6 100644 --- a/Core/Source/Lux/Scene/Entity.h +++ b/Core/Source/Lux/Scene/Entity.h @@ -12,8 +12,9 @@ namespace Lux { public: Entity() = default; - Entity(entt::entity handle, Scene* scene); - Entity(const Entity& other) = default; + Entity(entt::entity handle, Scene* scene) + : m_EntityHandle(handle), m_Scene(scene) { + } template T& AddComponent(Args&&... args) diff --git a/Core/Source/Lux/Scene/Scene.cpp b/Core/Source/Lux/Scene/Scene.cpp index 19d1363..e6f0b12 100644 --- a/Core/Source/Lux/Scene/Scene.cpp +++ b/Core/Source/Lux/Scene/Scene.cpp @@ -530,8 +530,8 @@ namespace Lux { for (auto entity : view) { auto& camera = view.get(entity); - if (camera.Primary) + { mainCamera = &camera.Camera; cameraTransform = GetWorldSpaceTransformMatrix(Entity{ entity, this }); diff --git a/Editor/Source/EditorLayer.cpp b/Editor/Source/EditorLayer.cpp index 6c6858d..ca8e472 100644 --- a/Editor/Source/EditorLayer.cpp +++ b/Editor/Source/EditorLayer.cpp @@ -11,13 +11,11 @@ #include "Lux/Asset/AssetManager.h" #include "Lux/Asset/TextureImporter.h" #include "Lux/Asset/SceneImporter.h" -#include "Lux/Scene/Prefab.h" #include "Lux/Core/Math/Ray.h" #include "Lux/Renderer/Mesh.h" #include #include -#include #include #include "imgui/imgui_internal.h" @@ -160,12 +158,10 @@ namespace Lux { m_SceneHierarchyPanel = m_PanelManager->AddPanel(PanelCategory::View, SCENE_HIERARCHY_PANEL_ID, "Scene Hierarchy", true); m_PanelManager->AddPanel(PanelCategory::View, CONTENT_BROWSER_PANEL_ID, "Content Browser", true); m_PanelManager->AddPanel(PanelCategory::View, "TextEditorPanel", "Text Editor", true); + m_ConsolePanel = m_PanelManager->AddPanel(PanelCategory::View, CONSOLE_PANEL_ID, "Log", true); m_SceneRendererPanel = m_PanelManager->AddPanel(PanelCategory::View, SCENE_RENDERER_PANEL_ID, "Scene Renderer", true); - // Console panel for log messages - m_PanelManager->AddPanel(PanelCategory::View, CONSOLE_PANEL_ID, "Console", true); - // Render statistics panel Ref renderStatsPanel = m_PanelManager->AddPanel(PanelCategory::View, "RenderStatsPanel", "Render Stats", true); renderStatsPanel->SetRenderer2D(m_Renderer2D); @@ -187,6 +183,11 @@ namespace Lux { m_Renderer2D->SetLineWidth(4.0f); FramebufferSpecification fbSpec; + // Attachment 0: RGBA colour output shown in viewport + // Attachment 1: Depth + // NOTE: Entity ID picking (RED_INTEGER attachment + ReadPixel) is not yet + // supported by Framebuffer in this engine. m_HoveredEntity is cleared every + // frame until that infrastructure is added. fbSpec.Attachments = { ImageFormat::RGBA32F, ImageFormat::Depth }; fbSpec.Width = 1280; fbSpec.Height = 720; @@ -194,6 +195,7 @@ namespace Lux { fbSpec.DebugName = "EditorFramebuffer"; m_Framebuffer = Framebuffer::Create(fbSpec); + // Now safe to call - m_Renderer2D is valid. m_Renderer2D->SetTargetFramebuffer(m_Framebuffer); EnsureSceneRenderer(m_ActiveScene, m_ViewportSize); @@ -278,6 +280,7 @@ namespace Lux { m_Renderer2D->ResetStats(); + // Create selection predicate for 3D rendering (highlights selected entity) Entity selectedEntity = {}; if (m_SceneHierarchyPanel) selectedEntity = m_SceneHierarchyPanel->GetSelectedEntity(); @@ -291,9 +294,11 @@ namespace Lux { { m_EditorCamera.OnUpdate(ts); + // Render 3D content first (static meshes, lights, skybox) if (m_SceneRenderer && m_SceneRenderer->IsReady()) m_ActiveScene->Render3D(m_EditorCamera, m_SceneRenderer, isEntitySelected); + // Then render 2D content (sprites, circles, text) - this blends on top m_ActiveScene->OnUpdateEditor(ts, m_EditorCamera); break; } @@ -301,17 +306,21 @@ namespace Lux { { m_EditorCamera.OnUpdate(ts); + // Render 3D content if (m_SceneRenderer && m_SceneRenderer->IsReady()) m_ActiveScene->Render3D(m_EditorCamera, m_SceneRenderer, isEntitySelected); + // Then render 2D content and update physics simulation m_ActiveScene->OnUpdateSimulation(ts, m_EditorCamera); break; } case SceneState::Play: { + // Render 3D content using the runtime camera if (m_SceneRenderer && m_SceneRenderer->IsReady()) m_ActiveScene->Render3DRuntime(m_SceneRenderer); + // Then run the full runtime update (scripts, physics, 2D rendering) m_ActiveScene->OnUpdateRuntime(ts); break; } @@ -320,84 +329,13 @@ namespace Lux { OnOverlayRender(); } - void EditorLayer::UI_DrawMenubar() - { - if (ImGui::BeginMenuBar()) - { - if (ImGui::BeginMenu("File")) - { - if (ImGui::MenuItem("Open Project...", "Ctrl+O")) OpenProject(); - ImGui::Separator(); - if (ImGui::MenuItem("New Scene", "Ctrl+N")) NewScene(); - if (ImGui::MenuItem("Save Scene", "Ctrl+S")) SaveScene(); - if (ImGui::MenuItem("Save Scene As...", "Ctrl+Shift+S")) SaveSceneAs(); - ImGui::Separator(); - if (ImGui::MenuItem("Exit")) Application::Get().Close(); - ImGui::EndMenu(); - } - - if (ImGui::BeginMenu("Script")) - { - if (ImGui::MenuItem("Reload assembly", "Ctrl+R")) ScriptEngine::ReloadAssembly(); - ImGui::EndMenu(); - } - - // Add a custom drag zone to the remaining space of the MenuBar so we can drag the window! - float availWidth = ImGui::GetContentRegionAvail().x; - if (availWidth > 100.0f) - { - ImGui::InvisibleButton("##titleBarDragZone", ImVec2(availWidth - 100.0f, ImGui::GetFrameHeight())); - m_TitleBarHovered = ImGui::IsItemHovered(); - - if (ImGui::IsItemActive() && ImGui::IsMouseDragging(ImGuiMouseButton_Left)) - { - auto* window = static_cast(Application::Get().GetWindow().GetNativeWindow()); - ImVec2 point = ImGui::GetMousePos(); - - // Simple window dragging logic - int x, y; - glfwGetWindowPos(window, &x, &y); - glfwSetWindowPos(window, x + (int)ImGui::GetIO().MouseDelta.x, y + (int)ImGui::GetIO().MouseDelta.y); - } - - if (ImGui::IsMouseDoubleClicked(ImGuiMouseButton_Left) && m_TitleBarHovered) - { - auto* window = static_cast(Application::Get().GetWindow().GetNativeWindow()); - bool maximized = (bool)glfwGetWindowAttrib(window, GLFW_MAXIMIZED); - if (maximized) glfwRestoreWindow(window); - else glfwMaximizeWindow(window); - } - } - - ImGui::EndMenuBar(); - } - } - - float EditorLayer::UI_DrawTitlebar() - { - // Since we integrated the drag zone into the MenuBar above, we don't need to draw - // a massive rectangle that covers everything. We just return 0 to prevent offsetting. - return 0.0f; - } - - void EditorLayer::UI_HandleManualWindowResize() - { - auto* window = static_cast(Application::Get().GetWindow().GetNativeWindow()); - const bool maximized = (bool)glfwGetWindowAttrib(window, GLFW_MAXIMIZED); - - // A helper to let ImGui drag the right/bottom borders if the OS border is stripped - // Ensure UI::UpdateWindowManualResize logic exists in ImGuiUtilities.h, else comment out. - } - - bool EditorLayer::UI_TitleBarHitTest(int x, int y) const - { - return m_TitleBarHovered; - } - void EditorLayer::OnImGuiRender() { LUX_PROFILE_FUNCTION("EditorLayer::OnImGuiRender"); + // Must be called once per frame before any other ImGuizmo function. + // Without this, IsOver() / IsUsing() return stale state and Manipulate() + // produces garbage transforms. ImGuizmo::BeginFrame(); static bool dockspaceOpen = true; @@ -405,12 +343,10 @@ namespace Lux { bool opt_fullscreen = opt_fullscreen_persistent; static ImGuiDockNodeFlags dockspace_flags = ImGuiDockNodeFlags_None; - GLFWwindow* nativeWindow = Application::Get().GetWindow().GetNativeWindow(); + GLFWwindow* nativeWindow = Application::Get().GetWindow().GetNativeWindow(); const bool isWindowMaximized = nativeWindow && glfwGetWindowAttrib(nativeWindow, GLFW_MAXIMIZED); - ImGuiWindowFlags window_flags = ImGuiWindowFlags_MenuBar | ImGuiWindowFlags_NoDocking; - // FIX: Added ImGuiWindowFlags_MenuBar back to the window flags! - + ImGuiWindowFlags window_flags = ImGuiWindowFlags_NoDocking; if (opt_fullscreen) { ImGuiViewport* viewport = ImGui::GetMainViewport(); @@ -418,7 +354,7 @@ namespace Lux { ImGui::SetNextWindowSize(viewport->Size); ImGui::SetNextWindowViewport(viewport->ID); ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f); - ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f); + ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, isWindowMaximized ? 0.0f : 3.0f); window_flags |= ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove; window_flags |= ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoNavFocus; @@ -436,13 +372,19 @@ namespace Lux { if (dockspaceVisible) { - // Render the MenuBar (which now contains our custom drag zone) - UI_DrawMenubar(); - ImGuiIO& io = ImGui::GetIO(); ImGuiStyle& style = ImGui::GetStyle(); const float minWinSizeX = style.WindowMinSize.x; style.WindowMinSize.x = 370.0f; + + UI_DrawTitlebar(); + if (!isWindowMaximized) + { + ImGuiEx::ScopedColour borderColour(ImGuiCol_Border, IM_COL32(50, 50, 50, 255)); + ImGuiEx::RenderWindowOuterBorders(ImGui::GetCurrentWindow()); + } + + ImGui::SetCursorPosY(m_TitlebarHeight); if (io.ConfigFlags & ImGuiConfigFlags_DockingEnable) { const ImGuiID dockspace_id = ImGui::GetID("MyDockSpace"); @@ -452,28 +394,68 @@ namespace Lux { m_PanelManager->OnImGuiRender(); + if (m_ShowImGuiMetrics) + ImGui::ShowMetricsWindow(&m_ShowImGuiMetrics); + if (m_ShowImGuiStyleEditor) + ImGui::ShowStyleEditor(); + if (m_ShowAboutPopup) + ImGui::OpenPopup("About LuxEngine"); + + if (ImGui::BeginPopupModal("About LuxEngine", &m_ShowAboutPopup, ImGuiWindowFlags_AlwaysAutoResize)) + { + ImGui::Text("LuxEngine Editor"); + ImGui::Separator(); + ImGui::Text("Version: %s", Application::GetConfigurationName()); + ImGui::Text("Platform: %s", Application::GetPlatformName()); + ImGui::TextWrapped("Credits: Inspired by Hazel architecture and editor workflows."); + + if (ImGui::Button("Close")) + { + m_ShowAboutPopup = false; + ImGui::CloseCurrentPopup(); + } + + ImGui::EndPopup(); + } + // Stats panel ImGui::Begin("Stats"); + +#if 0 + std::string name = "None"; + if (m_HoveredEntity) + name = m_HoveredEntity.GetComponent().Tag; + ImGui::Text("Hovered Entity: %s", name.c_str()); +#endif + auto stats = m_Renderer2D->GetDrawStats(); ImGui::Text("Renderer2D Stats:"); ImGui::Text("Draw Calls: %d", stats.DrawCalls); ImGui::Text("Quads: %d", stats.QuadCount); ImGui::Text("Vertices: %d", stats.GetTotalVertexCount()); ImGui::Text("Indices: %d", stats.GetTotalIndexCount()); + ImGui::Separator(); + ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - if (ImGui::Checkbox("VSync", &m_VSync)) Application::Get().GetWindow().SetVSync(m_VSync); + + if (ImGui::Checkbox("VSync", &m_VSync)) + Application::Get().GetWindow().SetVSync(m_VSync); + if (ImGui::Checkbox("Show Physics Colliders", &m_ShowPhysicsColliders)) { - if (s_SceneRendererState.Renderer) s_SceneRendererState.Renderer->GetOptions().ShowPhysicsColliders = m_ShowPhysicsColliders; + if (s_SceneRendererState.Renderer) + s_SceneRendererState.Renderer->GetOptions().ShowPhysicsColliders = m_ShowPhysicsColliders; } + ImGui::Separator(); ImGui::Checkbox("Show Font Atlas", &s_ShowFontAtlasInStats); if (s_ShowFontAtlasInStats) ImGui::Image(GetImGuiTextureID(s_Font->GetFontAtlas()), { 512, 512 }, { 0, 1 }, { 1, 0 }); - ImGui::End(); - // --- Viewport Panel --- + ImGui::End(); // Stats + + // Viewport panel ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2{ 0, 0 }); ImGui::Begin("Viewport"); @@ -487,6 +469,9 @@ namespace Lux { m_ViewportHovered = ImGui::IsWindowHovered(); Application::Get().GetImGuiLayer()->AllowInputEvents(m_ViewportFocused || m_ViewportHovered); + // Guard against zero-size during panel drag/dock transitions; a zero + // size would propagate to Framebuffer::Resize(0,0) next frame and + // destroy all attachment images while they are still in use. ImVec2 viewportPanelSize = ImGui::GetContentRegionAvail(); if (viewportPanelSize.x > 1.0f && viewportPanelSize.y > 1.0f) m_ViewportSize = { viewportPanelSize.x, viewportPanelSize.y }; @@ -499,22 +484,11 @@ namespace Lux { if (const ImGuiPayload* payload = ImGui::AcceptDragDropPayload("CONTENT_BROWSER_ITEM")) { AssetHandle handle = *(AssetHandle*)payload->Data; - const AssetType type = AssetManager::GetAssetType(handle); - if (type == AssetType::Scene) OpenScene(handle); - else if (type == AssetType::Prefab && m_SceneState == SceneState::Edit) - { - Ref prefab = AssetManager::GetAsset(handle); - if (prefab) - { - Entity instantiated = m_EditorScene->InstantiatePrefab(prefab); - if (m_SceneHierarchyPanel) m_SceneHierarchyPanel->SetSelectedEntity(instantiated); - } - } + OpenScene(handle); } ImGui::EndDragDropTarget(); } - // --- Gizmos --- if (m_ViewportHovered) m_HoveredEntity = CastMousePick(); else @@ -522,8 +496,9 @@ namespace Lux { // Gizmos Entity selectedEntity = {}; - if (m_SceneHierarchyPanel) selectedEntity = m_SceneHierarchyPanel->GetSelectedEntity(); - if (selectedEntity && m_GizmoType != -1 && m_SceneState == SceneState::Edit) + if (m_SceneHierarchyPanel) + selectedEntity = m_SceneHierarchyPanel->GetSelectedEntity(); + if (selectedEntity && m_GizmoType != -1) { ImGuizmo::SetOrthographic(false); ImGuizmo::SetDrawlist(); @@ -531,6 +506,8 @@ namespace Lux { m_ViewportBounds[1].x - m_ViewportBounds[0].x, m_ViewportBounds[1].y - m_ViewportBounds[0].y); + // FIX: Use GetProjectionMatrix() (projection only), not + // GetViewProjection() (combined VP). ImGuizmo needs them separate. const glm::mat4& cameraProjection = m_EditorCamera.GetProjectionMatrix(); glm::mat4 cameraView = m_EditorCamera.GetViewMatrix(); @@ -542,16 +519,27 @@ namespace Lux { float snapValue = (m_GizmoType == ImGuizmo::OPERATION::ROTATE) ? m_RotationSnapValue : m_TranslationSnapValue; float snapValues[3] = { snapValue, snapValue, snapValue }; + // FIX: Actually call Manipulate() - it was completely missing, + // so gizmos were never drawn or interactable at all. ImGuizmo::Manipulate( - glm::value_ptr(cameraView), glm::value_ptr(cameraProjection), - (ImGuizmo::OPERATION)m_GizmoType, ImGuizmo::LOCAL, glm::value_ptr(transform), - nullptr, snap ? snapValues : nullptr); - + glm::value_ptr(cameraView), + glm::value_ptr(cameraProjection), + (ImGuizmo::OPERATION)m_GizmoType, + ImGuizmo::LOCAL, + glm::value_ptr(transform), + nullptr, + snap ? snapValues : nullptr); + + // FIX: DecomposeTransform signature is (mat4, vec3&, quat&, vec3&). + // Decompose into a quaternion then convert to euler angles for storage. if (ImGuizmo::IsUsing()) { glm::vec3 translation, scale; glm::quat rotationQuat; Math::DecomposeTransform(transform, translation, rotationQuat, scale); + + // Convert quat to euler and apply as a delta to avoid gimbal lock + // accumulation that would occur from direct euler assignment. glm::vec3 rotationEuler = glm::eulerAngles(rotationQuat); glm::vec3 deltaRotation = rotationEuler - tc.Rotation; tc.Translation = translation; @@ -571,35 +559,80 @@ namespace Lux { ImGui::End(); // Lux Editor } - void EditorLayer::UI_GizmosToolbar() + void EditorLayer::UI_DrawMenubar() { - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 2)); - ImGui::PushStyleVar(ImGuiStyleVar_ItemInnerSpacing, ImVec2(0, 0)); - ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f); - ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0, 0, 0, 0)); + ImGuiEx::ScopedColourStack menuColors( + ImGuiCol_Header, ImGui::ColorConvertU32ToFloat4(Colors::Theme::accent), + ImGuiCol_HeaderHovered, ImGui::ColorConvertU32ToFloat4(Colors::Theme::accent), + ImGuiCol_HeaderActive, ImGui::ColorConvertU32ToFloat4(Colors::Theme::accent), + ImGuiCol_Text, ImGui::ColorConvertU32ToFloat4(Colors::Theme::text)); + + const float menuMinX = 76.0f; + const float menuMaxX = std::max(menuMinX + 1.0f, ImGui::GetWindowWidth() - 350.0f); + const ImRect menuBarRect(ImVec2(menuMinX, 0.0f), ImVec2(menuMaxX, m_TitlebarHeight)); + if (!ImGuiEx::BeginMenuBar(menuBarRect)) + return; - const float edgeOffset = 4.0f; - const float windowHeight = 32.0f; + if (ImGui::BeginMenu("File")) + { + if (ImGui::MenuItem("Create Project")) + NewProject(); + if (ImGui::MenuItem("Open Project...", "Ctrl+O")) + OpenProject(); - ImGui::SetNextWindowPos(ImVec2(m_ViewportBounds[0].x + 14, m_ViewportBounds[0].y + edgeOffset)); - ImGui::SetNextWindowSize(ImVec2(100.0f, windowHeight)); - ImGui::SetNextWindowBgAlpha(0.0f); - ImGui::Begin("##viewport_tools", 0, ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoDocking); + if (ImGui::BeginMenu("Recent Projects")) + { + ImGui::MenuItem("No recent projects", nullptr, false, false); + ImGui::EndMenu(); + } - if (ImGui::Button("S")) m_GizmoType = -1; - ImGui::SameLine(); - if (ImGui::Button("T")) m_GizmoType = ImGuizmo::OPERATION::TRANSLATE; - ImGui::SameLine(); - if (ImGui::Button("R")) m_GizmoType = ImGuizmo::OPERATION::ROTATE; - ImGui::SameLine(); - if (ImGui::Button("E")) m_GizmoType = ImGuizmo::OPERATION::SCALE; + ImGui::Separator(); + if (ImGui::MenuItem("Save Scene", "Ctrl+S")) + SaveScene(); + if (ImGui::MenuItem("Save Scene As...", "Ctrl+Shift+S")) + SaveSceneAs(); - ImGui::End(); - ImGui::PopStyleColor(); - ImGui::PopStyleVar(3); + ImGui::Separator(); + if (ImGui::MenuItem("Exit")) + Application::Get().DispatchEvent(); + + ImGui::EndMenu(); + } + + if (ImGui::BeginMenu("Edit")) + { + if (ImGui::MenuItem("Reload C# Assembly", "Ctrl+R")) + ScriptEngine::ReloadAssembly(); + ImGui::MenuItem("Second Viewport", nullptr, &m_SecondViewportEnabled); + ImGui::EndMenu(); + } + + if (ImGui::BeginMenu("View")) + { + auto& viewPanels = m_PanelManager->GetPanels(PanelCategory::View); + for (auto& [id, panelData] : viewPanels) + ImGui::MenuItem(panelData.Name, nullptr, &panelData.IsOpen); + ImGui::EndMenu(); + } + + if (ImGui::BeginMenu("Tools")) + { + ImGui::MenuItem("ImGui Metrics", nullptr, &m_ShowImGuiMetrics); + ImGui::MenuItem("ImGui Style Editor", nullptr, &m_ShowImGuiStyleEditor); + ImGui::EndMenu(); + } + + if (ImGui::BeginMenu("Help")) + { + if (ImGui::MenuItem("About")) + m_ShowAboutPopup = true; + ImGui::EndMenu(); + } + + ImGuiEx::EndMenuBar(); } - void EditorLayer::UI_CentralToolbar() + void EditorLayer::UI_DrawTitlebar() { ImGuiWindow* window = ImGui::GetCurrentWindow(); ImDrawList* drawList = ImGui::GetWindowDrawList(); @@ -677,40 +710,40 @@ namespace Lux { const ImU32 activeTint = IM_COL32(200, 200, 200, 255); auto drawWindowControlButton = [&](const char* id, const Ref& icon, float localX, auto&& onClick) - { - ImGui::SetCursorPos(ImVec2(localX, buttonY)); - ImGui::InvisibleButton(id, ImVec2(buttonSize, buttonSize)); - if (icon) - ImGuiEx::DrawButtonImage(icon, normalTint, hoverTint, activeTint, ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), ImVec2(0.0f, 0.0f), ImVec2(1.0f, 1.0f)); + { + ImGui::SetCursorPos(ImVec2(localX, buttonY)); + ImGui::InvisibleButton(id, ImVec2(buttonSize, buttonSize)); + if (icon) + ImGuiEx::DrawButtonImage(icon, normalTint, hoverTint, activeTint, ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), ImVec2(0.0f, 0.0f), ImVec2(1.0f, 1.0f)); - if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) - onClick(); - }; + if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) + onClick(); + }; drawWindowControlButton("##minimizeWindow", EditorResources::MinimizeIcon, buttonsStartX + 4.0f, [nativeWindow]() - { - if (!nativeWindow) - return; - Application::Get().QueueEvent([nativeWindow]() { glfwIconifyWindow(nativeWindow); }); - }); + { + if (!nativeWindow) + return; + Application::Get().QueueEvent([nativeWindow]() { glfwIconifyWindow(nativeWindow); }); + }); drawWindowControlButton("##maximizeRestoreWindow", isMaximized ? EditorResources::RestoreIcon : EditorResources::MaximizeIcon, buttonsStartX + 42.0f, [nativeWindow, isMaximized]() - { - if (!nativeWindow) - return; - Application::Get().QueueEvent([nativeWindow, isMaximized]() { - if (isMaximized) - glfwRestoreWindow(nativeWindow); - else - glfwMaximizeWindow(nativeWindow); + if (!nativeWindow) + return; + Application::Get().QueueEvent([nativeWindow, isMaximized]() + { + if (isMaximized) + glfwRestoreWindow(nativeWindow); + else + glfwMaximizeWindow(nativeWindow); + }); }); - }); drawWindowControlButton("##closeWindow", EditorResources::CloseIcon, buttonsStartX + 80.0f, []() - { - Application::Get().DispatchEvent(); - }); + { + Application::Get().DispatchEvent(); + }); } void EditorLayer::UI_GizmosToolbar() @@ -734,16 +767,16 @@ namespace Lux { const ImVec2 buttonSize(24.0f, 24.0f); auto gizmoButton = [&](const char* id, Ref icon, int gizmoMode) - { - ImGui::InvisibleButton(id, buttonSize); - ImGuiEx::DrawButtonImage(icon, normalTint, hoverTint, activeTint, ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), ImVec2(0.0f, 0.0f), ImVec2(1.0f, 1.0f)); + { + ImGui::InvisibleButton(id, buttonSize); + ImGuiEx::DrawButtonImage(icon, normalTint, hoverTint, activeTint, ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), ImVec2(0.0f, 0.0f), ImVec2(1.0f, 1.0f)); - if (m_GizmoType == gizmoMode) - ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), Colors::Theme::accent, 2.0f, 0, 2.0f); + if (m_GizmoType == gizmoMode) + ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), Colors::Theme::accent, 2.0f, 0, 2.0f); - if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) - m_GizmoType = gizmoMode; - }; + if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) + m_GizmoType = gizmoMode; + }; gizmoButton("##gizmo_select", EditorResources::PointerIcon, -1); ImGui::SameLine(); @@ -782,32 +815,32 @@ namespace Lux { const ImVec2 buttonSize(24.0f, 24.0f); auto controlButton = [&](const char* id, Ref icon, bool active, const std::function& onClick) - { - ImGui::InvisibleButton(id, buttonSize); - ImGuiEx::DrawButtonImage(icon, normalTint, hoverTint, activeTint, ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), ImVec2(0.0f, 0.0f), ImVec2(1.0f, 1.0f)); - if (active) - ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), Colors::Theme::accent, 2.0f, 0, 2.0f); - if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) - onClick(); - }; + { + ImGui::InvisibleButton(id, buttonSize); + ImGuiEx::DrawButtonImage(icon, normalTint, hoverTint, activeTint, ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), ImVec2(0.0f, 0.0f), ImVec2(1.0f, 1.0f)); + if (active) + ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), Colors::Theme::accent, 2.0f, 0, 2.0f); + if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) + onClick(); + }; controlButton("##scene_play", EditorResources::PlayIcon, m_SceneState == SceneState::Play, [this]() - { - if (m_SceneState != SceneState::Play) - OnScenePlay(); - }); + { + if (m_SceneState != SceneState::Play) + OnScenePlay(); + }); ImGui::SameLine(); controlButton("##scene_simulate", EditorResources::SimulateIcon, m_SceneState == SceneState::Simulate, [this]() - { - if (m_SceneState != SceneState::Simulate) - OnSceneSimulate(); - }); + { + if (m_SceneState != SceneState::Simulate) + OnSceneSimulate(); + }); ImGui::SameLine(); controlButton("##scene_stop", EditorResources::StopIcon, m_SceneState == SceneState::Edit, [this]() - { - if (m_SceneState != SceneState::Edit) - OnSceneStop(); - }); + { + if (m_SceneState != SceneState::Edit) + OnSceneStop(); + }); ImGui::End(); ImGui::PopStyleVar(2); @@ -995,22 +1028,22 @@ namespace Lux { bool hit = false; auto testAABB = [&](const AABB& localAABB, const glm::mat4& localTransform = glm::mat4(1.0f)) - { - const glm::mat4 inverseTransform = glm::inverse(worldTransform * localTransform); - const glm::vec3 localOrigin = glm::vec3(inverseTransform * glm::vec4(rayOrigin, 1.0f)); - const glm::vec3 localDirectionVector = glm::vec3(inverseTransform * glm::vec4(rayDirection, 0.0f)); - if (glm::dot(localDirectionVector, localDirectionVector) <= std::numeric_limits::epsilon()) - return; - const glm::vec3 localDirection = glm::normalize(localDirectionVector); - - Ray localRay(localOrigin, localDirection); - float t = 0.0f; - if (localRay.IntersectsAABB(localAABB, t) && t >= 0.0f && t < outDistance) { - outDistance = t; - hit = true; - } - }; + const glm::mat4 inverseTransform = glm::inverse(worldTransform * localTransform); + const glm::vec3 localOrigin = glm::vec3(inverseTransform * glm::vec4(rayOrigin, 1.0f)); + const glm::vec3 localDirectionVector = glm::vec3(inverseTransform * glm::vec4(rayDirection, 0.0f)); + if (glm::dot(localDirectionVector, localDirectionVector) <= std::numeric_limits::epsilon()) + return; + const glm::vec3 localDirection = glm::normalize(localDirectionVector); + + Ray localRay(localOrigin, localDirection); + float t = 0.0f; + if (localRay.IntersectsAABB(localAABB, t) && t >= 0.0f && t < outDistance) + { + outDistance = t; + hit = true; + } + }; if (entity.HasComponent()) { @@ -1193,16 +1226,16 @@ namespace Lux { if (m_ShowEntityIcons) { auto drawIconForView = [this](auto view, const Ref& iconTexture) - { - if (!iconTexture) - return; - - for (auto entityID : view) { - auto& transform = view.template get(entityID); - m_Renderer2D->DrawQuadBillboard(transform.Translation, glm::vec2(0.35f), iconTexture, 1.0f, glm::vec4(1.0f)); - } - }; + if (!iconTexture) + return; + + for (auto entityID : view) + { + auto& transform = view.template get(entityID); + m_Renderer2D->DrawQuadBillboard(transform.Translation, glm::vec2(0.35f), iconTexture, 1.0f, glm::vec4(1.0f)); + } + }; drawIconForView(m_ActiveScene->GetAllEntitiesWith(), EditorResources::CameraIcon); drawIconForView(m_ActiveScene->GetAllEntitiesWith(), EditorResources::AudioIcon); diff --git a/Editor/Source/EditorLayer.h b/Editor/Source/EditorLayer.h index 28289f2..049af23 100644 --- a/Editor/Source/EditorLayer.h +++ b/Editor/Source/EditorLayer.h @@ -2,15 +2,14 @@ #include "Lux.h" -#include "Panels/ConsolePanel.h" #include "Panels/RenderStatsPanel.h" #include "Panels/MaterialEditorPanel.h" #include "Panels/LightSettingsPanel.h" +#include "Lux/Editor/EditorConsolePanel.h" #include "Lux/Asset/Asset.h" #include "Lux/Scene/Entity.h" #include "Lux/Scene/Scene.h" -#include "Lux/ImGui/Colors.h" #include "Lux/Editor/EditorCamera.h" #include "Lux/ImGui/ImGuiEx.h" #include "Lux/Renderer/Renderer2D.h" @@ -74,16 +73,8 @@ namespace Lux void OnDuplicateEntity(); - void OnOverlayRender(); - // UI Panels - float UI_DrawTitlebar(); - void UI_DrawMenubar(); - void UI_HandleManualWindowResize(); - bool UI_TitleBarHitTest(int x, int y) const; - - void UI_GizmosToolbar(); - void UI_CentralToolbar(); + void UI_Toolbar(); private: EditorCamera m_EditorCamera; @@ -97,6 +88,7 @@ namespace Lux Ref m_SceneRenderer; Ref m_SceneHierarchyPanel; Ref m_SceneRendererPanel; + Ref m_ConsolePanel; // Temp Ref m_SquareVA; diff --git a/Editor/Source/Panels/ConsolePanel.cpp b/Editor/Source/Panels/ConsolePanel.cpp deleted file mode 100644 index a598ea7..0000000 --- a/Editor/Source/Panels/ConsolePanel.cpp +++ /dev/null @@ -1,143 +0,0 @@ -#include "lpch.h" -#include "ConsolePanel.h" - -#include -#include "Lux/ImGui/ImGuiEx.h" - -namespace Lux { - - ConsolePanel::ConsolePanel() - { - // Register the logging callback - Log::SetConsoleCallback([this](uint8_t level, const std::string& message) { - OnLogMessage(level, message); - }); - } - - ConsolePanel::~ConsolePanel() - { - // Clear the callback to prevent dangling pointer - Log::ClearConsoleCallback(); - } - - void ConsolePanel::OnLogMessage(uint8_t level, const std::string& message) - { - std::lock_guard lock(m_MessageMutex); - - LogMessage msg; - msg.Level = static_cast(level); - msg.Message = message; - - m_Messages.push_back(std::move(msg)); - - // Trim to max size - while (m_Messages.size() > MaxMessages) - m_Messages.pop_front(); - } - - void ConsolePanel::Clear() - { - std::lock_guard lock(m_MessageMutex); - m_Messages.clear(); - } - - void ConsolePanel::OnImGuiRender(bool& isOpen) - { - if (!isOpen) - return; - - ImGui::Begin("Console", &isOpen); - - // Toolbar - if (ImGui::Button("Clear")) - Clear(); - - ImGuiEx::BeginPropertyGrid(); - ImGuiEx::Property("Auto-scroll", m_AutoScroll); - ImGuiEx::Property("Trace", m_ShowTrace); - ImGuiEx::Property("Info", m_ShowInfo); - ImGuiEx::Property("Warn", m_ShowWarn); - ImGuiEx::Property("Error", m_ShowError); - ImGuiEx::EndPropertyGrid(); - ImGui::Separator(); - - // Filter input - ImGui::Text("Filter:"); - ImGui::SameLine(); - ImGui::InputText("##filter", m_FilterBuffer, sizeof(m_FilterBuffer)); - - ImGui::Separator(); - - // Messages list - ImGui::BeginChild("ScrollingRegion", ImVec2(0, 0), false, ImGuiWindowFlags_HorizontalScrollbar); - - { - std::lock_guard lock(m_MessageMutex); - - for (const auto& msg : m_Messages) - { - // Filter by level - switch (msg.Level) - { - case Log::Level::Trace: - if (!m_ShowTrace) continue; - break; - case Log::Level::Info: - if (!m_ShowInfo) continue; - break; - case Log::Level::Warn: - if (!m_ShowWarn) continue; - break; - case Log::Level::Error: - case Log::Level::Fatal: - if (!m_ShowError) continue; - break; - } - - // Filter by text - if (m_FilterBuffer[0] != '\0') - { - if (msg.Message.find(m_FilterBuffer) == std::string::npos) - continue; - } - - // Set color based on level - ImVec4 color; - switch (msg.Level) - { - case Log::Level::Trace: - color = ImVec4(0.6f, 0.6f, 0.6f, 1.0f); - break; - case Log::Level::Info: - color = ImVec4(0.0f, 0.8f, 0.0f, 1.0f); - break; - case Log::Level::Warn: - color = ImVec4(1.0f, 0.8f, 0.0f, 1.0f); - break; - case Log::Level::Error: - color = ImVec4(1.0f, 0.2f, 0.2f, 1.0f); - break; - case Log::Level::Fatal: - color = ImVec4(1.0f, 0.0f, 0.0f, 1.0f); - break; - default: - color = ImVec4(1.0f, 1.0f, 1.0f, 1.0f); - break; - } - - ImGui::PushStyleColor(ImGuiCol_Text, color); - ImGui::TextUnformatted(msg.Message.c_str()); - ImGui::PopStyleColor(); - } - } - - // Auto-scroll - if (m_AutoScroll && ImGui::GetScrollY() >= ImGui::GetScrollMaxY()) - ImGui::SetScrollHereY(1.0f); - - ImGui::EndChild(); - - ImGui::End(); - } - -} diff --git a/Editor/Source/Panels/ConsolePanel.h b/Editor/Source/Panels/ConsolePanel.h deleted file mode 100644 index 1050164..0000000 --- a/Editor/Source/Panels/ConsolePanel.h +++ /dev/null @@ -1,46 +0,0 @@ -#pragma once - -#include "Lux/Editor/EditorPanel.h" -#include "Lux/Core/Log.h" - -#include -#include -#include - -namespace Lux { - - class ConsolePanel : public EditorPanel - { - public: - ConsolePanel(); - virtual ~ConsolePanel(); - - virtual void OnImGuiRender(bool& isOpen) override; - - void Clear(); - - private: - void OnLogMessage(uint8_t level, const std::string& message); - - struct LogMessage - { - Log::Level Level; - std::string Message; - }; - - static constexpr size_t MaxMessages = 1000; - - std::deque m_Messages; - std::mutex m_MessageMutex; - - bool m_AutoScroll = true; - bool m_ShowTrace = true; - bool m_ShowInfo = true; - bool m_ShowWarn = true; - bool m_ShowError = true; - - // Filter text - char m_FilterBuffer[256] = ""; - }; - -} From 86d058e2418285f068101cfccfd1bb712dfc85a0 Mon Sep 17 00:00:00 2001 From: Pier-Olivier Boulianne Date: Mon, 20 Apr 2026 22:51:31 -0400 Subject: [PATCH 18/18] WIP: trying to fix scene rendering problems, and editor --- Core/Source/Lux/Renderer/Renderer2D.cpp | 60 ++++++-- Core/Source/Lux/Renderer/Renderer2D.h | 1 + Core/Source/Lux/Scene/Scene.cpp | 191 +++++++++++++++++++----- Core/Source/Lux/Scene/Scene.h | 16 +- Editor/Source/EditorLayer.cpp | 148 ++++++++++-------- 5 files changed, 299 insertions(+), 117 deletions(-) diff --git a/Core/Source/Lux/Renderer/Renderer2D.cpp b/Core/Source/Lux/Renderer/Renderer2D.cpp index d5f4864..e9df7fb 100644 --- a/Core/Source/Lux/Renderer/Renderer2D.cpp +++ b/Core/Source/Lux/Renderer/Renderer2D.cpp @@ -254,8 +254,17 @@ namespace Lux { { ShaderDataType::Float2, "a_LocalPosition" }, { ShaderDataType::Float4, "a_Color" } }; - m_CirclePipeline = Pipeline::Create(pipelineSpecification); - m_CircleMaterial = Material::Create(pipelineSpecification.Shader); + + RenderPassSpecification circleSpec; + circleSpec.DebugName = "Renderer2D-Circle"; + circleSpec.Pipeline = Pipeline::Create(pipelineSpecification); + m_CirclePass = RenderPass::Create(circleSpec); + m_CirclePass->SetInput("Camera", m_UBSCamera); + LUX_CORE_VERIFY(m_CirclePass->Validate()); + m_CirclePass->Bake(); + + m_CirclePipeline = m_CirclePass->GetPipeline(); + m_CircleMaterial = Material::Create(pipelineSpecification.Shader, "CircleMaterial"); m_CircleVertexBuffers.resize(1); m_CircleVertexBufferBases.resize(1); @@ -265,7 +274,7 @@ namespace Lux { m_CircleVertexBufferBases[0].resize(framesInFlight); for (uint32_t i = 0; i < framesInFlight; i++) { - uint64_t allocationSize = c_MaxVertices * sizeof(QuadVertex); + uint64_t allocationSize = c_MaxVertices * sizeof(CircleVertex); m_CircleVertexBuffers[0][i] = VertexBuffer::Create(allocationSize); m_MemoryStats.TotalAllocated += allocationSize; m_CircleVertexBufferBases[0][i] = lnew CircleVertex[c_MaxVertices]; @@ -428,8 +437,26 @@ namespace Lux { } } + // Filled circles + for (uint32_t i = 0; i <= m_CircleBufferWriteIndex; i++) + { + dataSize = (uint32_t)((uint8_t*)m_CircleVertexBufferPtr[i] - (uint8_t*)m_CircleVertexBufferBases[i][frameIndex]); + if (dataSize) + { + uint32_t indexCount = i == m_CircleBufferWriteIndex ? m_CircleIndexCount - (c_MaxIndices * i) : c_MaxIndices; + m_CircleVertexBuffers[i][frameIndex]->SetData(m_CircleVertexBufferBases[i][frameIndex], dataSize); + + Renderer::BeginRenderPass(m_RenderCommandBuffer, m_CirclePass); + Renderer::RenderGeometry(m_RenderCommandBuffer, m_CirclePass->GetPipeline(), m_CircleMaterial, m_CircleVertexBuffers[i][frameIndex], m_QuadIndexBuffer, glm::mat4(1.0f), indexCount); + Renderer::EndRenderPass(m_RenderCommandBuffer); + + m_DrawStats.DrawCalls++; + m_MemoryStats.Used += dataSize; + } + } + // Lines (depth-tested) - m_LinePass->GetPipeline()->GetSpecification().DepthTest = true; + m_LinePass->GetPipeline()->GetSpecification().DepthTest = m_DepthTest; for (uint32_t i = 0; i <= m_LineBufferWriteIndex; i++) { dataSize = (uint32_t)((uint8_t*)m_LineVertexBufferPtr[i] - (uint8_t*)m_LineVertexBufferBases[i][frameIndex]); @@ -477,12 +504,15 @@ namespace Lux { Ref Renderer2D::GetTargetRenderPass() { - return nullptr; + return m_QuadPass; } void Renderer2D::SetTargetFramebuffer(Ref framebuffer) { - if (framebuffer != m_TextPass->GetTargetFramebuffer()) + if (!framebuffer) + return; + + if (framebuffer != m_QuadPass->GetTargetFramebuffer()) { { PipelineSpecification pipelineSpec = m_QuadPass->GetSpecification().Pipeline->GetSpecification(); @@ -498,6 +528,7 @@ namespace Lux { { PipelineSpecification pipelineSpec = m_LinePass->GetSpecification().Pipeline->GetSpecification(); pipelineSpec.TargetFramebuffer = framebuffer; + pipelineSpec.LineWidth = m_LineWidth; RenderPassSpecification& renderpassSpec = m_LinePass->GetSpecification(); renderpassSpec.Pipeline = Pipeline::Create(pipelineSpec); // FIX: re-validate and re-bake @@ -516,6 +547,17 @@ namespace Lux { LUX_CORE_VERIFY(m_TextPass->Validate()); m_TextPass->Bake(); } + + { + PipelineSpecification pipelineSpec = m_CirclePass->GetSpecification().Pipeline->GetSpecification(); + pipelineSpec.TargetFramebuffer = framebuffer; + RenderPassSpecification& renderpassSpec = m_CirclePass->GetSpecification(); + renderpassSpec.Pipeline = Pipeline::Create(pipelineSpec); + m_CirclePass->SetInput("Camera", m_UBSCamera); + LUX_CORE_VERIFY(m_CirclePass->Validate()); + m_CirclePass->Bake(); + m_CirclePipeline = m_CirclePass->GetPipeline(); + } } } @@ -1115,10 +1157,10 @@ namespace Lux { bufferPtr->LocalPosition = m_QuadVertexPositions[i] * 2.0f; bufferPtr->Color = color; bufferPtr++; - - m_CircleIndexCount += 6; - m_DrawStats.QuadCount++; } + + m_CircleIndexCount += 6; + m_DrawStats.QuadCount++; } void Renderer2D::DrawLine(const glm::vec3& p0, const glm::vec3& p1, const glm::vec4& color, const bool onTop) diff --git a/Core/Source/Lux/Renderer/Renderer2D.h b/Core/Source/Lux/Renderer/Renderer2D.h index ba3a00d..1c8615e 100644 --- a/Core/Source/Lux/Renderer/Renderer2D.h +++ b/Core/Source/Lux/Renderer/Renderer2D.h @@ -170,6 +170,7 @@ namespace Lux { std::vector m_QuadVertexBufferPtr; uint32_t m_QuadBufferWriteIndex = 0; + Ref m_CirclePass; Ref m_CirclePipeline; Ref m_CircleMaterial; std::vector m_CircleVertexBuffers; diff --git a/Core/Source/Lux/Scene/Scene.cpp b/Core/Source/Lux/Scene/Scene.cpp index e6f0b12..5f1fe02 100644 --- a/Core/Source/Lux/Scene/Scene.cpp +++ b/Core/Source/Lux/Scene/Scene.cpp @@ -46,16 +46,16 @@ namespace Lux { static void CopyComponent(entt::registry& dst, entt::registry& src, const std::unordered_map& enttMap) { ([&]() - { - auto view = src.view(); - for (auto srcEntity : view) { - entt::entity dstEntity = enttMap.at(src.get(srcEntity).ID); + auto view = src.view(); + for (auto srcEntity : view) + { + entt::entity dstEntity = enttMap.at(src.get(srcEntity).ID); - auto& srcComponent = src.get(srcEntity); - dst.emplace_or_replace(dstEntity, srcComponent); - } - }(), ...); + auto& srcComponent = src.get(srcEntity); + dst.emplace_or_replace(dstEntity, srcComponent); + } + }(), ...); } template @@ -68,10 +68,10 @@ namespace Lux { static void CopyComponentIfExists(Entity dst, Entity src) { ([&]() - { - if (src.HasComponent()) - dst.AddOrReplaceComponent(src.GetComponent()); - }(), ...); + { + if (src.HasComponent()) + dst.AddOrReplaceComponent(src.GetComponent()); + }(), ...); } template @@ -473,7 +473,7 @@ namespace Lux { view.each([&](entt::entity entity, AudioSourceComponent& asc) { - Entity e = { entity , this}; + Entity e = { entity , this }; if (asc.Audio) { @@ -531,7 +531,7 @@ namespace Lux { { auto& camera = view.get(entity); if (camera.Primary) - + { mainCamera = &camera.Camera; cameraTransform = GetWorldSpaceTransformMatrix(Entity{ entity, this }); @@ -543,7 +543,7 @@ namespace Lux { if (mainCamera) { glm::mat4 view = glm::inverse(cameraTransform); - m_Renderer2D->BeginScene(mainCamera->GetProjectionMatrix()* view, view); + m_Renderer2D->BeginScene(mainCamera->GetProjectionMatrix() * view, view); // Draw sprites { @@ -700,29 +700,29 @@ namespace Lux { std::function instantiateHierarchy; instantiateHierarchy = [&](Entity source, Entity parent) -> Entity - { - Entity destination = CreateEntity(source.GetName()); - CopyComponentIfExists(PrefabInstantiationComponents{}, destination, source); + { + Entity destination = CreateEntity(source.GetName()); + CopyComponentIfExists(PrefabInstantiationComponents{}, destination, source); - auto& prefabComponent = destination.AddOrReplaceComponent(); - prefabComponent.PrefabID = prefab->Handle; - prefabComponent.EntityID = source.GetUUID(); + auto& prefabComponent = destination.AddOrReplaceComponent(); + prefabComponent.PrefabID = prefab->Handle; + prefabComponent.EntityID = source.GetUUID(); - if (parent) - destination.SetParent(parent); + if (parent) + destination.SetParent(parent); - if (source.HasComponent()) - { - for (const UUID childID : source.Children()) + if (source.HasComponent()) { - Entity child = prefabScene->GetEntityByUUID(childID); - if (child) - instantiateHierarchy(child, destination); + for (const UUID childID : source.Children()) + { + Entity child = prefabScene->GetEntityByUUID(childID); + if (child) + instantiateHierarchy(child, destination); + } } - } - return destination; - }; + return destination; + }; return instantiateHierarchy(prefabRoot, {}); } @@ -900,7 +900,7 @@ namespace Lux { const auto& dirLight = view.get(entity); const glm::mat4 worldTransform = GetWorldSpaceTransformMatrix(Entity{ entity, const_cast(this) }); - + glm::vec3 direction = glm::normalize(glm::vec3(worldTransform * glm::vec4(0.0f, 0.0f, -1.0f, 0.0f))); lightEnv.DirectionalLights[dirLightIndex].Direction = direction; @@ -946,7 +946,7 @@ namespace Lux { for (auto entity : view) { const auto& skyLight = view.get(entity); - + if (skyLight.EnvironmentMap) { outIntensity = skyLight.Intensity; @@ -957,8 +957,8 @@ namespace Lux { return nullptr; } - void Scene::SubmitStaticMeshes(Ref renderer, - const std::function& isSelected) const + void Scene::SubmitStaticMeshes(Ref renderer, + const std::function& isSelected) const { auto view = m_Registry.view(); for (auto e : view) @@ -1010,7 +1010,7 @@ namespace Lux { } void Scene::Render3D(const EditorCamera& camera, Ref renderer, - const std::function& isSelected) + const std::function& isSelected) { if (!renderer || !renderer->IsReady()) return; @@ -1041,6 +1041,63 @@ namespace Lux { // End the frame and execute the render passes renderer->EndScene(); + + // Composite 2D content onto the SceneRenderer output so the main viewport + // can display a single image containing both 3D and 2D, like Hazel. + if (renderer->GetFinalPassImage()) + { + Ref renderer2D = renderer->GetRenderer2D(); + if (renderer2D) + { + renderer2D->ResetStats(); + renderer2D->BeginScene(camera.GetViewProjection(), camera.GetViewMatrix()); + renderer2D->SetTargetFramebuffer(renderer->GetExternalCompositeFramebuffer()); + + // Draw sprites + { + auto group = m_Registry.group(entt::get); + for (auto entity : group) + { + auto& sprite = group.get(entity); + + Ref texture = AssetManager::GetAsset(sprite.Texture); + const glm::mat4 worldTransform = GetWorldSpaceTransformMatrix(Entity{ entity, this }); + if (texture) + renderer2D->DrawQuad(worldTransform, texture, sprite.TilingFactor, sprite.Color); + else + renderer2D->DrawQuad(worldTransform, sprite.Color); + } + } + + // Draw circles + { + auto view = m_Registry.view(); + for (auto entity : view) + { + auto& circle = view.get(entity); + renderer2D->DrawCircle(GetWorldSpaceTransformMatrix(Entity{ entity, this }), circle.Color); + } + } + + // Draw text + { + auto view = m_Registry.view(); + for (auto entity : view) + { + auto& text = view.get(entity); + + Ref font = AssetManager::GetAsset(text.FontHandle); + if (font) + { + renderer2D->DrawString(text.TextString, font, GetWorldSpaceTransformMatrix(Entity{ entity, this }), + text.MaxWidth, text.Color, text.LineSpacing, text.Kerning); + } + } + } + + renderer2D->EndScene(); + } + } } void Scene::Render3DRuntime(Ref renderer) @@ -1059,7 +1116,6 @@ namespace Lux { SceneRendererCamera sceneCamera; sceneCamera.Camera.SetProjectionMatrix(cameraComp.Camera.GetProjectionMatrix(), cameraComp.Camera.GetUnReversedProjectionMatrix()); sceneCamera.ViewMatrix = glm::inverse(GetWorldSpaceTransformMatrix(cameraEntity)); - // Note: Near/Far/FOV from runtime camera component if needed // Begin the 3D rendering frame renderer->BeginScene(sceneCamera); @@ -1079,6 +1135,65 @@ namespace Lux { // End the frame renderer->EndScene(); + + // Composite 2D content onto the SceneRenderer output. + if (renderer->GetFinalPassImage()) + { + Ref renderer2D = renderer->GetRenderer2D(); + if (renderer2D) + { + const glm::mat4 view = sceneCamera.ViewMatrix; + const glm::mat4 viewProjection = cameraComp.Camera.GetProjectionMatrix() * view; + + renderer2D->ResetStats(); + renderer2D->BeginScene(viewProjection, view); + renderer2D->SetTargetFramebuffer(renderer->GetExternalCompositeFramebuffer()); + + // Draw sprites + { + auto group = m_Registry.group(entt::get); + for (auto entity : group) + { + auto& sprite = group.get(entity); + + Ref texture = AssetManager::GetAsset(sprite.Texture); + const glm::mat4 worldTransform = GetWorldSpaceTransformMatrix(Entity{ entity, this }); + if (texture) + renderer2D->DrawQuad(worldTransform, texture, sprite.TilingFactor, sprite.Color); + else + renderer2D->DrawQuad(worldTransform, sprite.Color); + } + } + + // Draw circles + { + auto view = m_Registry.view(); + for (auto entity : view) + { + auto& circle = view.get(entity); + renderer2D->DrawCircle(GetWorldSpaceTransformMatrix(Entity{ entity, this }), circle.Color); + } + } + + // Draw text + { + auto view = m_Registry.view(); + for (auto entity : view) + { + auto& text = view.get(entity); + + Ref font = AssetManager::GetAsset(text.FontHandle); + if (font) + { + renderer2D->DrawString(text.TextString, font, GetWorldSpaceTransformMatrix(Entity{ entity, this }), + text.MaxWidth, text.Color, text.LineSpacing, text.Kerning); + } + } + } + + renderer2D->EndScene(); + } + } } // ============================================================================ diff --git a/Core/Source/Lux/Scene/Scene.h b/Core/Source/Lux/Scene/Scene.h index 3f2859e..6b26f31 100644 --- a/Core/Source/Lux/Scene/Scene.h +++ b/Core/Source/Lux/Scene/Scene.h @@ -51,7 +51,7 @@ namespace Lux { void OnUpdateEditor(Timestep ts, EditorCamera& camera); void OnViewportResize(uint32_t width, uint32_t height); - void SetTargetFramebuffer(Ref framebuffer); // add this + void SetTargetFramebuffer(Ref framebuffer); Entity DuplicateEntity(Entity entity); Entity InstantiatePrefab(Ref prefab); @@ -80,8 +80,8 @@ namespace Lux { // Submit all StaticMeshComponent entities to the SceneRenderer // Optional predicate to determine if an entity is selected (for highlight rendering) - void SubmitStaticMeshes(Ref renderer, - const std::function& isSelected = nullptr) const; + void SubmitStaticMeshes(Ref renderer, + const std::function& isSelected = nullptr) const; // High-level 3D rendering method that orchestrates the full 3D pipeline: // - Sets up camera @@ -90,18 +90,24 @@ namespace Lux { // - Submits all static meshes // Call this from EditorLayer to render 3D content void Render3D(const EditorCamera& camera, Ref renderer, - const std::function& isSelected = nullptr); + const std::function& isSelected = nullptr); // Render 3D content using a runtime camera (for Play mode) void Render3DRuntime(Ref renderer); - // ============================================================================ + // ============================================================================ template auto GetAllEntitiesWith() { return m_Registry.view(); } + + template + auto GetAllEntitiesWith() const + { + return m_Registry.view(); + } private: template void OnComponentAdded(Entity entity, T& component); diff --git a/Editor/Source/EditorLayer.cpp b/Editor/Source/EditorLayer.cpp index ca8e472..721f34d 100644 --- a/Editor/Source/EditorLayer.cpp +++ b/Editor/Source/EditorLayer.cpp @@ -294,34 +294,33 @@ namespace Lux { { m_EditorCamera.OnUpdate(ts); - // Render 3D content first (static meshes, lights, skybox) + // When SceneRenderer is ready, let it own the full visible frame and + // composite the 2D pass on top of the 3D result. Falling back to the + // old Renderer2D-only path keeps the editor usable during init. if (m_SceneRenderer && m_SceneRenderer->IsReady()) m_ActiveScene->Render3D(m_EditorCamera, m_SceneRenderer, isEntitySelected); - - // Then render 2D content (sprites, circles, text) - this blends on top - m_ActiveScene->OnUpdateEditor(ts, m_EditorCamera); + else + m_ActiveScene->OnUpdateEditor(ts, m_EditorCamera); break; } case SceneState::Simulate: { m_EditorCamera.OnUpdate(ts); - // Render 3D content + // Update simulation first so the rendered frame matches the latest + // physics state, then render the composed 3D + 2D scene. + m_ActiveScene->OnUpdateSimulation(ts, m_EditorCamera); if (m_SceneRenderer && m_SceneRenderer->IsReady()) m_ActiveScene->Render3D(m_EditorCamera, m_SceneRenderer, isEntitySelected); - - // Then render 2D content and update physics simulation - m_ActiveScene->OnUpdateSimulation(ts, m_EditorCamera); break; } case SceneState::Play: { - // Render 3D content using the runtime camera + // Runtime has to update before rendering so sprites, circles and text + // appear in their current positions in the main viewport. + m_ActiveScene->OnUpdateRuntime(ts); if (m_SceneRenderer && m_SceneRenderer->IsReady()) m_ActiveScene->Render3DRuntime(m_SceneRenderer); - - // Then run the full runtime update (scripts, physics, 2D rendering) - m_ActiveScene->OnUpdateRuntime(ts); break; } } @@ -401,6 +400,9 @@ namespace Lux { if (m_ShowAboutPopup) ImGui::OpenPopup("About LuxEngine"); + ImGuiViewport* mainViewport = ImGui::GetMainViewport(); + ImGui::SetNextWindowPos(mainViewport->GetCenter(), ImGuiCond_Appearing, ImVec2(0.5f, 0.5f)); + if (ImGui::BeginPopupModal("About LuxEngine", &m_ShowAboutPopup, ImGuiWindowFlags_AlwaysAutoResize)) { ImGui::Text("LuxEngine Editor"); @@ -476,7 +478,11 @@ namespace Lux { if (viewportPanelSize.x > 1.0f && viewportPanelSize.y > 1.0f) m_ViewportSize = { viewportPanelSize.x, viewportPanelSize.y }; - ImTextureID texID = GetImGuiTextureID(m_Framebuffer->GetImage(0)); + Ref viewportImage = m_Framebuffer->GetImage(0); + if (m_SceneRenderer && m_SceneRenderer->GetFinalPassImage()) + viewportImage = m_SceneRenderer->GetFinalPassImage(); + + ImTextureID texID = GetImGuiTextureID(viewportImage); ImGui::Image(texID, ImVec2{ m_ViewportSize.x, m_ViewportSize.y }, ImVec2{ 0, 0 }, ImVec2{ 1, 1 }); if (ImGui::BeginDragDropTarget()) @@ -561,75 +567,78 @@ namespace Lux { void EditorLayer::UI_DrawMenubar() { + const ImRect menuBarRect = { ImGui::GetCursorPos(), { ImGui::GetContentRegionAvail().x + ImGui::GetCursorScreenPos().x, ImGui::GetFrameHeightWithSpacing() } }; + + ImGui::BeginGroup(); + ImGuiEx::ScopedColourStack menuColors( ImGuiCol_Header, ImGui::ColorConvertU32ToFloat4(Colors::Theme::accent), ImGuiCol_HeaderHovered, ImGui::ColorConvertU32ToFloat4(Colors::Theme::accent), ImGuiCol_HeaderActive, ImGui::ColorConvertU32ToFloat4(Colors::Theme::accent), ImGuiCol_Text, ImGui::ColorConvertU32ToFloat4(Colors::Theme::text)); - const float menuMinX = 76.0f; - const float menuMaxX = std::max(menuMinX + 1.0f, ImGui::GetWindowWidth() - 350.0f); - const ImRect menuBarRect(ImVec2(menuMinX, 0.0f), ImVec2(menuMaxX, m_TitlebarHeight)); - if (!ImGuiEx::BeginMenuBar(menuBarRect)) - return; - - if (ImGui::BeginMenu("File")) + if (ImGuiEx::BeginMenuBar(menuBarRect)) { - if (ImGui::MenuItem("Create Project")) - NewProject(); - if (ImGui::MenuItem("Open Project...", "Ctrl+O")) - OpenProject(); - - if (ImGui::BeginMenu("Recent Projects")) + if (ImGui::BeginMenu("File")) { - ImGui::MenuItem("No recent projects", nullptr, false, false); - ImGui::EndMenu(); - } + if (ImGui::MenuItem("Create Project")) + NewProject(); + if (ImGui::MenuItem("Open Project...", "Ctrl+O")) + OpenProject(); - ImGui::Separator(); - if (ImGui::MenuItem("Save Scene", "Ctrl+S")) - SaveScene(); - if (ImGui::MenuItem("Save Scene As...", "Ctrl+Shift+S")) - SaveSceneAs(); + if (ImGui::BeginMenu("Recent Projects")) + { + ImGui::MenuItem("No recent projects", nullptr, false, false); + ImGui::EndMenu(); + } - ImGui::Separator(); - if (ImGui::MenuItem("Exit")) - Application::Get().DispatchEvent(); + ImGui::Separator(); + if (ImGui::MenuItem("Save Scene", "Ctrl+S")) + SaveScene(); + if (ImGui::MenuItem("Save Scene As...", "Ctrl+Shift+S")) + SaveSceneAs(); - ImGui::EndMenu(); - } + ImGui::Separator(); + if (ImGui::MenuItem("Exit")) + Application::Get().DispatchEvent(); - if (ImGui::BeginMenu("Edit")) - { - if (ImGui::MenuItem("Reload C# Assembly", "Ctrl+R")) - ScriptEngine::ReloadAssembly(); - ImGui::MenuItem("Second Viewport", nullptr, &m_SecondViewportEnabled); - ImGui::EndMenu(); - } + ImGui::EndMenu(); + } - if (ImGui::BeginMenu("View")) - { - auto& viewPanels = m_PanelManager->GetPanels(PanelCategory::View); - for (auto& [id, panelData] : viewPanels) - ImGui::MenuItem(panelData.Name, nullptr, &panelData.IsOpen); - ImGui::EndMenu(); - } + if (ImGui::BeginMenu("Edit")) + { + if (ImGui::MenuItem("Reload C# Assembly", "Ctrl+R")) + ScriptEngine::ReloadAssembly(); + ImGui::MenuItem("Second Viewport", nullptr, &m_SecondViewportEnabled); + ImGui::EndMenu(); + } - if (ImGui::BeginMenu("Tools")) - { - ImGui::MenuItem("ImGui Metrics", nullptr, &m_ShowImGuiMetrics); - ImGui::MenuItem("ImGui Style Editor", nullptr, &m_ShowImGuiStyleEditor); - ImGui::EndMenu(); - } + if (ImGui::BeginMenu("View")) + { + auto& viewPanels = m_PanelManager->GetPanels(PanelCategory::View); + for (auto& [id, panelData] : viewPanels) + ImGui::MenuItem(panelData.Name, nullptr, &panelData.IsOpen); + ImGui::EndMenu(); + } - if (ImGui::BeginMenu("Help")) - { - if (ImGui::MenuItem("About")) - m_ShowAboutPopup = true; - ImGui::EndMenu(); + if (ImGui::BeginMenu("Tools")) + { + ImGui::MenuItem("ImGui Metrics", nullptr, &m_ShowImGuiMetrics); + ImGui::MenuItem("ImGui Style Editor", nullptr, &m_ShowImGuiStyleEditor); + ImGui::EndMenu(); + } + + if (ImGui::BeginMenu("Help")) + { + if (ImGui::MenuItem("About")) + m_ShowAboutPopup = true; + ImGui::EndMenu(); + } + + ImGuiEx::EndMenuBar(); } - ImGuiEx::EndMenuBar(); + ImGui::EndGroup(); } void EditorLayer::UI_DrawTitlebar() @@ -660,6 +669,8 @@ namespace Lux { if (EditorResources::HazelLogoTexture) drawList->AddImage(GetImGuiTextureID(EditorResources::HazelLogoTexture), logoMin, logoMax); + const float menuBarX = logoPadding * 2.0f + logoSize + 8.0f; + ImGui::SetCursorPos(ImVec2(menuBarX, 4.0f)); UI_DrawMenubar(); const std::string sceneName = GetSceneDisplayName(m_EditorScenePath); @@ -1118,6 +1129,13 @@ namespace Lux { void EditorLayer::OnOverlayRender() { + Ref overlayTarget = m_Framebuffer; + if (m_SceneRenderer && m_SceneRenderer->GetExternalCompositeFramebuffer()) + overlayTarget = m_SceneRenderer->GetExternalCompositeFramebuffer(); + + if (overlayTarget) + m_Renderer2D->SetTargetFramebuffer(overlayTarget); + if (m_SceneState == SceneState::Play) { Entity camera = m_ActiveScene->GetPrimaryCameraEntity();

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%0AH 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