Accepting request 533796 from KDE:Qt5
Qt 5.9.2 OBS-URL: https://build.opensuse.org/request/show/533796 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtdeclarative?expand=0&rev=43
This commit is contained in:
parent
81c8d808ca
commit
080f03fa43
@ -1,3 +1,13 @@
|
||||
-------------------------------------------------------------------
|
||||
Sun Oct 8 13:57:42 UTC 2017 - lbeltrame@kde.org
|
||||
|
||||
- Update to 5.9.2
|
||||
* For more details please see:
|
||||
https://blog.qt.io/blog/2017/10/06/qt-5-9-2-released/
|
||||
- Dropped patches, now upstream:
|
||||
* rebuild-qqmldata-propertycache-if-deleted.patch
|
||||
* support-non-integer-pixel-ratios-qquickwidget.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 9 20:26:28 CEST 2017 - ro@suse.de
|
||||
|
||||
|
@ -21,22 +21,18 @@
|
||||
%define libname libQtQuick5
|
||||
|
||||
Name: libqt5-qtdeclarative
|
||||
Version: 5.9.1
|
||||
Version: 5.9.2
|
||||
Release: 0
|
||||
Summary: Qt 5 Declarative Library
|
||||
License: SUSE-LGPL-2.1-with-digia-exception-1.1 or GPL-3.0
|
||||
Group: Development/Libraries/X11
|
||||
Url: https://www.qt.io
|
||||
%define base_name libqt5
|
||||
%define real_version 5.9.1
|
||||
%define so_version 5.9.1
|
||||
%define real_version 5.9.2
|
||||
%define so_version 5.9.2
|
||||
%define tar_version qtdeclarative-opensource-src-%{real_version}
|
||||
Source: https://download.qt.io/official_releases/qt/5.9/%{real_version}/submodules/%{tar_version}.tar.xz
|
||||
Source1: baselibs.conf
|
||||
# PATCH-FIX-UPSTREAM
|
||||
Patch1: support-non-integer-pixel-ratios-qquickwidget.patch
|
||||
# PATCH-FIX-UPSTREAM
|
||||
Patch2: rebuild-qqmldata-propertycache-if-deleted.patch
|
||||
# PATCH-FIX-OPENSUSE sse2_nojit.patch -- enable JIT and sse2 only on sse2 case
|
||||
Patch100: sse2_nojit.patch
|
||||
# PATCH-FIX-OPENSUSE
|
||||
@ -77,8 +73,6 @@ handling.
|
||||
|
||||
%prep
|
||||
%setup -q -n qtdeclarative-opensource-src-%{real_version}
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%ifarch %ix86
|
||||
%patch100 -p1
|
||||
%endif
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d2fe6c9c1a9f19af6e96553c6d75366ab8f397bc232acd67d31476955fee94ff
|
||||
size 21387252
|
3
qtdeclarative-opensource-src-5.9.2.tar.xz
Normal file
3
qtdeclarative-opensource-src-5.9.2.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0d40fd4de9c73b9173d8308c0dc37952bf5c747d87ff221962dd2f848d820b08
|
||||
size 21435732
|
@ -1,40 +0,0 @@
|
||||
From ab5d4c78224c9ec79165e8890e5f8b8e838e0709 Mon Sep 17 00:00:00 2001
|
||||
From: David Edmundson <davidedmundson@kde.org>
|
||||
Date: Mon, 10 Jul 2017 17:26:59 +0100
|
||||
Subject: [PATCH] Rebuild QQmlData::propertyCache if deleted by another engine
|
||||
|
||||
QQmlData is shared between engines, but the relevant QObjectWrapper is
|
||||
not. Since 749a7212e903d8e8c6f256edb1836b9449cc7fe1 when a
|
||||
QObjectWrapper is deleted it resets the shared QQmlData propertyCache.
|
||||
|
||||
In most cases the propertyCache except when a property updated in an
|
||||
existing binding in the first engine, where it currently asserts.
|
||||
|
||||
Task-number: QTBUG-61681
|
||||
Change-Id: I6efdc506e5c7e30b95cda1be282afa9feb781cd2
|
||||
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
||||
---
|
||||
src/qml/qml/qqmlbinding.cpp | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/qml/qml/qqmlbinding.cpp b/src/qml/qml/qqmlbinding.cpp
|
||||
index 62288a5..325f752 100644
|
||||
--- a/src/qml/qml/qqmlbinding.cpp
|
||||
+++ b/src/qml/qml/qqmlbinding.cpp
|
||||
@@ -515,7 +515,12 @@ void QQmlBinding::getPropertyData(QQmlPropertyData **propertyData, QQmlPropertyD
|
||||
Q_ASSERT(propertyData);
|
||||
|
||||
QQmlData *data = QQmlData::get(*m_target, false);
|
||||
- Q_ASSERT(data && data->propertyCache);
|
||||
+ Q_ASSERT(data);
|
||||
+
|
||||
+ if (Q_UNLIKELY(!data->propertyCache)) {
|
||||
+ data->propertyCache = QQmlEnginePrivate::get(context()->engine)->cache(m_target->metaObject());
|
||||
+ data->propertyCache->addref();
|
||||
+ }
|
||||
|
||||
*propertyData = data->propertyCache->property(m_targetIndex.coreIndex());
|
||||
Q_ASSERT(*propertyData);
|
||||
--
|
||||
2.7.4
|
||||
|
@ -30,10 +30,10 @@ Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
|
||||
src/quick/scenegraph/qsgwindowsrenderloop.cpp | 10 ++++++++++
|
||||
10 files changed, 33 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp
|
||||
Index: qtdeclarative-opensource-src-5.9.2/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp
|
||||
===================================================================
|
||||
--- qtdeclarative-opensource-src-5.9.1.orig/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp
|
||||
--- qtdeclarative-opensource-src-5.9.2.orig/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.2/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp
|
||||
@@ -461,7 +461,6 @@ void QSGD3D12RenderLoop::renderWindow(QQ
|
||||
data.rc->initialize(nullptr);
|
||||
|
||||
@ -42,10 +42,10 @@ Index: qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/d3d12/qsgd3d12r
|
||||
|
||||
if (profileFrames)
|
||||
syncTime = renderTimer.nsecsElapsed();
|
||||
Index: qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/d3d12/qsgd3d12threadedrenderloop.cpp
|
||||
Index: qtdeclarative-opensource-src-5.9.2/src/plugins/scenegraph/d3d12/qsgd3d12threadedrenderloop.cpp
|
||||
===================================================================
|
||||
--- qtdeclarative-opensource-src-5.9.1.orig/src/plugins/scenegraph/d3d12/qsgd3d12threadedrenderloop.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/d3d12/qsgd3d12threadedrenderloop.cpp
|
||||
--- qtdeclarative-opensource-src-5.9.2.orig/src/plugins/scenegraph/d3d12/qsgd3d12threadedrenderloop.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.2/src/plugins/scenegraph/d3d12/qsgd3d12threadedrenderloop.cpp
|
||||
@@ -410,7 +410,6 @@ bool QSGD3D12RenderThread::event(QEvent
|
||||
QQuickWindowPrivate *wd = QQuickWindowPrivate::get(wme->window);
|
||||
rc->initialize(nullptr);
|
||||
@ -62,10 +62,10 @@ Index: qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/d3d12/qsgd3d12t
|
||||
|
||||
if (!hadRenderer && wd->renderer) {
|
||||
if (Q_UNLIKELY(debug_loop()))
|
||||
Index: qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/openvg/qsgopenvgrenderloop.cpp
|
||||
Index: qtdeclarative-opensource-src-5.9.2/src/plugins/scenegraph/openvg/qsgopenvgrenderloop.cpp
|
||||
===================================================================
|
||||
--- qtdeclarative-opensource-src-5.9.1.orig/src/plugins/scenegraph/openvg/qsgopenvgrenderloop.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/openvg/qsgopenvgrenderloop.cpp
|
||||
--- qtdeclarative-opensource-src-5.9.2.orig/src/plugins/scenegraph/openvg/qsgopenvgrenderloop.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.2/src/plugins/scenegraph/openvg/qsgopenvgrenderloop.cpp
|
||||
@@ -205,7 +205,6 @@ void QSGOpenVGRenderLoop::renderWindow(Q
|
||||
emit window->afterAnimating();
|
||||
|
||||
@ -74,10 +74,10 @@ Index: qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/openvg/qsgopenv
|
||||
|
||||
if (profileFrames)
|
||||
syncTime = renderTimer.nsecsElapsed();
|
||||
Index: qtdeclarative-opensource-src-5.9.1/src/quick/items/qquickrendercontrol.cpp
|
||||
Index: qtdeclarative-opensource-src-5.9.2/src/quick/items/qquickrendercontrol.cpp
|
||||
===================================================================
|
||||
--- qtdeclarative-opensource-src-5.9.1.orig/src/quick/items/qquickrendercontrol.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.1/src/quick/items/qquickrendercontrol.cpp
|
||||
--- qtdeclarative-opensource-src-5.9.2.orig/src/quick/items/qquickrendercontrol.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.2/src/quick/items/qquickrendercontrol.cpp
|
||||
@@ -284,7 +284,6 @@ bool QQuickRenderControl::sync()
|
||||
|
||||
QQuickWindowPrivate *cd = QQuickWindowPrivate::get(d->window);
|
||||
@ -102,10 +102,10 @@ Index: qtdeclarative-opensource-src-5.9.1/src/quick/items/qquickrendercontrol.cp
|
||||
render();
|
||||
softwareRenderer->setCurrentPaintDevice(prevDev);
|
||||
}
|
||||
Index: qtdeclarative-opensource-src-5.9.1/src/quick/items/qquickwindow.cpp
|
||||
Index: qtdeclarative-opensource-src-5.9.2/src/quick/items/qquickwindow.cpp
|
||||
===================================================================
|
||||
--- qtdeclarative-opensource-src-5.9.1.orig/src/quick/items/qquickwindow.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.1/src/quick/items/qquickwindow.cpp
|
||||
--- qtdeclarative-opensource-src-5.9.2.orig/src/quick/items/qquickwindow.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.2/src/quick/items/qquickwindow.cpp
|
||||
@@ -432,8 +432,10 @@ void QQuickWindowPrivate::syncSceneGraph
|
||||
|
||||
emit q->afterSynchronizing();
|
||||
@ -117,10 +117,10 @@ Index: qtdeclarative-opensource-src-5.9.1/src/quick/items/qquickwindow.cpp
|
||||
void QQuickWindowPrivate::renderSceneGraph(const QSize &size)
|
||||
{
|
||||
QML_MEMORY_SCOPE_STRING("SceneGraph");
|
||||
Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp
|
||||
Index: qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp
|
||||
===================================================================
|
||||
--- qtdeclarative-opensource-src-5.9.1.orig/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp
|
||||
--- qtdeclarative-opensource-src-5.9.2.orig/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp
|
||||
@@ -149,7 +149,6 @@ void QSGSoftwareRenderLoop::renderWindow
|
||||
emit window->afterAnimating();
|
||||
|
||||
@ -129,10 +129,10 @@ Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/adaptations/softw
|
||||
|
||||
if (profileFrames)
|
||||
syncTime = renderTimer.nsecsElapsed();
|
||||
Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/adaptations/software/qsgsoftwarethreadedrenderloop.cpp
|
||||
Index: qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/adaptations/software/qsgsoftwarethreadedrenderloop.cpp
|
||||
===================================================================
|
||||
--- qtdeclarative-opensource-src-5.9.1.orig/src/quick/scenegraph/adaptations/software/qsgsoftwarethreadedrenderloop.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/adaptations/software/qsgsoftwarethreadedrenderloop.cpp
|
||||
--- qtdeclarative-opensource-src-5.9.2.orig/src/quick/scenegraph/adaptations/software/qsgsoftwarethreadedrenderloop.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/adaptations/software/qsgsoftwarethreadedrenderloop.cpp
|
||||
@@ -330,7 +330,6 @@ bool QSGSoftwareRenderThread::event(QEve
|
||||
softwareRenderer->setBackingStore(backingStore);
|
||||
rc->initialize(nullptr);
|
||||
@ -149,11 +149,11 @@ Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/adaptations/softw
|
||||
|
||||
if (!hadRenderer && wd->renderer) {
|
||||
qCDebug(QSG_RASTER_LOG_RENDERLOOP, "RT - created renderer");
|
||||
Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgrenderloop.cpp
|
||||
Index: qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/qsgrenderloop.cpp
|
||||
===================================================================
|
||||
--- qtdeclarative-opensource-src-5.9.1.orig/src/quick/scenegraph/qsgrenderloop.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgrenderloop.cpp
|
||||
@@ -380,16 +380,6 @@ void QSGGuiThreadRenderLoop::renderWindo
|
||||
--- qtdeclarative-opensource-src-5.9.2.orig/src/quick/scenegraph/qsgrenderloop.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/qsgrenderloop.cpp
|
||||
@@ -381,16 +381,6 @@ void QSGGuiThreadRenderLoop::renderWindo
|
||||
bool alsoSwap = data.updatePending;
|
||||
data.updatePending = false;
|
||||
|
||||
@ -170,7 +170,7 @@ Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgrenderloop.cpp
|
||||
if (!current)
|
||||
return;
|
||||
|
||||
@@ -417,8 +407,6 @@ void QSGGuiThreadRenderLoop::renderWindo
|
||||
@@ -418,8 +408,6 @@ void QSGGuiThreadRenderLoop::renderWindo
|
||||
emit window->afterAnimating();
|
||||
|
||||
cd->syncSceneGraph();
|
||||
@ -179,11 +179,11 @@ Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgrenderloop.cpp
|
||||
|
||||
if (profileFrames)
|
||||
syncTime = renderTimer.nsecsElapsed();
|
||||
Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgthreadedrenderloop.cpp
|
||||
Index: qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/qsgthreadedrenderloop.cpp
|
||||
===================================================================
|
||||
--- qtdeclarative-opensource-src-5.9.1.orig/src/quick/scenegraph/qsgthreadedrenderloop.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgthreadedrenderloop.cpp
|
||||
@@ -425,7 +425,6 @@ bool QSGRenderThread::event(QEvent *e)
|
||||
--- qtdeclarative-opensource-src-5.9.2.orig/src/quick/scenegraph/qsgthreadedrenderloop.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/qsgthreadedrenderloop.cpp
|
||||
@@ -432,7 +432,6 @@ bool QSGRenderThread::event(QEvent *e)
|
||||
qCDebug(QSG_LOG_RENDERLOOP) << QSG_RT_PAD << "- sync scene graph";
|
||||
QQuickWindowPrivate *d = QQuickWindowPrivate::get(ce->window);
|
||||
d->syncSceneGraph();
|
||||
@ -191,11 +191,11 @@ Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgthreadedrender
|
||||
|
||||
qCDebug(QSG_LOG_RENDERLOOP) << QSG_RT_PAD << "- rendering scene graph";
|
||||
QQuickWindowPrivate::get(ce->window)->renderSceneGraph(ce->window->size());
|
||||
Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgwindowsrenderloop.cpp
|
||||
Index: qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/qsgwindowsrenderloop.cpp
|
||||
===================================================================
|
||||
--- qtdeclarative-opensource-src-5.9.1.orig/src/quick/scenegraph/qsgwindowsrenderloop.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgwindowsrenderloop.cpp
|
||||
@@ -445,14 +445,6 @@ void QSGWindowsRenderLoop::renderWindow(
|
||||
--- qtdeclarative-opensource-src-5.9.2.orig/src/quick/scenegraph/qsgwindowsrenderloop.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/qsgwindowsrenderloop.cpp
|
||||
@@ -446,14 +446,6 @@ void QSGWindowsRenderLoop::renderWindow(
|
||||
}
|
||||
}
|
||||
|
||||
@ -210,7 +210,7 @@ Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgwindowsrenderl
|
||||
d->flushFrameSynchronousEvents();
|
||||
// Event delivery or processing has caused the window to stop rendering.
|
||||
if (!windowData(window))
|
||||
@@ -472,8 +464,6 @@ void QSGWindowsRenderLoop::renderWindow(
|
||||
@@ -473,8 +465,6 @@ void QSGWindowsRenderLoop::renderWindow(
|
||||
|
||||
RLDEBUG(" - syncing");
|
||||
d->syncSceneGraph();
|
||||
|
@ -1,73 +0,0 @@
|
||||
From dfce0a8feceeb7156eba6ac5d8d3521e3009a583 Mon Sep 17 00:00:00 2001
|
||||
From: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
||||
Date: Wed, 21 Jun 2017 09:03:22 +0200
|
||||
Subject: [PATCH] Support non-integer pixel-ratio in QQuickWidget
|
||||
|
||||
Non-integer pixel-ratios always resulted in blurry rendering when
|
||||
QQuickWidget was used, but not with QQuickWindow. Fixed by reading qreal
|
||||
accessor of devicePixelRatio instead.
|
||||
|
||||
Change-Id: I49f5efcf2da2efc090c00017e68c99c857cd84ef
|
||||
Task-number: QTBUG-61502
|
||||
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
||||
---
|
||||
src/quickwidgets/qquickwidget.cpp | 14 ++++++++------
|
||||
1 file changed, 8 insertions(+), 6 deletions(-)
|
||||
|
||||
Index: qtdeclarative-opensource-src-5.9.0/src/quickwidgets/qquickwidget.cpp
|
||||
===================================================================
|
||||
--- qtdeclarative-opensource-src-5.9.0.orig/src/quickwidgets/qquickwidget.cpp
|
||||
+++ qtdeclarative-opensource-src-5.9.0/src/quickwidgets/qquickwidget.cpp
|
||||
@@ -913,9 +913,9 @@ void QQuickWidget::createFramebufferObje
|
||||
d->offscreenWindow->setGeometry(globalPos.x(), globalPos.y(), width(), height());
|
||||
|
||||
if (d->useSoftwareRenderer) {
|
||||
- const QSize imageSize = size() * devicePixelRatio();
|
||||
+ const QSize imageSize = size() * devicePixelRatioF();
|
||||
d->softwareImage = QImage(imageSize, QImage::Format_ARGB32_Premultiplied);
|
||||
- d->softwareImage.setDevicePixelRatio(devicePixelRatio());
|
||||
+ d->softwareImage.setDevicePixelRatio(devicePixelRatioF());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -960,7 +960,7 @@ void QQuickWidget::createFramebufferObje
|
||||
format.setInternalTextureFormat(GL_SRGB8_ALPHA8_EXT);
|
||||
#endif
|
||||
|
||||
- const QSize fboSize = size() * devicePixelRatio();
|
||||
+ const QSize fboSize = size() * devicePixelRatioF();
|
||||
|
||||
// Could be a simple hide - show, in which case the previous fbo is just fine.
|
||||
if (!d->fbo || d->fbo->size() != fboSize) {
|
||||
@@ -1181,7 +1181,7 @@ void QQuickWidget::resizeEvent(QResizeEv
|
||||
// Software Renderer
|
||||
if (d->useSoftwareRenderer) {
|
||||
needsSync = true;
|
||||
- if (d->softwareImage.size() != size() * devicePixelRatio()) {
|
||||
+ if (d->softwareImage.size() != size() * devicePixelRatioF()) {
|
||||
createFramebufferObject();
|
||||
}
|
||||
} else {
|
||||
@@ -1191,7 +1191,7 @@ void QQuickWidget::resizeEvent(QResizeEv
|
||||
// during hide - resize - show sequences and also during application exit.
|
||||
if (!d->fbo && !d->offscreenWindow->openglContext())
|
||||
return;
|
||||
- if (!d->fbo || d->fbo->size() != size() * devicePixelRatio()) {
|
||||
+ if (!d->fbo || d->fbo->size() != size() * devicePixelRatioF()) {
|
||||
needsSync = true;
|
||||
createFramebufferObject();
|
||||
}
|
||||
@@ -1604,10 +1604,12 @@ void QQuickWidget::paintEvent(QPaintEven
|
||||
//Paint everything
|
||||
painter.drawImage(rect(), d->softwareImage);
|
||||
} else {
|
||||
+ QTransform transform;
|
||||
+ transform.scale(devicePixelRatioF(), devicePixelRatioF());
|
||||
//Paint only the updated areas
|
||||
const auto rects = d->updateRegion.rects();
|
||||
for (auto targetRect : rects) {
|
||||
- auto sourceRect = QRect(targetRect.topLeft() * devicePixelRatio(), targetRect.size() * devicePixelRatio());
|
||||
+ auto sourceRect = transform.mapRect(QRectF(targetRect));
|
||||
painter.drawImage(targetRect, d->softwareImage, sourceRect);
|
||||
}
|
||||
d->updateRegion = QRegion();
|
Loading…
Reference in New Issue
Block a user