Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
70d4892
P1S1
Mosch0512 Jan 27, 2026
c7a3771
P1S2
Mosch0512 Jan 27, 2026
7b39535
P1S3
Mosch0512 Jan 27, 2026
45d3bd5
Migrate OpenGL matrix and perspective utilities to `CameraProjection`…
Mosch0512 Jan 27, 2026
aa55426
Introduce `DefaultCamera` implementation, replacing existing camera l…
Mosch0512 Jan 27, 2026
97ca483
Add `CameraManager` system with support for modular camera modes, inc…
Mosch0512 Jan 27, 2026
ec6ad0a
First working state
Mosch0512 Jan 27, 2026
acee081
DefaultCamera working and transitioning to default
Mosch0512 Jan 27, 2026
f354a8e
Working like 3d camera branch with decorator approach not optimal
Mosch0512 Jan 27, 2026
5d77108
WT with DevEditor
Mosch0512 Jan 27, 2026
f613b97
Introduce camera configuration and frustum management system, enhanci…
Mosch0512 Jan 28, 2026
008ed72
Transition `CreateFrustrum` to use the new camera system while mainta…
Mosch0512 Jan 28, 2026
977a78f
Add camera culling to terrain and object rendering with `ICamera` sup…
Mosch0512 Jan 28, 2026
791644b
Refactor object rendering to accept optional camera parameter for dyn…
Mosch0512 Jan 28, 2026
506ae4e
Add 2D object culling support using `Frustum::Test2D`; integrate into…
Mosch0512 Jan 28, 2026
3de7bd4
WT Dev Editor Camera
Mosch0512 Jan 28, 2026
e986489
Add and refine DevEditor rendering toggles: introduced support for dr…
Mosch0512 Jan 28, 2026
9ec19b1
Remove legacy frustum logic; migrate to camera-based culling with `IC…
Mosch0512 Jan 29, 2026
54aca52
WT missing one stuff to fix made screenshot for this
Mosch0512 Jan 29, 2026
3e063ce
5.1 and 2 Add `IsHeroValid` checks and fallback logic for `Hero` null…
Mosch0512 Jan 29, 2026
b106afc
+++ fixup
Mosch0512 Jan 29, 2026
3a0af73
+++ ADD some values to editor
Mosch0512 Jan 29, 2026
9c0b8ab
+++ some imporvemes with performance loss not sure why maybe to many …
Mosch0512 Jan 29, 2026
c5a3b4c
Optimize frustum updates by caching previous camera state and introdu…
Mosch0512 Jan 29, 2026
4317dd4
Refine `DefaultCamera` initialization: improve fallback logic for tou…
Mosch0512 Jan 29, 2026
59f3a14
Update `CameraConfig` FOV to 60 degrees across all presets; add DevEd…
Mosch0512 Jan 29, 2026
d047802
Update `CameraConfig` for `CharacterScene` with optimized FOV and far…
Mosch0512 Jan 29, 2026
387dd08
Add terrain culling support to `Frustum` and enhance DevEditor far-pl…
Mosch0512 Jan 29, 2026
7f7b1d7
Integrate 3D frustum culling for characters using `CameraManager` in …
Mosch0512 Jan 29, 2026
c06dd8b
Best point Simplify 3D frustum culling logic in `ZzzCharacter`; fix p…
Mosch0512 Jan 30, 2026
549b594
Force config reload in `DefaultCamera` and `OrbitalCamera` by resetti…
Mosch0512 Jan 30, 2026
2faf817
Add scene-specific `ResetForScene` logic and WASD+QE free camera mode…
Mosch0512 Jan 30, 2026
a393689
close
Mosch0512 Jan 30, 2026
21c2692
Awesome Login Screen fully working kind a :D
Mosch0512 Jan 31, 2026
6c27a7d
+++ fixup
Mosch0512 Jan 31, 2026
8e73612
+++ fixup
Mosch0512 Jan 31, 2026
7d06bad
+++ fixup
Mosch0512 Jan 31, 2026
6e2e671
+++ fixup
Mosch0512 Jan 31, 2026
2d241c6
+++ fixup
Mosch0512 Jan 31, 2026
b03ec72
+++ fixup
Mosch0512 Jan 31, 2026
cc613b4
Optimize `OrbitalCamera` activation by consolidating scene configurat…
Mosch0512 Jan 31, 2026
9e3f245
Refactor camera activation logic for `OrbitalCamera` and `DefaultCame…
Mosch0512 Jan 31, 2026
532d4b2
current state WT not working issue 1 and 3
Mosch0512 Jan 31, 2026
81b610b
Fix issues #1 and #3: improve camera activation logic for seamless tr…
Mosch0512 Jan 31, 2026
7fa9033
Fix camera activation logic: preserve state during transitions, disab…
Mosch0512 Jan 31, 2026
5a3d9aa
Standardize `ViewFar` multiplier across cameras for consistent render…
Mosch0512 Jan 31, 2026
23f729b
Adjust `ViewFar` multiplier to 1.4x for consistent terrain rendering …
Mosch0512 Jan 31, 2026
d7f6470
Increase terrain culling range to match mouse picking ray distance (2…
Mosch0512 Jan 31, 2026
16528b8
+++ fixup
Mosch0512 Jan 31, 2026
4dcc06a
Very good only zooming not working good
Mosch0512 Jan 31, 2026
322afd4
Add note that RenderSky() is disabled and why
Mosch0512 Jan 31, 2026
a54c8f5
Add comment explaining why BITMAP_SKY rendering is disabled in Render…
Mosch0512 Jan 31, 2026
bf9870b
Update `SetWorldClearColor` to refine color mappings for specific wor…
Mosch0512 Jan 31, 2026
53ac977
Centralize background color handling in `SceneManager::SetWorldClearC…
Mosch0512 Jan 31, 2026
07a5335
Enable fog with dynamic color and range adjustments; refine zoom beha…
Mosch0512 Feb 1, 2026
527e61a
Comment out debug logging in camera modules
Mosch0512 Feb 1, 2026
91c7c4c
Remove terrain-specific 2D ground projection and related methods from…
Mosch0512 Feb 1, 2026
08d0f8a
Fog code close to perfect
Mosch0512 Feb 1, 2026
fdb9084
Refine fog logic and camera configurations: Adjust near/far planes, o…
Mosch0512 Feb 1, 2026
dea1efb
Integrate orbital camera yaw into item rotation logic; update angle c…
Mosch0512 Feb 1, 2026
6bc324e
Refactor `MoveItems`: Extract ground handling and falling logic into …
Mosch0512 Feb 1, 2026
0101698
Start updating resolutions
Mosch0512 Feb 1, 2026
5baf64a
Bitmaps working game not
Mosch0512 Feb 1, 2026
e3b8c5a
Standardize resolution handling: Replace dynamic `WindowHeight` usage…
Mosch0512 Feb 1, 2026
ea7007a
Text rendering and font is working
Mosch0512 Feb 2, 2026
2bf55af
Refactor configuration system: Replace registry-based settings with `…
Mosch0512 Feb 2, 2026
ba8fdb9
DevEditor extension for saving resolution and window mode
Mosch0512 Feb 2, 2026
6752abd
+++ fixup
Mosch0512 Feb 2, 2026
fa1de17
fixup
Mosch0512 Feb 3, 2026
9ebcd80
Add support for updating 3D UI camera dimensions: Introduce `UpdateDi…
Mosch0512 Feb 3, 2026
cc6bce3
Centralize and standardize culling radius values: Introduce `CullingC…
Mosch0512 Feb 3, 2026
729e811
WT
Mosch0512 Feb 4, 2026
8fbac59
Refactor configuration access: Replace `g_GameConfig` usage with `Gam…
Mosch0512 Feb 6, 2026
c34c8fe
Restore terrain iteration bounds: Add UpdateFrustrumBounds() to limit…
Mosch0512 Feb 6, 2026
61d6447
Gate debug text rendering behind #ifdef _EDITOR and reduce object blo…
Mosch0512 Feb 6, 2026
851759a
Skip per-tile 3D sphere culling inside visible terrain blocks to avoi…
Mosch0512 Feb 6, 2026
4aef73a
Add LegacyCamera to F9 cycle for A/B performance testing: Default → O…
Mosch0512 Feb 6, 2026
c3af6b5
Rewrite LegacyCamera as standalone direct port of main branch MoveMai…
Mosch0512 Feb 6, 2026
4fe536d
Restore cheap 2D frustum culling and fix LegacyCamera linker errors
Mosch0512 Feb 6, 2026
2b68638
Cache active frustum pointer per frame to eliminate hot-path overhead
Mosch0512 Feb 6, 2026
35aea5e
Disable fog for non-orbital cameras, tighten terrain bounds with frus…
Mosch0512 Feb 6, 2026
2201820
Restore original culling pipeline and remove camera system overhead
Mosch0512 Feb 7, 2026
0cd00f3
Add dynamic camera-adaptive 2D culling for OrbitalCamera
Mosch0512 Feb 8, 2026
b183a11
Add horizontal FOV system, reduce orbital far plane, update DevEditor
Mosch0512 Feb 8, 2026
ae09207
Improve frustum visualization with filled planes, ground projection, …
Mosch0512 Feb 8, 2026
dc4e56a
Add yellow 10% buffer ground projection, expand culling hull, fix loo…
Mosch0512 Feb 8, 2026
3b4f9d4
Fix frustum spectating for Legacy/Default cameras, correct eye position
Mosch0512 Feb 9, 2026
280e97b
Fix terrain culling gaps with 4-corner overlap testing at block and t…
Mosch0512 Feb 12, 2026
08941e5
Fix frustum preview for Default/Legacy cameras in FreeFly spectator mode
Mosch0512 Feb 12, 2026
4b3f93b
Optimize terrain culling performance to match main branch FPS
Mosch0512 Feb 14, 2026
5b35f4f
Fix scene transitions: restore frustum for CharacterScene, fix LoginS…
Mosch0512 Feb 21, 2026
e7ba9da
Add Snap to Spectated button in DevEditor for FreeFly camera
Mosch0512 Feb 21, 2026
9dfb4b7
Add dynamic percentage-based fog and fog override to DevEditor
Mosch0512 Feb 23, 2026
f0f819b
Merge branch 'main' into pr/256
sven-n Mar 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 15 additions & 3 deletions src/MuEditor/Core/MuEditorCore.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include "../MuEditor/UI/Common/MuEditorCenterPaneUI.h"
#include "../MuEditor/UI/ItemEditor/MuItemEditorUI.h"
#include "../MuEditor/UI/SkillEditor/MuSkillEditorUI.h"
#include "../MuEditor/UI/DevEditor/DevEditorUI.h"
#include "../UI/Common/MuEditorUI.h"
#include "../UI/Console/MuEditorConsoleUI.h"
#include "Translation/i18n.h"
Expand All @@ -33,6 +34,8 @@ CMuEditorCore::CMuEditorCore()
, m_bFrameStarted(false)
, m_bShowItemEditor(false)
, m_bShowSkillEditor(false)
, m_bShowDevEditor(false)
, m_bShowConsole(true)
, m_bHoveringUI(false)
, m_bPreviousFrameHoveringUI(false)
{
Expand Down Expand Up @@ -403,15 +406,24 @@ void CMuEditorCore::Render()
m_bHoveringUI = false;

// Render toolbar (handles both open and closed states)
g_MuEditorUI.RenderToolbar(m_bEditorMode, m_bShowItemEditor, m_bShowSkillEditor);
g_MuEditorUI.RenderToolbar(m_bEditorMode, m_bShowItemEditor, m_bShowSkillEditor, m_bShowDevEditor, m_bShowConsole);

if (m_bEditorMode)
{
// Render center pane (handles all editor windows and input blocking)
g_MuEditorCenterPaneUI.Render(m_bShowItemEditor, m_bShowSkillEditor);

// Render console
g_MuEditorConsoleUI.Render();
// Render Dev Editor
if (m_bShowDevEditor)
{
g_DevEditorUI.Render(&m_bShowDevEditor);
}

// Render console (if enabled)
if (m_bShowConsole)
{
g_MuEditorConsoleUI.Render();
}
}

// Store current hover state for next frame's input blocking
Expand Down
4 changes: 4 additions & 0 deletions src/MuEditor/Core/MuEditorCore.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ class CMuEditorCore

bool IsShowingItemEditor() const { return m_bShowItemEditor; }
bool IsShowingSkillEditor() const { return m_bShowSkillEditor; }
bool IsShowingDevEditor() const { return m_bShowDevEditor; }
bool IsShowingConsole() const { return m_bShowConsole; }
bool IsHoveringUI() const { return m_bHoveringUI; }
void SetHoveringUI(bool hovering) { m_bHoveringUI = hovering; }

Expand All @@ -32,6 +34,8 @@ class CMuEditorCore
bool m_bFrameStarted;
bool m_bShowItemEditor;
bool m_bShowSkillEditor;
bool m_bShowDevEditor;
bool m_bShowConsole;
bool m_bHoveringUI;
bool m_bPreviousFrameHoveringUI; // Store previous frame's hover state for input blocking
};
Expand Down
2 changes: 2 additions & 0 deletions src/MuEditor/Core/MuInputBlockerCore.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ void CMuInputBlockerCore::ProcessInputBlocking()
extern bool MouseLButton, MouseLButtonPop, MouseLButtonPush, MouseLButtonDBClick;
extern bool MouseRButton, MouseRButtonPop, MouseRButtonPush;
extern bool MouseMButton;
extern int MouseWheel;

MouseLButton = false;
MouseLButtonPop = false;
Expand All @@ -37,6 +38,7 @@ void CMuInputBlockerCore::ProcessInputBlocking()
MouseRButtonPop = false;
MouseRButtonPush = false;
MouseMButton = false;
MouseWheel = 0; // Block mouse wheel when ImGui wants mouse input

// Block Enter key when hovering UI or when keyboard input is wanted
// This prevents chat from opening when pressing Enter in input fields
Expand Down
19 changes: 16 additions & 3 deletions src/MuEditor/UI/Common/MuEditorUI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ CMuEditorUI& CMuEditorUI::GetInstance()
return instance;
}

void CMuEditorUI::RenderToolbar(bool& editorEnabled, bool& showItemEditor, bool& showSkillEditor)
void CMuEditorUI::RenderToolbar(bool& editorEnabled, bool& showItemEditor, bool& showSkillEditor, bool& showDevEditor, bool& showConsole)
{
if (editorEnabled)
{
RenderToolbarFull(editorEnabled, showItemEditor, showSkillEditor);
RenderToolbarFull(editorEnabled, showItemEditor, showSkillEditor, showDevEditor, showConsole);
}
else
{
Expand Down Expand Up @@ -109,7 +109,7 @@ void CMuEditorUI::RenderToolbarOpen(bool& editorEnabled)
ImGui::PopStyleColor(2);
}

void CMuEditorUI::RenderToolbarFull(bool& editorEnabled, bool& showItemEditor, bool& showSkillEditor)
void CMuEditorUI::RenderToolbarFull(bool& editorEnabled, bool& showItemEditor, bool& showSkillEditor, bool& showDevEditor, bool& showConsole)
{
ImGui::SetNextWindowSize(ImVec2(ImGui::GetIO().DisplaySize.x, TOOLBAR_HEIGHT), ImGuiCond_Always);
ImGui::SetNextWindowPos(ImVec2(0, 0), ImGuiCond_Always);
Expand Down Expand Up @@ -144,6 +144,19 @@ void CMuEditorUI::RenderToolbarFull(bool& editorEnabled, bool& showItemEditor, b
showSkillEditor = !showSkillEditor;
}

ImGui::SameLine();
if (ImGui::Button("Dev Editor"))
{
showDevEditor = !showDevEditor;
}

// Console toggle
ImGui::SameLine();
if (ImGui::Checkbox("Console", &showConsole))
{
// Toggle is handled by reference
}

// Language selector
ImGui::SameLine();
ImGui::SetNextItemWidth(100.0f);
Expand Down
4 changes: 2 additions & 2 deletions src/MuEditor/UI/Common/MuEditorUI.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ class CMuEditorUI
public:
static CMuEditorUI& GetInstance();

void RenderToolbar(bool& editorEnabled, bool& showItemEditor, bool& showSkillEditor);
void RenderToolbar(bool& editorEnabled, bool& showItemEditor, bool& showSkillEditor, bool& showDevEditor, bool& showConsole);
void RenderCenterViewport();

private:
CMuEditorUI() = default;
~CMuEditorUI() = default;

void RenderToolbarOpen(bool& editorEnabled);
void RenderToolbarFull(bool& editorEnabled, bool& showItemEditor, bool& showSkillEditor);
void RenderToolbarFull(bool& editorEnabled, bool& showItemEditor, bool& showSkillEditor, bool& showDevEditor, bool& showConsole);
};

#define g_MuEditorUI CMuEditorUI::GetInstance()
Expand Down
Loading
Loading