From 7900e74edd42bdd7ee3ecf78be656dd8d3211607 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Thu, 26 Jan 2017 11:37:44 +0100 Subject: QQuickWindow FBO: fix dpr and rect when there is an actual window QQuickWidget is the primary example of a third case of rendering with QQuickWindow: here the content goes to an FBO via the rendercontrol, but there is still a window associated (the top-level widget's window) in a way, and therefore the devicePixelRatio must be taken into account. This amends ab54d0cab57121055914ff9a750f5ad975fe7525 Task-number: QTBUG-58442 Change-Id: Ic90147646aa9bd9c1fc6a3492ae8c3087a12832b Reviewed-by: Friedemann Kleint Reviewed-by: Alessandro Portale Reviewed-by: Gunnar Sletta --- src/quick/items/qquickwindow.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/quick/items') diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index 660c5f8067..0e7c50ffcf 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -453,8 +453,13 @@ void QQuickWindowPrivate::renderSceneGraph(const QSize &size) fboId = renderTargetId; renderer->setDeviceRect(rect); renderer->setViewportRect(rect); - renderer->setProjectionMatrixToRect(QRect(QPoint(0, 0), rect.size())); - renderer->setDevicePixelRatio(1); + if (QQuickRenderControl::renderWindowFor(q)) { + renderer->setProjectionMatrixToRect(QRect(QPoint(0, 0), size)); + renderer->setDevicePixelRatio(devicePixelRatio); + } else { + renderer->setProjectionMatrixToRect(QRect(QPoint(0, 0), rect.size())); + renderer->setDevicePixelRatio(1); + } } else { QRect rect(QPoint(0, 0), devicePixelRatio * size); renderer->setDeviceRect(rect); -- cgit v1.2.3