Browse Source

Roll back full screen camera fix and enable disabled test until all issues can be fixed (#15115)

Signed-off-by: Tom Hulton-Harrop <[email protected]>
Tom Hulton-Harrop 2 years ago
parent
commit
c99d4cecd7

+ 0 - 82
AutomatedTesting/Gem/PythonTests/editor/EditorScripts/EditorWorkflow_EditorCameraReturnsToOriginalPositionWhenLeavingFullscreenGameMode.py

@@ -1,82 +0,0 @@
-"""
-Copyright (c) Contributors to the Open 3D Engine Project.
-For complete copyright and license terms please see the LICENSE at the root of this distribution.
-
-SPDX-License-Identifier: Apache-2.0 OR MIT
-"""
-
-
-class Tests:
-    camera_moved_to_position_edit_mode = (
-        "Editor camera view moved to the new position in edit mode"
-        "Editor camera view did not move to the new position in edit mode"
-    )
-
-    camera_returned_to_initial_position_in_edit_mode_after_fullscreen_preview = (
-        "Editor camera view restored after returning from game mode in fullscreen"
-        "Editor camera view was not restored after returning from game mode in fullscreen"
-    )
-
-
-def EditorWorkflow_EditorCameraReturnsToOriginalPositionWhenLeavingFullscreenGameMode():
-    """
-    Summary:
-    Test camera position when entering/leaving game mode fullscreen preview
-
-    Expected Behavior:
-    Editor camera view returns to original editor camera position after leaving game mode fullscreen preview
-    """
-
-    import azlmbr.bus as bus
-    import azlmbr.editor as editor
-    import azlmbr.components as components
-    import azlmbr.legacy.general as general
-    import azlmbr.math as math
-
-    from editor_python_test_tools.editor_entity_utils import EditorEntity
-    from editor_python_test_tools.editor_test_helper import EditorTestHelper
-    from editor_python_test_tools.utils import Report, TestHelper
-
-    def get_current_view_position_as_vector3() -> math.Vector3:
-        view_position = general.get_current_view_position()
-        x = view_position.get_property('x')
-        y = view_position.get_property('y')
-        z = view_position.get_property('z')
-        return math.Vector3(float(x), float(y), float(z))
-
-    def set_current_view_position_with_vector3(view_position: math.Vector3):
-        general.set_current_view_position(
-            view_position.x, view_position.y, view_position.z)
-
-    helper = EditorTestHelper(log_prefix="Editor Camera")
-
-    helper.open_level("Base")
-
-    # where we expect the editor camera to end up
-    editor_camera_position = math.Vector3(20.0, 40.0, 60.0)
-    set_current_view_position_with_vector3(editor_camera_position)
-
-    general.idle_wait_frames(1)
-
-    initial_camera_position = get_current_view_position_as_vector3()
-    initial_camera_position_position_set = initial_camera_position.IsClose(editor_camera_position)
-    Report.result(Tests.camera_moved_to_position_edit_mode, initial_camera_position_position_set)
-
-    # enter/exit game mode
-    general.enter_game_mode_fullscreen()
-    helper.wait_for_condition(lambda: general.is_in_game_mode(), 5.0)
-
-    general.exit_game_mode()
-    helper.wait_for_condition(lambda: not general.is_in_game_mode(), 5.0)
-
-    # ensure camera position has returned to the initial camera position
-    actual_camera_position = get_current_view_position_as_vector3()
-    position_restored = actual_camera_position.IsClose(initial_camera_position)
-    # verify the position has been updated
-    Report.result(Tests.camera_returned_to_initial_position_in_edit_mode_after_fullscreen_preview, position_restored)
-
-
-if __name__ == "__main__":
-    from editor_python_test_tools.utils import Report
-    Report.start_test(
-        EditorWorkflow_EditorCameraReturnsToOriginalPositionWhenLeavingFullscreenGameMode)

+ 0 - 4
AutomatedTesting/Gem/PythonTests/editor/TestSuite_Main.py

@@ -114,13 +114,9 @@ class TestAutomation(EditorTestSuite):
     class test_EditorWorkflow_EditorCameraReturnsToOriginalPositionWhenTogglingBeThisCamera(EditorSingleTest):
         from .EditorScripts import EditorWorkflow_EditorCameraReturnsToOriginalPositionWhenTogglingBeThisCamera as test_module
 
-    @pytest.mark.skip(reason="https://github.com/o3de/o3de/issues/11238")
     class test_EditorWorkflow_EditorCameraReturnsToOriginalPositionWhenLeavingGameMode(EditorSingleTest):
         from .EditorScripts import EditorWorkflow_EditorCameraReturnsToOriginalPositionWhenLeavingGameMode as test_module
 
-    class test_EditorWorkflow_EditorCameraReturnsToOriginalPositionWhenLeavingFullscreenGameMode(EditorSingleTest):
-        from .EditorScripts import EditorWorkflow_EditorCameraReturnsToOriginalPositionWhenLeavingFullscreenGameMode as test_module
-
     class test_EditorWorkflow_EditorCameraTransformCanBeModifiedWhileInBeThisCamera(EditorSingleTest):
         from .EditorScripts import EditorWorkflow_EditorCameraTransformCanBeModifiedWhileInBeThisCamera as test_module
 

+ 19 - 17
Code/Editor/EditorViewportWidget.cpp

@@ -603,8 +603,6 @@ void EditorViewportWidget::OnEditorNotifyEvent(EEditorNotifyEvent event)
                 }
 
                 m_preGameModeViewTM = GetViewTM();
