diff options
-rw-r--r-- | src/quick/scenegraph/adaptations/software/qsgabstractsoftwarerenderer_p.h | 2 | ||||
-rw-r--r-- | src/quickwidgets/qquickwidget.cpp | 6 | ||||
-rw-r--r-- | src/quickwidgets/qquickwidget_p.h | 1 |
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 |