summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/q3dwindow.cpp
diff options
context:
space:
mode:
authorKeränen Pasi <pasi.keranen@digia.com>2013-09-23 11:50:09 +0300
committerPasi Keränen <pasi.keranen@digia.com>2013-09-23 13:08:30 +0300
commit9f8f25a8b526d636fccf70c9f782b714da865983 (patch)
tree284a56a45d61bf5e37d5f2e520597b541d6dd152 /src/datavisualization/engine/q3dwindow.cpp
parent213935d072b20578f54b4c72db57344a50578a70 (diff)
Added device pixel ratio change detection to widgets
Change-Id: I7c0677c5e6b862589150d1be8a5c5a8a0e5b4445 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/engine/q3dwindow.cpp')
-rw-r--r--src/datavisualization/engine/q3dwindow.cpp31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/datavisualization/engine/q3dwindow.cpp b/src/datavisualization/engine/q3dwindow.cpp
index 34bbdf05..16202179 100644
--- a/src/datavisualization/engine/q3dwindow.cpp
+++ b/src/datavisualization/engine/q3dwindow.cpp
@@ -18,7 +18,7 @@
#include "q3dwindow.h"
#include "q3dwindow_p.h"
-
+#include "abstract3dcontroller_p.h"
#include <QGuiApplication>
#include <QOpenGLContext>
@@ -93,8 +93,33 @@ Q3DWindow::~Q3DWindow()
/*!
* \internal
*/
+void Q3DWindow::setVisualController(Abstract3DController *controller)
+{
+ d_ptr->m_visualController = controller;
+}
+
+/*!
+ * \internal
+ */
+void Q3DWindow::handleDevicePixelRatioChange()
+{
+ if (QWindow::devicePixelRatio() == d_ptr->m_devicePixelRatio || !d_ptr->m_visualController)
+ return;
+
+ // Device pixel ratio changed, resize accordingly and inform the scene
+ d_ptr->m_devicePixelRatio = QWindow::devicePixelRatio();
+ d_ptr->m_visualController->updateDevicePixelRatio(d_ptr->m_devicePixelRatio);
+
+}
+
+/*!
+ * \internal
+ */
void Q3DWindow::render()
{
+ handleDevicePixelRatioChange();
+ d_ptr->m_visualController->synchDataToRenderer();
+ d_ptr->m_visualController->render();
}
/*!
@@ -153,7 +178,9 @@ void Q3DWindow::renderNow()
Q3DWindowPrivate::Q3DWindowPrivate(Q3DWindow *q)
: q_ptr(q),
m_updatePending(false),
- m_context(new QOpenGLContext(q))
+ m_context(new QOpenGLContext(q)),
+ m_visualController(0),
+ m_devicePixelRatio(1.f)
{
}