summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/surface3drenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualization/engine/surface3drenderer.cpp')
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp
index b0df81d1..46857130 100644
--- a/src/datavisualization/engine/surface3drenderer.cpp
+++ b/src/datavisualization/engine/surface3drenderer.cpp
@@ -456,8 +456,17 @@ QRect Surface3DRenderer::calculateSampleRect(const QSurfaceDataArray &array)
void Surface3DRenderer::updateScene(Q3DScene *scene)
{
// TODO: Move these to more suitable place e.g. controller should be controlling the viewports.
- scene->setSecondarySubViewport(m_sliceViewPort);
- scene->setPrimarySubViewport(m_mainViewPort);
+ float devicePixelRatio = scene->devicePixelRatio();
+ QRect logicalPrimarySubViewport = QRect(m_mainViewPort.x() / devicePixelRatio,
+ m_mainViewPort.y() / devicePixelRatio,
+ m_mainViewPort.width() / devicePixelRatio,
+ m_mainViewPort.height() / devicePixelRatio);
+ QRect logicalSecondarySubViewport = QRect(m_sliceViewPort.x() / devicePixelRatio,
+ m_sliceViewPort.y() / devicePixelRatio,
+ m_sliceViewPort.width() / devicePixelRatio,
+ m_sliceViewPort.height() / devicePixelRatio);
+ scene->setPrimarySubViewport(logicalPrimarySubViewport);
+ scene->setSecondarySubViewport(logicalSecondarySubViewport);
// Set initial camera position
// X must be 0 for rotation to work - we can use "setCameraRotation" for setting it later