diff options
author | Keränen Pasi <pasi.keranen@digia.com> | 2013-09-23 11:50:09 +0300 |
---|---|---|
committer | Pasi Keränen <pasi.keranen@digia.com> | 2013-09-23 13:08:30 +0300 |
commit | 9f8f25a8b526d636fccf70c9f782b714da865983 (patch) | |
tree | 284a56a45d61bf5e37d5f2e520597b541d6dd152 /src/datavisualization/engine/q3dwindow.cpp | |
parent | 213935d072b20578f54b4c72db57344a50578a70 (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.cpp | 31 |
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) { } |