aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2017-01-26 11:37:44 +0100
committerLaszlo Agocs <laszlo.agocs@qt.io>2017-01-30 12:14:08 +0000
commit7900e74edd42bdd7ee3ecf78be656dd8d3211607 (patch)
treec2e0628321358f4bec0e0359f594b0d282b7d990 /src/quick/items
parent6b1f857db586586e56ce5829635b33e51be74e8e (diff)
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 <Friedemann.Kleint@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
Diffstat (limited to 'src/quick/items')
-rw-r--r--src/quick/items/qquickwindow.cpp9
1 files changed, 7 insertions, 2 deletions
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);