engine: sync editor rendering and ui changes

This commit is contained in:
2026-04-08 16:09:15 +08:00
parent 31756847ab
commit 162f1cc12e
153 changed files with 4454 additions and 2990 deletions

View File

@@ -13,8 +13,6 @@ using XCEngine::Editor::SceneViewportNavigationState;
using XCEngine::Editor::SceneViewportToolMode;
using XCEngine::Editor::SceneViewportToolShortcutRequest;
using XCEngine::Editor::UpdateSceneViewportNavigationState;
using XCEngine::UI::UIPoint;
using XCEngine::UI::UISize;
TEST(SceneViewportNavigationTest, ToolShortcutActionIgnoresShortcutsDuringTextInputOrDrag) {
SceneViewportToolShortcutRequest request = {};
@@ -90,6 +88,22 @@ TEST(SceneViewportNavigationTest, NavigationUpdateBeginsLookAndPanDrags) {
EXPECT_EQ(middlePanUpdate.state.panDragButton, ImGuiMouseButton_Middle);
}
TEST(SceneViewportNavigationTest, NavigationUpdateBeginsMiddlePanWhenHeldButtonMissedClickEdge) {
SceneViewportNavigationRequest middlePanRequest = {};
middlePanRequest.hasInteractiveViewport = true;
middlePanRequest.viewportHovered = true;
middlePanRequest.middleMouseDown = true;
const auto middlePanUpdate = UpdateSceneViewportNavigationState(middlePanRequest);
EXPECT_FALSE(middlePanUpdate.beginLookDrag);
EXPECT_TRUE(middlePanUpdate.beginPanDrag);
EXPECT_FALSE(middlePanUpdate.beginLeftPanDrag);
EXPECT_TRUE(middlePanUpdate.beginMiddlePanDrag);
EXPECT_TRUE(middlePanUpdate.state.panDragging);
EXPECT_EQ(middlePanUpdate.state.panDragButton, ImGuiMouseButton_Middle);
}
TEST(SceneViewportNavigationTest, NavigationUpdateEndsDragsWhenButtonsRelease) {
SceneViewportNavigationRequest lookRequest = {};
lookRequest.state.lookDragging = true;
@@ -120,7 +134,7 @@ TEST(SceneViewportNavigationTest, CaptureFlagsTrackNavigationAndActiveGizmos) {
TEST(SceneViewportNavigationTest, BuildInputRoutesWheelFocusMovementAndMouseDelta) {
SceneViewportInputBuildRequest request = {};
request.viewportSize = UISize(640.0f, 360.0f);
request.viewportSize = XCEngine::UI::UISize(640.0f, 360.0f);
request.viewportHovered = true;
request.viewportFocused = true;
request.mouseWheel = 2.0f;
@@ -132,10 +146,10 @@ TEST(SceneViewportNavigationTest, BuildInputRoutesWheelFocusMovementAndMouseDelt
request = {};
request.state.lookDragging = true;
request.viewportSize = UISize(640.0f, 360.0f);
request.viewportSize = XCEngine::UI::UISize(640.0f, 360.0f);
request.viewportHovered = true;
request.mouseWheel = 1.5f;
request.mouseDelta = UIPoint(5.0f, -3.0f);
request.mouseDelta = XCEngine::UI::UIPoint(5.0f, -3.0f);
request.fastMove = true;
request.focusSelectionKeyPressed = true;
request.moveForwardKeyDown = true;