From f6768ea8801e1e246a37080b3684686860c2268c Mon Sep 17 00:00:00 2001 From: hershey5045 <43485729+hershey5045@users.noreply.github.com> Date: Tue, 22 Jun 2021 12:56:38 -0700 Subject: [PATCH] Fix camera issue causing it to block component property changes in editor (#1466) --- Gems/Atom/RPI/Code/Source/RPI.Public/View.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/View.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/View.cpp index 24dfcb7097..4f62225f81 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/View.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/View.cpp @@ -160,13 +160,19 @@ namespace AZ 0,0,1,0, 0,0,0,1 }; yUpWorld.StoreToRowMajorFloat12(viewToWorldMatrixRaw); + const AZ::Matrix4x4 prevViewToWorldMatrix = m_viewToWorldMatrix; m_viewToWorldMatrix = AZ::Matrix4x4::CreateFromRowMajorFloat16(viewToWorldMatrixRaw); m_worldToViewMatrix = m_viewToWorldMatrix.GetInverseFast(); m_worldToClipMatrix = m_viewToClipMatrix * m_worldToViewMatrix; - m_onWorldToViewMatrixChange.Signal(m_worldToViewMatrix); + // Only signal an update when there is a change, otherwise this might block + // user input from changing the value. + if (!prevViewToWorldMatrix.IsClose(m_viewToWorldMatrix)) + { + m_onWorldToViewMatrixChange.Signal(m_worldToViewMatrix); + } m_onWorldToClipMatrixChange.Signal(m_worldToClipMatrix); InvalidateSrg();