summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJere Tuliniemi <jere.tuliniemi@qt.io>2020-03-19 15:04:04 +0200
committerJere Tuliniemi <jere.tuliniemi@qt.io>2020-03-23 11:25:24 +0200
commit8d6dea2093309e0eabed5d24c341927c20aaa63b (patch)
treef69e46d9113d001a126fdbfb154019e1ef98f9c7
parent8f912c9df0057be3b9783cc62e8a951a2ff60209 (diff)
Fix editor picking with dynamic resize
Task-number: QT3DS-4081 Change-Id: I7c2232adc79cd788aeae8ffeb442461e26dfcef7 Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r--src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderHelper.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderHelper.cpp b/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderHelper.cpp
index 4fef629..c28585e 100644
--- a/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderHelper.cpp
+++ b/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderHelper.cpp
@@ -300,7 +300,16 @@ Option<QT3DSVec2> SLayerRenderHelper::GetLayerMouseCoords(const QT3DSVec2 &inMou
// First invert the y so we are dealing with numbers in a normal coordinate space.
// Second, move into our layer's coordinate space
QT3DSVec2 correctCoords(inMouseCoords.x, inWindowDimensions.y - inMouseCoords.y);
- QT3DSVec2 theLocalMouse = m_Viewport.ToRectRelative(correctCoords);
+ QT3DSVec2 theLocalMouse;
+
+ if (m_Layer->m_DynamicResize) {
+ float widthRatio = m_Viewport.m_Width / m_originalViewport.m_Width;
+ float heightRatio = m_Viewport.m_Height / m_originalViewport.m_Height;
+ theLocalMouse = m_originalViewport.ToRectRelative(correctCoords);
+ theLocalMouse = QT3DSVec2(theLocalMouse.x * widthRatio, theLocalMouse.y * heightRatio);
+ } else {
+ theLocalMouse = m_Viewport.ToRectRelative(correctCoords);
+ }
QT3DSF32 theRenderRectWidth = m_Viewport.m_Width;
QT3DSF32 theRenderRectHeight = m_Viewport.m_Height;