diff options
author | Jere Tuliniemi <jere.tuliniemi@qt.io> | 2020-03-19 15:04:04 +0200 |
---|---|---|
committer | Jere Tuliniemi <jere.tuliniemi@qt.io> | 2020-03-23 11:25:24 +0200 |
commit | 8d6dea2093309e0eabed5d24c341927c20aaa63b (patch) | |
tree | f69e46d9113d001a126fdbfb154019e1ef98f9c7 | |
parent | 8f912c9df0057be3b9783cc62e8a951a2ff60209 (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.cpp | 11 |
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; |