diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2017-01-26 11:37:44 +0100 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2017-01-30 12:14:08 +0000 |
commit | 7900e74edd42bdd7ee3ecf78be656dd8d3211607 (patch) | |
tree | c2e0628321358f4bec0e0359f594b0d282b7d990 /src/quick/items | |
parent | 6b1f857db586586e56ce5829635b33e51be74e8e (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.cpp | 9 |
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); |