aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/scenegraph/adaptations/software/qsgabstractsoftwarerenderer_p.h2
-rw-r--r--src/quickwidgets/qquickwidget.cpp6
-rw-r--r--src/quickwidgets/qquickwidget_p.h1
3 files changed, 8 insertions, 1 deletions
diff --git a/src/quick/scenegraph/adaptations/software/qsgabstractsoftwarerenderer_p.h b/src/quick/scenegraph/adaptations/software/qsgabstractsoftwarerenderer_p.h
index 905577b92a..04a17ea377 100644
--- a/src/quick/scenegraph/adaptations/software/qsgabstractsoftwarerenderer_p.h
+++ b/src/quick/scenegraph/adaptations/software/qsgabstractsoftwarerenderer_p.h
@@ -63,7 +63,7 @@ class QSGSimpleRectNode;
class QSGSoftwareRenderableNode;
class QSGSoftwareRenderableNodeUpdater;
-class QSGAbstractSoftwareRenderer : public QSGRenderer
+class Q_QUICK_PRIVATE_EXPORT QSGAbstractSoftwareRenderer : public QSGRenderer
{
public:
QSGAbstractSoftwareRenderer(QSGRenderContext *context);
diff --git a/src/quickwidgets/qquickwidget.cpp b/src/quickwidgets/qquickwidget.cpp
index 5aff0ee393..4c4f5fa9f3 100644
--- a/src/quickwidgets/qquickwidget.cpp
+++ b/src/quickwidgets/qquickwidget.cpp
@@ -201,6 +201,7 @@ QQuickWidgetPrivate::QQuickWidgetPrivate()
, fakeHidden(false)
, requestedSamples(0)
, useSoftwareRenderer(false)
+ , forceFullUpdate(false)
{
}
@@ -306,6 +307,10 @@ void QQuickWidgetPrivate::render(bool needsSync)
auto softwareRenderer = static_cast<QSGSoftwareRenderer*>(cd->renderer);
if (softwareRenderer && !softwareImage.isNull()) {
softwareRenderer->setCurrentPaintDevice(&softwareImage);
+ if (forceFullUpdate) {
+ softwareRenderer->markDirty();
+ forceFullUpdate = false;
+ }
renderControl->render();
updateRegion += softwareRenderer->flushRegion();
@@ -916,6 +921,7 @@ void QQuickWidget::createFramebufferObject()
const QSize imageSize = size() * devicePixelRatioF();
d->softwareImage = QImage(imageSize, QImage::Format_ARGB32_Premultiplied);
d->softwareImage.setDevicePixelRatio(devicePixelRatioF());
+ d->forceFullUpdate = true;
return;
}
diff --git a/src/quickwidgets/qquickwidget_p.h b/src/quickwidgets/qquickwidget_p.h
index 6892e6e0b4..9747315577 100644
--- a/src/quickwidgets/qquickwidget_p.h
+++ b/src/quickwidgets/qquickwidget_p.h
@@ -144,6 +144,7 @@ public:
bool useSoftwareRenderer;
QImage softwareImage;
QRegion updateRegion;
+ bool forceFullUpdate;
};
QT_END_NAMESPACE