Merge branch 'development' of https://github.com/o3de/o3de into cgalvan/FixedTrackViewNodeCrash
This commit is contained in:
+10
-2
@@ -3910,11 +3910,19 @@ void CCryEditApp::OpenLUAEditor(const char* files)
|
||||
AZStd::string_view exePath;
|
||||
AZ::ComponentApplicationBus::BroadcastResult(exePath, &AZ::ComponentApplicationRequests::GetExecutableFolder);
|
||||
|
||||
AZStd::string process = AZStd::string::format("\"%.*s" AZ_CORRECT_FILESYSTEM_SEPARATOR_STRING "LuaIDE"
|
||||
#if defined(AZ_PLATFORM_LINUX)
|
||||
// On Linux platforms, launching a process is not done through a shell and its arguments are passed in
|
||||
// separately. There is no need to wrap the process path in case of spaces in the path
|
||||
constexpr const char* argumentQuoteString = "";
|
||||
#else
|
||||
constexpr const char* argumentQuoteString = "\"";
|
||||
#endif
|
||||
|
||||
AZStd::string process = AZStd::string::format("%s%.*s" AZ_CORRECT_FILESYSTEM_SEPARATOR_STRING "LuaIDE"
|
||||
#if defined(AZ_PLATFORM_WINDOWS)
|
||||
".exe"
|
||||
#endif
|
||||
"\"", aznumeric_cast<int>(exePath.size()), exePath.data());
|
||||
"%s", argumentQuoteString, aznumeric_cast<int>(exePath.size()), exePath.data(), argumentQuoteString);
|
||||
|
||||
AZStd::string processArgs = AZStd::string::format("%s -engine-path \"%s\"", args.c_str(), engineRoot);
|
||||
StartProcessDetached(process.c_str(), processArgs.c_str());
|
||||
|
||||
@@ -1047,7 +1047,7 @@ static bool TryRenameFile(const QString& oldPath, const QString& newPath, int re
|
||||
|
||||
bool CCryEditDoc::SaveLevel(const QString& filename)
|
||||
{
|
||||
AZ_PROFILE_FUNCTION(AzToolsFramework);
|
||||
AZ_PROFILE_FUNCTION(Editor);
|
||||
QWaitCursor wait;
|
||||
|
||||
CAutoCheckOutDialogEnableForAll enableForAll;
|
||||
@@ -1067,7 +1067,7 @@ bool CCryEditDoc::SaveLevel(const QString& filename)
|
||||
|
||||
{
|
||||
|
||||
AZ_PROFILE_SCOPE(AzToolsFramework, "CCryEditDoc::SaveLevel BackupBeforeSave");
|
||||
AZ_PROFILE_SCOPE(Editor, "CCryEditDoc::SaveLevel BackupBeforeSave");
|
||||
BackupBeforeSave();
|
||||
}
|
||||
|
||||
@@ -1178,7 +1178,7 @@ bool CCryEditDoc::SaveLevel(const QString& filename)
|
||||
CPakFile pakFile;
|
||||
|
||||
{
|
||||
AZ_PROFILE_SCOPE(AzToolsFramework, "CCryEditDoc::SaveLevel Open PakFile");
|
||||
AZ_PROFILE_SCOPE(Editor, "CCryEditDoc::SaveLevel Open PakFile");
|
||||
if (!pakFile.Open(tempSaveFile.toUtf8().data(), false))
|
||||
{
|
||||
gEnv->pLog->LogWarning("Unable to open pack file %s for writing", tempSaveFile.toUtf8().data());
|
||||
@@ -1209,7 +1209,7 @@ bool CCryEditDoc::SaveLevel(const QString& filename)
|
||||
|
||||
AZ::IO::ByteContainerStream<AZStd::vector<char>> entitySaveStream(&entitySaveBuffer);
|
||||
{
|
||||
AZ_PROFILE_SCOPE(AzToolsFramework, "CCryEditDoc::SaveLevel Save Entities To Stream");
|
||||
AZ_PROFILE_SCOPE(Editor, "CCryEditDoc::SaveLevel Save Entities To Stream");
|
||||
EBUS_EVENT_RESULT(
|
||||
savedEntities, AzToolsFramework::EditorEntityContextRequestBus, SaveToStreamForEditor, entitySaveStream, layerEntities,
|
||||
instancesInLayers);
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
|
||||
|
||||
#pragma once
|
||||
#ifndef CRYINCLUDE_EDITOR_EDITORDEFS_H
|
||||
#define CRYINCLUDE_EDITOR_EDITORDEFS_H
|
||||
|
||||
#include <AzCore/PlatformDef.h>
|
||||
|
||||
@@ -186,5 +184,3 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#endif // CRYINCLUDE_EDITOR_EDITORDEFS_H
|
||||
|
||||
@@ -33,6 +33,7 @@ namespace SandboxEditor
|
||||
constexpr AZStd::string_view CameraTranslateSmoothnessSetting = "/Amazon/Preferences/Editor/Camera/TranslateSmoothness";
|
||||
constexpr AZStd::string_view CameraTranslateSmoothingSetting = "/Amazon/Preferences/Editor/Camera/TranslateSmoothing";
|
||||
constexpr AZStd::string_view CameraRotateSmoothingSetting = "/Amazon/Preferences/Editor/Camera/RotateSmoothing";
|
||||
constexpr AZStd::string_view CameraCaptureCursorLookSetting = "/Amazon/Preferences/Editor/Camera/CaptureCursorLook";
|
||||
constexpr AZStd::string_view CameraTranslateForwardIdSetting = "/Amazon/Preferences/Editor/Camera/CameraTranslateForwardId";
|
||||
constexpr AZStd::string_view CameraTranslateBackwardIdSetting = "/Amazon/Preferences/Editor/Camera/CameraTranslateBackwardId";
|
||||
constexpr AZStd::string_view CameraTranslateLeftIdSetting = "/Amazon/Preferences/Editor/Camera/CameraTranslateLeftId";
|
||||
@@ -60,7 +61,7 @@ namespace SandboxEditor
|
||||
AZStd::remove_cvref_t<T> GetRegistry(const AZStd::string_view setting, T&& defaultValue)
|
||||
{
|
||||
AZStd::remove_cvref_t<T> value = AZStd::forward<T>(defaultValue);
|
||||
if (auto* registry = AZ::SettingsRegistry::Get())
|
||||
if (const auto* registry = AZ::SettingsRegistry::Get())
|
||||
{
|
||||
registry->Get(value, setting);
|
||||
}
|
||||
@@ -281,6 +282,16 @@ namespace SandboxEditor
|
||||
SetRegistry(CameraTranslateSmoothingSetting, enabled);
|
||||
}
|
||||
|
||||
bool CameraCaptureCursorForLook()
|
||||
{
|
||||
return GetRegistry(CameraCaptureCursorLookSetting, true);
|
||||
}
|
||||
|
||||
void SetCameraCaptureCursorForLook(const bool capture)
|
||||
{
|
||||
SetRegistry(CameraCaptureCursorLookSetting, capture);
|
||||
}
|
||||
|
||||
AzFramework::InputChannelId CameraTranslateForwardChannelId()
|
||||
{
|
||||
return AzFramework::InputChannelId(
|
||||
|
||||
@@ -86,6 +86,9 @@ namespace SandboxEditor
|
||||
SANDBOX_API bool CameraTranslateSmoothingEnabled();
|
||||
SANDBOX_API void SetCameraTranslateSmoothingEnabled(bool enabled);
|
||||
|
||||
SANDBOX_API bool CameraCaptureCursorForLook();
|
||||
SANDBOX_API void SetCameraCaptureCursorForLook(bool capture);
|
||||
|
||||
SANDBOX_API AzFramework::InputChannelId CameraTranslateForwardChannelId();
|
||||
SANDBOX_API void SetCameraTranslateForwardChannelId(AZStd::string_view cameraTranslateForwardId);
|
||||
|
||||
|
||||
@@ -104,7 +104,6 @@
|
||||
|
||||
AZ_CVAR(
|
||||
bool, ed_visibility_logTiming, false, nullptr, AZ::ConsoleFunctorFlags::Null, "Output the timing of the new IVisibilitySystem query");
|
||||
AZ_CVAR(bool, ed_showCursorCameraLook, true, nullptr, AZ::ConsoleFunctorFlags::Null, "Show the cursor when using free look with the new camera system");
|
||||
|
||||
EditorViewportWidget* EditorViewportWidget::m_pPrimaryViewport = nullptr;
|
||||
|
||||
@@ -394,8 +393,6 @@ void EditorViewportWidget::UpdateContent(int flags)
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void EditorViewportWidget::Update()
|
||||
{
|
||||
FUNCTION_PROFILER(GetIEditor()->GetSystem(), PROFILE_EDITOR);
|
||||
|
||||
if (Editor::EditorQtApplication::instance()->isMovingOrResizing())
|
||||
{
|
||||
return;
|
||||
@@ -957,15 +954,11 @@ AzFramework::CameraState EditorViewportWidget::GetCameraState()
|
||||
|
||||
AZ::Vector3 EditorViewportWidget::PickTerrain(const AzFramework::ScreenPoint& point)
|
||||
{
|
||||
FUNCTION_PROFILER(GetIEditor()->GetSystem(), PROFILE_EDITOR);
|
||||
|
||||
return LYVec3ToAZVec3(ViewToWorld(AzToolsFramework::ViewportInteraction::QPointFromScreenPoint(point), nullptr, true));
|
||||
}
|
||||
|
||||
AZ::EntityId EditorViewportWidget::PickEntity(const AzFramework::ScreenPoint& point)
|
||||
{
|
||||
FUNCTION_PROFILER(GetIEditor()->GetSystem(), PROFILE_EDITOR);
|
||||
|
||||
PreWidgetRendering();
|
||||
|
||||
AZ::EntityId entityId;
|
||||
@@ -992,8 +985,6 @@ float EditorViewportWidget::TerrainHeight(const AZ::Vector2& position)
|
||||
|
||||
void EditorViewportWidget::FindVisibleEntities(AZStd::vector<AZ::EntityId>& visibleEntitiesOut)
|
||||
{
|
||||
FUNCTION_PROFILER(GetIEditor()->GetSystem(), PROFILE_EDITOR);
|
||||
|
||||
visibleEntitiesOut.assign(m_entityVisibilityQuery.Begin(), m_entityVisibilityQuery.End());
|
||||
}
|
||||
|
||||
@@ -1079,13 +1070,19 @@ AZStd::shared_ptr<AtomToolsFramework::ModularViewportCameraController> CreateMod
|
||||
{
|
||||
const auto hideCursor = [viewportId]
|
||||
{
|
||||
AzToolsFramework::ViewportInteraction::ViewportMouseCursorRequestBus::Event(
|
||||
viewportId, &AzToolsFramework::ViewportInteraction::ViewportMouseCursorRequestBus::Events::BeginCursorCapture);
|
||||
if (SandboxEditor::CameraCaptureCursorForLook())
|
||||
{
|
||||
AzToolsFramework::ViewportInteraction::ViewportMouseCursorRequestBus::Event(
|
||||
viewportId, &AzToolsFramework::ViewportInteraction::ViewportMouseCursorRequestBus::Events::BeginCursorCapture);
|
||||
}
|
||||
};
|
||||
const auto showCursor = [viewportId]
|
||||
{
|
||||
AzToolsFramework::ViewportInteraction::ViewportMouseCursorRequestBus::Event(
|
||||
viewportId, &AzToolsFramework::ViewportInteraction::ViewportMouseCursorRequestBus::Events::EndCursorCapture);
|
||||
if (SandboxEditor::CameraCaptureCursorForLook())
|
||||
{
|
||||
AzToolsFramework::ViewportInteraction::ViewportMouseCursorRequestBus::Event(
|
||||
viewportId, &AzToolsFramework::ViewportInteraction::ViewportMouseCursorRequestBus::Events::EndCursorCapture);
|
||||
}
|
||||
};
|
||||
|
||||
auto firstPersonRotateCamera = AZStd::make_shared<AzFramework::RotateCameraInput>(SandboxEditor::CameraFreeLookChannelId());
|
||||
@@ -1094,12 +1091,10 @@ AZStd::shared_ptr<AtomToolsFramework::ModularViewportCameraController> CreateMod
|
||||
return SandboxEditor::CameraRotateSpeed();
|
||||
};
|
||||
|
||||
if (!ed_showCursorCameraLook)
|
||||
{
|
||||
// default behavior is to hide the cursor but this can be disabled (useful for remote desktop)
|
||||
firstPersonRotateCamera->SetActivationBeganFn(hideCursor);
|
||||
firstPersonRotateCamera->SetActivationEndedFn(showCursor);
|
||||
}
|
||||
// default behavior is to hide the cursor but this can be disabled (useful for remote desktop)
|
||||
// note: See CaptureCursorLook in the Settings Registry
|
||||
firstPersonRotateCamera->SetActivationBeganFn(hideCursor);
|
||||
firstPersonRotateCamera->SetActivationEndedFn(showCursor);
|
||||
|
||||
auto firstPersonPanCamera =
|
||||
AZStd::make_shared<AzFramework::PanCameraInput>(SandboxEditor::CameraFreePanChannelId(), AzFramework::LookPan);
|
||||
|
||||
@@ -6,9 +6,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#ifndef CRYINCLUDE_EDITOR_IEDITOR_H
|
||||
#define CRYINCLUDE_EDITOR_IEDITOR_H
|
||||
#pragma once
|
||||
|
||||
#ifdef PLUGIN_EXPORTS
|
||||
@@ -25,6 +22,7 @@
|
||||
#include <WinWidgetId.h>
|
||||
|
||||
#include <AzCore/Component/EntityId.h>
|
||||
#include <AzCore/Debug/Budget.h>
|
||||
|
||||
class QMenu;
|
||||
|
||||
@@ -738,4 +736,5 @@ struct IInitializeUIInfo
|
||||
virtual void SetInfoText(const char* text) = 0;
|
||||
};
|
||||
|
||||
#endif // CRYINCLUDE_EDITOR_IEDITOR_H
|
||||
AZ_DECLARE_BUDGET(Editor);
|
||||
|
||||
|
||||
@@ -405,8 +405,6 @@ void CEditorImpl::Update()
|
||||
// Make sure this is not called recursively
|
||||
m_bUpdates = false;
|
||||
|
||||
FUNCTION_PROFILER(GetSystem(), PROFILE_EDITOR);
|
||||
|
||||
//@FIXME: Restore this latter.
|
||||
//if (GetGameEngine() && GetGameEngine()->IsLevelLoaded())
|
||||
{
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
*/
|
||||
|
||||
#include <AtomToolsFramework/Viewport/ModularViewportCameraController.h>
|
||||
#include <AzCore/Settings/SettingsRegistryImpl.h>
|
||||
#include <AzFramework/Viewport/ViewportControllerList.h>
|
||||
#include <AzToolsFramework/Input/QtEventToAzInputManager.h>
|
||||
#include <AzToolsFramework/UnitTest/AzToolsFrameworkTestHelpers.h>
|
||||
@@ -95,10 +96,16 @@ namespace UnitTest
|
||||
m_controllerList->RegisterViewportContext(TestViewportId);
|
||||
|
||||
m_inputChannelMapper = AZStd::make_unique<AzToolsFramework::QtEventToAzInputMapper>(m_rootWidget.get(), TestViewportId);
|
||||
|
||||
m_settingsRegistry = AZStd::make_unique<AZ::SettingsRegistryImpl>();
|
||||
AZ::SettingsRegistry::Register(m_settingsRegistry.get());
|
||||
}
|
||||
|
||||
void TearDown() override
|
||||
{
|
||||
AZ::SettingsRegistry::Unregister(m_settingsRegistry.get());
|
||||
m_settingsRegistry.reset();
|
||||
|
||||
m_inputChannelMapper.reset();
|
||||
|
||||
m_controllerList->UnregisterViewportContext(TestViewportId);
|
||||
@@ -170,7 +177,7 @@ namespace UnitTest
|
||||
void RepeatDiagonalMouseMovements(const AZStd::function<float()>& deltaTimeFn)
|
||||
{
|
||||
// move to the center of the screen
|
||||
auto start = QPoint(WidgetSize.width() / 2, WidgetSize.height() / 2);
|
||||
const auto start = QPoint(WidgetSize.width() / 2, WidgetSize.height() / 2);
|
||||
MouseMove(m_rootWidget.get(), start, QPoint(0, 0));
|
||||
m_controllerList->UpdateViewport({ TestViewportId, AzFramework::FloatSeconds(deltaTimeFn()), AZ::ScriptTimePoint() });
|
||||
|
||||
@@ -204,12 +211,15 @@ namespace UnitTest
|
||||
::testing::NiceMock<MockWindowRequests> m_mockWindowRequests;
|
||||
ViewportMouseCursorRequestImpl m_viewportMouseCursorRequests;
|
||||
AtomToolsFramework::ModularCameraViewportContext* m_cameraViewportContextView = nullptr;
|
||||
AZStd::unique_ptr<AZ::SettingsRegistryInterface> m_settingsRegistry;
|
||||
};
|
||||
|
||||
const AzFramework::ViewportId ModularViewportCameraControllerFixture::TestViewportId = AzFramework::ViewportId(0);
|
||||
|
||||
TEST_F(ModularViewportCameraControllerFixture, MouseMovementDoesNotAccumulateExcessiveDriftInModularViewportCameraWithVaryingDeltaTime)
|
||||
{
|
||||
SandboxEditor::SetCameraCaptureCursorForLook(false);
|
||||
|
||||
// Given
|
||||
PrepareCollaborators();
|
||||
|
||||
@@ -242,6 +252,8 @@ namespace UnitTest
|
||||
ModularViewportCameraControllerDeltaTimeParamFixture,
|
||||
MouseMovementDoesNotAccumulateExcessiveDriftInModularViewportCameraWithFixedDeltaTime)
|
||||
{
|
||||
SandboxEditor::SetCameraCaptureCursorForLook(false);
|
||||
|
||||
// Given
|
||||
PrepareCollaborators();
|
||||
|
||||
@@ -263,4 +275,92 @@ namespace UnitTest
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
All, ModularViewportCameraControllerDeltaTimeParamFixture, testing::Values(1.0f / 60.0f, 1.0f / 50.0f, 1.0f / 30.0f));
|
||||
|
||||
TEST_F(ModularViewportCameraControllerFixture, MouseMovementOrientatesCameraWhenCursorIsCaptured)
|
||||
{
|
||||
// Given
|
||||
PrepareCollaborators();
|
||||
// ensure cursor is captured
|
||||
SandboxEditor::SetCameraCaptureCursorForLook(true);
|
||||
|
||||
const float deltaTime = 1.0f / 60.0f;
|
||||
|
||||
// When
|
||||
// move to the center of the screen
|
||||
auto start = QPoint(WidgetSize.width() / 2, WidgetSize.height() / 2);
|
||||
MouseMove(m_rootWidget.get(), start, QPoint(0, 0));
|
||||
m_controllerList->UpdateViewport({ TestViewportId, AzFramework::FloatSeconds(deltaTime), AZ::ScriptTimePoint() });
|
||||
|
||||
const auto mouseDelta = QPoint(5, 0);
|
||||
|
||||
// initial movement to begin the camera behavior
|
||||
MousePressAndMove(m_rootWidget.get(), start, mouseDelta, Qt::MouseButton::RightButton);
|
||||
m_controllerList->UpdateViewport({ TestViewportId, AzFramework::FloatSeconds(deltaTime), AZ::ScriptTimePoint() });
|
||||
|
||||
// move the cursor right
|
||||
for (int i = 0; i < 50; ++i)
|
||||
{
|
||||
MousePressAndMove(m_rootWidget.get(), start + mouseDelta, mouseDelta, Qt::MouseButton::RightButton);
|
||||
m_controllerList->UpdateViewport({ TestViewportId, AzFramework::FloatSeconds(deltaTime), AZ::ScriptTimePoint() });
|
||||
}
|
||||
|
||||
// move the cursor left (do an extra iteration moving left to account for the initial dead-zone)
|
||||
for (int i = 0; i < 51; ++i)
|
||||
{
|
||||
MousePressAndMove(m_rootWidget.get(), start + mouseDelta, -mouseDelta, Qt::MouseButton::RightButton);
|
||||
m_controllerList->UpdateViewport({ TestViewportId, AzFramework::FloatSeconds(deltaTime), AZ::ScriptTimePoint() });
|
||||
}
|
||||
|
||||
QTest::mouseRelease(m_rootWidget.get(), Qt::MouseButton::RightButton, Qt::KeyboardModifier::NoModifier, start + mouseDelta);
|
||||
m_controllerList->UpdateViewport({ TestViewportId, AzFramework::FloatSeconds(deltaTime), AZ::ScriptTimePoint() });
|
||||
|
||||
// Then
|
||||
// retrieve the amount of yaw rotation
|
||||
const AZ::Quaternion cameraRotation = m_cameraViewportContextView->GetCameraTransform().GetRotation();
|
||||
const auto eulerAngles = AzFramework::EulerAngles(AZ::Matrix3x3::CreateFromQuaternion(cameraRotation));
|
||||
|
||||
// camera should be back at the center (no yaw)
|
||||
using ::testing::FloatNear;
|
||||
EXPECT_THAT(eulerAngles.GetZ(), FloatNear(0.0f, 0.001f));
|
||||
|
||||
// Clean-up
|
||||
HaltCollaborators();
|
||||
}
|
||||
|
||||
TEST_F(ModularViewportCameraControllerFixture, CameraDoesNotContinueToRotateGivenNoInputWhenCaptured)
|
||||
{
|
||||
// Given
|
||||
PrepareCollaborators();
|
||||
SandboxEditor::SetCameraCaptureCursorForLook(true);
|
||||
|
||||
const float deltaTime = 1.0f / 60.0f;
|
||||
|
||||
// When
|
||||
// move to the center of the screen
|
||||
auto start = QPoint(WidgetSize.width() / 2, WidgetSize.height() / 2);
|
||||
MouseMove(m_rootWidget.get(), start, QPoint(0, 0));
|
||||
m_controllerList->UpdateViewport({ TestViewportId, AzFramework::FloatSeconds(deltaTime), AZ::ScriptTimePoint() });
|
||||
|
||||
// will move a small amount initially
|
||||
const auto mouseDelta = QPoint(5, 0);
|
||||
MousePressAndMove(m_rootWidget.get(), start, mouseDelta, Qt::MouseButton::RightButton);
|
||||
|
||||
// ensure further updates to not continue to rotate
|
||||
for (int i = 0; i < 50; ++i)
|
||||
{
|
||||
m_controllerList->UpdateViewport({ TestViewportId, AzFramework::FloatSeconds(deltaTime), AZ::ScriptTimePoint() });
|
||||
}
|
||||
|
||||
// Then
|
||||
// ensure the camera rotation is no longer the identity
|
||||
const AZ::Quaternion cameraRotation = m_cameraViewportContextView->GetCameraTransform().GetRotation();
|
||||
const auto eulerAngles = AzFramework::EulerAngles(AZ::Matrix3x3::CreateFromQuaternion(cameraRotation));
|
||||
|
||||
// initial amount of rotation after first mouse move
|
||||
using ::testing::FloatNear;
|
||||
EXPECT_THAT(eulerAngles.GetZ(), FloatNear(-0.025f, 0.001f));
|
||||
|
||||
// Clean-up
|
||||
HaltCollaborators();
|
||||
}
|
||||
} // namespace UnitTest
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
// To use the Andrew's algorithm in order to make convex hull from the points, this header is needed.
|
||||
#include "Util/GeometryUtil.h"
|
||||
|
||||
|
||||
namespace {
|
||||
QColor kLinkColorParent = QColor(0, 255, 255);
|
||||
QColor kLinkColorChild = QColor(0, 0, 255);
|
||||
@@ -1928,7 +1927,7 @@ bool CBaseObject::HitTestRectBounds(HitContext& hc, const AABB& box)
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
bool CBaseObject::HitTestRect(HitContext& hc)
|
||||
{
|
||||
AZ_PROFILE_FUNCTION(Entity);
|
||||
AZ_PROFILE_FUNCTION(Editor);
|
||||
|
||||
AABB box;
|
||||
|
||||
@@ -1965,7 +1964,7 @@ bool CBaseObject::HitHelperTest(HitContext& hc)
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
bool CBaseObject::HitHelperAtTest(HitContext& hc, const Vec3& pos)
|
||||
{
|
||||
AZ_PROFILE_FUNCTION(Entity);
|
||||
AZ_PROFILE_FUNCTION(Editor);
|
||||
|
||||
bool bResult = false;
|
||||
|
||||
|
||||
@@ -1261,10 +1261,6 @@ void DisplayContext::DrawTextureLabel(const Vec3& pos, int nWidth, int nHeight,
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void DisplayContext::Flush2D()
|
||||
{
|
||||
#ifndef PHYSICS_EDITOR
|
||||
FUNCTION_PROFILER(GetIEditor()->GetSystem(), PROFILE_EDITOR);
|
||||
#endif
|
||||
|
||||
if (m_textureLabels.empty())
|
||||
{
|
||||
return;
|
||||
|
||||
@@ -497,7 +497,7 @@ bool CEntityObject::HitTestRect(HitContext& hc)
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
int CEntityObject::MouseCreateCallback(CViewport* view, EMouseEvent event, QPoint& point, int flags)
|
||||
{
|
||||
AZ_PROFILE_FUNCTION(Editor);
|
||||
AZ_PROFILE_FUNCTION(Entity);
|
||||
|
||||
if (event == eMouseMove || event == eMouseLDown)
|
||||
{
|
||||
|
||||
@@ -18,8 +18,6 @@
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void CGizmoManager::Display(DisplayContext& dc)
|
||||
{
|
||||
FUNCTION_PROFILER(GetIEditor()->GetSystem(), PROFILE_EDITOR);
|
||||
|
||||
AABB bbox;
|
||||
std::vector<CGizmo*> todelete;
|
||||
for (Gizmos::iterator it = m_gizmos.begin(); it != m_gizmos.end(); ++it)
|
||||
|
||||
@@ -37,7 +37,6 @@ AZ_CVAR(
|
||||
bool, ed_visibility_use, true, nullptr, AZ::ConsoleFunctorFlags::Null,
|
||||
"Enable/disable using the new IVisibilitySystem for Entity visibility determination");
|
||||
|
||||
|
||||
/*!
|
||||
* Class Description used for object templates.
|
||||
* This description filled from Xml template files.
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
#include "Objects/ObjectLoader.h"
|
||||
#include "Objects/SelectionGroup.h"
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// CUndoBaseObjectNew implementation.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
#include <QMessageBox>
|
||||
#include <QPushButton>
|
||||
#include <AzToolsFramework/API/EditorAssetSystemAPI.h>
|
||||
#include <AzCore/Debug/Profiler.h>
|
||||
#include <AzCore/std/string/conversions.h>
|
||||
#include <AzCore/std/smart_ptr/make_shared.h>
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <SceneAPI/SceneCore/Containers/Scene.h>
|
||||
#include <SceneAPI/SceneUI/CommonWidgets/OverlayWidget.h>
|
||||
#include <SceneAPI/SceneUI/SceneWidgets/ManifestWidget.h>
|
||||
#include <AzCore/Debug/Profiler.h>
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
|
||||
ImporterRootDisplay::ImporterRootDisplay(AZ::SerializeContext* serializeContext, QWidget* parent)
|
||||
|
||||
@@ -148,8 +148,6 @@ void QTopRendererWnd::UpdateContent(int flags)
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void QTopRendererWnd::Draw([[maybe_unused]] DisplayContext& dc)
|
||||
{
|
||||
FUNCTION_PROFILER(GetIEditor()->GetSystem(), PROFILE_EDITOR);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// Perform the rendering for this window
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -41,7 +41,6 @@ struct SPointSorter
|
||||
//===================================================================
|
||||
void ConvexHull2DGraham(std::vector<Vec3>& ptsOut, const std::vector<Vec3>& ptsIn)
|
||||
{
|
||||
FUNCTION_PROFILER(gEnv->pSystem, PROFILE_AI);
|
||||
const unsigned nPtsIn = ptsIn.size();
|
||||
if (nPtsIn < 3)
|
||||
{
|
||||
@@ -66,7 +65,6 @@ void ConvexHull2DGraham(std::vector<Vec3>& ptsOut, const std::vector<Vec3>& ptsI
|
||||
|
||||
std::swap(ptsSorted[0], ptsSorted[iBotRight]);
|
||||
{
|
||||
FRAME_PROFILER("SORT Graham", gEnv->pSystem, PROFILE_AI)
|
||||
std::sort(ptsSorted.begin() + 1, ptsSorted.end(), SPointSorter(ptsSorted[0]));
|
||||
}
|
||||
ptsSorted.erase(std::unique(ptsSorted.begin(), ptsSorted.end(), ptEqual), ptsSorted.end());
|
||||
@@ -196,7 +194,6 @@ inline bool PointSorterAndrew(const Vec3& lhs, const Vec3& rhs)
|
||||
//===================================================================
|
||||
SANDBOX_API void ConvexHull2DAndrew(std::vector<Vec3>& ptsOut, const std::vector<Vec3>& ptsIn)
|
||||
{
|
||||
FUNCTION_PROFILER(gEnv->pSystem, PROFILE_AI);
|
||||
const int n = (int)ptsIn.size();
|
||||
if (n < 3)
|
||||
{
|
||||
@@ -206,7 +203,6 @@ SANDBOX_API void ConvexHull2DAndrew(std::vector<Vec3>& ptsOut, const std::vector
|
||||
|
||||
std::vector<Vec3> P = ptsIn;
|
||||
{
|
||||
FRAME_PROFILER("SORT Andrew", gEnv->pSystem, PROFILE_AI)
|
||||
std::sort(P.begin(), P.end(), PointSorterAndrew);
|
||||
}
|
||||
|
||||
|
||||
@@ -400,7 +400,6 @@ void QtViewport::UpdateContent(int flags)
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void QtViewport::Update()
|
||||
{
|
||||
FUNCTION_PROFILER(GetIEditor()->GetSystem(), PROFILE_EDITOR);
|
||||
m_viewportUi.Update();
|
||||
|
||||
m_bAdvancedSelectMode = false;
|
||||
@@ -1436,9 +1435,6 @@ bool QtViewport::MouseCallback(EMouseEvent event, const QPoint& point, Qt::Keybo
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void QtViewport::ProcessRenderLisneters(DisplayContext& rstDisplayContext)
|
||||
{
|
||||
FUNCTION_PROFILER(GetIEditor()->GetSystem(), PROFILE_EDITOR);
|
||||
|
||||
|
||||
size_t nCount(0);
|
||||
size_t nTotal(0);
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <AzToolsFramework/ViewportSelection/EditorInteractionSystemViewportSelectionRequestBus.h>
|
||||
#include <AzFramework/Input/Devices/Mouse/InputDeviceMouse.h>
|
||||
#include <AzFramework/Input/Devices/Keyboard/InputDeviceKeyboard.h>
|
||||
#include <AzFramework/Input/Buses/Requests/InputSystemCursorRequestBus.h>
|
||||
#include <AzFramework/Viewport/ScreenGeometry.h>
|
||||
#include <AzCore/Script/ScriptTimePoint.h>
|
||||
|
||||
@@ -112,9 +113,9 @@ namespace SandboxEditor
|
||||
AzFramework::WindowRequestBus::EventResult(
|
||||
windowSize, event.m_windowHandle, &AzFramework::WindowRequestBus::Events::GetClientAreaSize);
|
||||
|
||||
auto screenPoint = AzFramework::ScreenPoint(
|
||||
static_cast<int>(position->m_normalizedPosition.GetX() * windowSize.m_width),
|
||||
static_cast<int>(position->m_normalizedPosition.GetY() * windowSize.m_height));
|
||||
const auto screenPoint = AzFramework::ScreenPoint(
|
||||
aznumeric_cast<int>(position->m_normalizedPosition.GetX() * windowSize.m_width),
|
||||
aznumeric_cast<int>(position->m_normalizedPosition.GetY() * windowSize.m_height));
|
||||
|
||||
m_mouseInteraction.m_mousePick.m_screenCoordinates = screenPoint;
|
||||
AZStd::optional<ProjectedViewportRay> ray;
|
||||
@@ -207,20 +208,27 @@ namespace SandboxEditor
|
||||
? &InteractionBus::Events::InternalHandleMouseManipulatorInteraction
|
||||
: &InteractionBus::Events::InternalHandleMouseViewportInteraction;
|
||||
|
||||
const auto mouseInteractionEvent = [mouseInteraction, event = eventType.value(), wheelDelta] {
|
||||
auto currentCursorState = AzFramework::SystemCursorState::Unknown;
|
||||
AzFramework::InputSystemCursorRequestBus::EventResult(
|
||||
currentCursorState, event.m_inputChannel.GetInputDevice().GetInputDeviceId(),
|
||||
&AzFramework::InputSystemCursorRequestBus::Events::GetSystemCursorState);
|
||||
|
||||
const auto mouseInteractionEvent = [mouseInteraction, event = eventType.value(), wheelDelta,
|
||||
cursorCaptured = currentCursorState == AzFramework::SystemCursorState::ConstrainedAndHidden]
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case MouseEvent::Up:
|
||||
case MouseEvent::Down:
|
||||
case MouseEvent::Move:
|
||||
case MouseEvent::DoubleClick:
|
||||
return MouseInteractionEvent(AZStd::move(mouseInteraction), event);
|
||||
return MouseInteractionEvent(AZStd::move(mouseInteraction), event, cursorCaptured);
|
||||
case MouseEvent::Wheel:
|
||||
return MouseInteractionEvent(AZStd::move(mouseInteraction), wheelDelta);
|
||||
}
|
||||
|
||||
AZ_Assert(false, "Unhandled MouseEvent");
|
||||
return MouseInteractionEvent(MouseInteraction{}, MouseEvent::Up);
|
||||
return MouseInteractionEvent(MouseInteraction{}, MouseEvent::Up, false);
|
||||
}();
|
||||
|
||||
InteractionBus::EventResult(
|
||||
|
||||
Reference in New Issue
Block a user