aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlvin Wong <alvinhochun@gmail.com>2022-03-05 13:30:22 +0800
committerAlvin Wong <alvinhochun@gmail.com>2022-03-07 20:27:04 +0800
commit91eca07923e924c3bd65364d5d0c7195fe6ef460 (patch)
tree6aeda8b74ff14335444f6c6a197e17012e977881
parent95650281bea10e2a2b6ea9dfb8bf6d47030a45a1 (diff)
Make logicalSize consistent in QQuickWindow
The logicalSize should always be calculated as `QSizeF(pixelSize) / devicePixelRatio`, so that it accurately reflects the actual size of the rendering surface. Extends 17a280995ab546074fa7e9a009642fec5f23c64e. Task-number: QTBUG-101269 Change-Id: Idd1b2337b6ef3456b570c0e619d5b9365ac93495 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
-rw-r--r--src/quick/items/qquickwindow.cpp18
1 files changed, 6 insertions, 12 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp
index 50036e2ca1..f68848444e 100644
--- a/src/quick/items/qquickwindow.cpp
+++ b/src/quick/items/qquickwindow.cpp
@@ -643,19 +643,13 @@ void QQuickWindowPrivate::renderSceneGraph(const QSize &size, const QSize &surfa
const qreal devicePixelRatio = q->effectiveDevicePixelRatio();
QSize pixelSize;
- QSizeF logicalSize;
- if (redirect.rt.renderTarget) {
+ if (redirect.rt.renderTarget)
pixelSize = redirect.rt.renderTarget->pixelSize();
- logicalSize = pixelSize / devicePixelRatio;
- } else {
- if (surfaceSize.isEmpty()) {
- pixelSize = size * devicePixelRatio;
- logicalSize = size;
- } else {
- pixelSize = surfaceSize;
- logicalSize = QSizeF(surfaceSize) / devicePixelRatio;
- }
- }
+ else if (surfaceSize.isEmpty())
+ pixelSize = size * devicePixelRatio;
+ else
+ pixelSize = surfaceSize;
+ QSizeF logicalSize = QSizeF(pixelSize) / devicePixelRatio;
renderer->setDevicePixelRatio(devicePixelRatio);
renderer->setDeviceRect(QRect(QPoint(0, 0), pixelSize));