-                SetViewTM(Matrix34::CreateIdentity());
-
                 // this should only occur for the main viewport and no others.
                 ShowCursor();
 
@@ -893,13 +891,6 @@ void EditorViewportWidget::SetViewportId(int id)
     layout->setContentsMargins(QMargins());
     layout->addWidget(m_renderViewport);
 
-    UpdateScene();
-
-    if (m_pPrimaryViewport == this)
-    {
-        SetAsActiveViewport();
-    }
-
     m_renderViewport->GetControllerList()->Add(AZStd::make_shared<SandboxEditor::ViewportManipulatorController>());
 
     m_editorModularViewportCameraComposer =
@@ -908,6 +899,13 @@ void EditorViewportWidget::SetViewportId(int id)
 
     m_editorViewportSettings.Connect(AzFramework::ViewportId(id));
 
+    UpdateScene();
+
+    if (m_pPrimaryViewport == this)
+    {
+        SetAsActiveViewport();
+    }
+
     m_editorViewportSettingsCallbacks = SandboxEditor::CreateEditorViewportSettingsCallbacks();
 
     m_gridShowingHandler = SandboxEditor::GridShowingChangedEvent::Handler(
@@ -915,7 +913,8 @@ void EditorViewportWidget::SetViewportId(int id)
         {
             AzToolsFramework::ViewportInteraction::ViewportSettingsNotificationBus::Event(
                 id, &AzToolsFramework::ViewportInteraction::ViewportSettingsNotificationBus::Events::OnGridShowingChanged, showing);
-        });
+        }
+    );
     m_editorViewportSettingsCallbacks->SetGridShowingChangedEvent(m_gridShowingHandler);
 
     m_gridSnappingHandler = SandboxEditor::GridSnappingChangedEvent::Handler(
@@ -923,7 +922,8 @@ void EditorViewportWidget::SetViewportId(int id)
         {
             AzToolsFramework::ViewportInteraction::ViewportSettingsNotificationBus::Event(
                 id, &AzToolsFramework::ViewportInteraction::ViewportSettingsNotificationBus::Events::OnGridSnappingChanged, snapping);
-        });
+        }
+    );
     m_editorViewportSettingsCallbacks->SetGridSnappingChangedEvent(m_gridSnappingHandler);
 
     m_angleSnappingHandler = SandboxEditor::AngleSnappingChangedEvent::Handler(
@@ -931,7 +931,8 @@ void EditorViewportWidget::SetViewportId(int id)
         {
             AzToolsFramework::ViewportInteraction::ViewportSettingsNotificationBus::Event(
                 id, &AzToolsFramework::ViewportInteraction::ViewportSettingsNotificationBus::Events::OnAngleSnappingChanged, snapping);
-        });
+        }
+    );
     m_editorViewportSettingsCallbacks->SetAngleSnappingChangedEvent(m_angleSnappingHandler);
 
     m_cameraSpeedScaleHandler = SandboxEditor::CameraSpeedScaleChangedEvent::Handler(
@@ -939,7 +940,8 @@ void EditorViewportWidget::SetViewportId(int id)
         {
             AzToolsFramework::ViewportInteraction::ViewportSettingsNotificationBus::Event(
                 id, &AzToolsFramework::ViewportInteraction::ViewportSettingsNotificationBus::Events::OnCameraSpeedScaleChanged, scale);
-        });
+        }
+    );
     m_editorViewportSettingsCallbacks->SetCameraSpeedScaleChangedEvent(m_cameraSpeedScaleHandler);
 
     m_perspectiveChangeHandler = SandboxEditor::PerspectiveChangedEvent::Handler(
@@ -960,14 +962,16 @@ void EditorViewportWidget::SetViewportId(int id)
         [this]([[maybe_unused]] float nearPlaneDistance)
         {
             OnDefaultCameraNearFarChanged();
-        });
+        }
+    );
     m_editorViewportSettingsCallbacks->SetNearPlaneDistanceChangedEvent(m_nearPlaneDistanceHandler);
 
     m_farPlaneDistanceHandler = SandboxEditor::NearFarPlaneChangedEvent::Handler(
         [this]([[maybe_unused]] float farPlaneDistance)
         {
             OnDefaultCameraNearFarChanged();
-        });
+        }
+    );
     m_editorViewportSettingsCallbacks->SetFarPlaneDistanceChangedEvent(m_farPlaneDistanceHandler);
 }
 
