summaryrefslogtreecommitdiff
path: root/src/gui/painting/qrhibackingstore.cpp
diff options
context:
space:
mode:
authorMorten Sørvig <morten.sorvig@qt.io>2022-06-03 11:22:50 +0200
committerMorten Sørvig <morten.sorvig@qt.io>2022-06-14 21:16:35 +0200
commitd38118c80828eecb3c0192404249c1fad5660792 (patch)
treeccc37dd1332a060a18a77851b90ee53b91d2a7d1 /src/gui/painting/qrhibackingstore.cpp
parent373392eeb4199654e954f70ce919850f090d59bd (diff)
downloadqtbase-d38118c80828eecb3c0192404249c1fad5660792.tar.gz
Make rhiFlush() support custom source DPR
The rhiFlush() implementation currently assumes that QWindow->devicePixelRatio() is the correct scale factor for transforming device independent window geometry to source geometry. However, this assumption does not hold if/when we add support for drawing to a rounded-up DPR, with a downscale later in the rhiFlush implementation. Fix this by adding a sourceDevicePixelRatio argument to rhiFlush(), which is set to either QWindow::devicePixelRatio() or QWidget::devicePixelRatio(), depending on from where it is used. Change deviceRect() and friends in qbackingstoredefualtcompositor.cpp to be scale*() functions instead which take a scale factor instead of a QWindow. Update call sites to use srouceDevicePixelRatio where that makes sense. Pick-to: 6.4 Change-Id: Idb7b1e2f36816a201e00f0defe100d2dc079cb17 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Diffstat (limited to 'src/gui/painting/qrhibackingstore.cpp')
-rw-r--r--src/gui/painting/qrhibackingstore.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gui/painting/qrhibackingstore.cpp b/src/gui/painting/qrhibackingstore.cpp
index 71b5ccf6cf..fd7045e3f6 100644
--- a/src/gui/painting/qrhibackingstore.cpp
+++ b/src/gui/painting/qrhibackingstore.cpp
@@ -40,7 +40,7 @@ void QRhiBackingStore::flush(QWindow *window, const QRegion &region, const QPoin
static QPlatformTextureList emptyTextureList;
bool translucentBackground = m_image.hasAlphaChannel();
- rhiFlush(window, region, offset, &emptyTextureList, translucentBackground);
+ rhiFlush(window, window->devicePixelRatio(), region, offset, &emptyTextureList, translucentBackground);
}
QT_END_NAMESPACE