diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-10-14 18:46:38 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-10-14 19:02:37 +0200 |
commit | c2f8b9535d34da6948ccf45b7d5fd90de2f1bc9e (patch) | |
tree | c6f7e058a985d7c18b51cadc76283caf555071c9 /src/quickwidgets | |
parent | 9e633bbda7608ac0231809e2a6a97ae8f2d849d6 (diff) | |
parent | 803f18f02e5609a1ca00a5b78ea6d3613d44e1a0 (diff) |
Merge remote-tracking branch 'origin/dev' into wip/cmake
Removed dependencies.yaml because we don't use it yet in wip/cmake.
Fixed conflict in qmlcachegen.cpp.
Change-Id: Ie1060c737bee1daa85779903598e5b6d5020d922
Diffstat (limited to 'src/quickwidgets')
-rw-r--r-- | src/quickwidgets/qquickwidget.cpp | 18 | ||||
-rw-r--r-- | src/quickwidgets/qquickwidget_p.h | 1 |
2 files changed, 18 insertions, 1 deletions
diff --git a/src/quickwidgets/qquickwidget.cpp b/src/quickwidgets/qquickwidget.cpp index b16bfee6a6..4d2914ff6c 100644 --- a/src/quickwidgets/qquickwidget.cpp +++ b/src/quickwidgets/qquickwidget.cpp @@ -283,7 +283,16 @@ void QQuickWidgetPrivate::render(bool needsSync) Q_ASSERT(context); - if (!context->makeCurrent(offscreenSurface)) { + bool current = context->makeCurrent(offscreenSurface); + + if (!current && !context->isValid()) { + renderControl->invalidate(); + current = context->create() && context->makeCurrent(offscreenSurface); + if (current) + renderControl->initialize(context); + } + + if (!current) { qWarning("QQuickWidget: Cannot render due to failing makeCurrent()"); return; } @@ -1119,6 +1128,13 @@ GLuint QQuickWidgetPrivate::textureId() const return resolvedFbo ? resolvedFbo->texture() : (fbo ? fbo->texture() : 0); } + +QPlatformTextureList::Flags QQuickWidgetPrivate::textureListFlags() +{ + QPlatformTextureList::Flags flags = QWidgetPrivate::textureListFlags(); + flags |= QPlatformTextureList::NeedsPremultipliedAlphaBlending; + return flags; +} #endif /*! diff --git a/src/quickwidgets/qquickwidget_p.h b/src/quickwidgets/qquickwidget_p.h index 03571e8dc7..f4f9db7772 100644 --- a/src/quickwidgets/qquickwidget_p.h +++ b/src/quickwidgets/qquickwidget_p.h @@ -101,6 +101,7 @@ public: #if QT_CONFIG(opengl) GLuint textureId() const override; + QPlatformTextureList::Flags textureListFlags() override; QImage grabFramebuffer() override; #else QImage grabFramebuffer(); |