@@ -2089,8 +2093,6 @@ void EditorViewportWidget::OnStartPlayInEditor()
 
 void EditorViewportWidget::OnStopPlayInEditor()
 {
-    PopViewGroupForDefaultContext();
-
     m_playInEditorState = PlayInEditorState::Stopping;
 }
 

+ 0 - 8
Code/Editor/PythonEditorFuncs.cpp

@@ -31,7 +31,6 @@
 #include "Objects/BaseObject.h"
 #include "Commands/CommandManager.h"
 
-AZ_CVAR_EXTERNED(bool, ed_previewGameInFullscreen_once);
 
 namespace
 {
@@ -167,12 +166,6 @@ namespace
         }
     }
 
-    void PyEnterGameModeFullscreen()
-    {
-        ed_previewGameInFullscreen_once = true;
-        PyEnterGameMode();
-    }
-
     void PyExitGameMode()
     {
         if (GetIEditor()->GetGameEngine())
@@ -1098,7 +1091,6 @@ namespace AzToolsFramework
             addLegacyGeneral(behaviorContext->Method("run_console", PyRunConsole, nullptr, "Runs a console command."));
 
             addLegacyGeneral(behaviorContext->Method("enter_game_mode", PyEnterGameMode, nullptr, "Enters the editor game mode."));
-            addLegacyGeneral(behaviorContext->Method("enter_game_mode_fullscreen", PyEnterGameModeFullscreen, nullptr, "Enters the editor game mode in fullscreen."));
             addLegacyGeneral(behaviorContext->Method("is_in_game_mode", PyIsInGameMode, nullptr, "Queries if it's in the game mode or not."));
             addLegacyGeneral(behaviorContext->Method("exit_game_mode", PyExitGameMode, nullptr, "Exits the editor game mode."));