diff options
author | Alvin Wong <alvinhochun@gmail.com> | 2022-03-05 13:30:22 +0800 |
---|---|---|
committer | Alvin Wong <alvinhochun@gmail.com> | 2022-03-07 20:27:04 +0800 |
commit | 91eca07923e924c3bd65364d5d0c7195fe6ef460 (patch) | |
tree | 6aeda8b74ff14335444f6c6a197e17012e977881 | |
parent | 95650281bea10e2a2b6ea9dfb8bf6d47030a45a1 (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.cpp | 18 |
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)); |