aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2020-12-11 12:39:06 +0200
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2020-12-11 10:50:11 +0000
commit217d0e583252d0797d5099f0ad39ff58dd0a6528 (patch)
tree63a35ee597060207149d433324a03d5f66dd8912 /share
parente60fc5084d2d7fc0aac8758907802646d73c4f9a (diff)
QmlPuppet: Fix crash in Qt6 when root item is zero size
Change-Id: I45dc10a412a7e4cfb799afb47e70e506162b286a Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Diffstat (limited to 'share')
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp
index f95f69cb84..ee1bacbc2e 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp
@@ -225,12 +225,13 @@ bool Qt5NodeInstanceServer::initRhi(RenderViewData &viewData)
viewData.texture = nullptr;
}
};
- if (viewData.bufferDirty) {
+ if (viewData.bufferDirty)
cleanRhiResources();
- viewData.bufferDirty = false;
- }
- const QSize size = viewData.window->size();
+ QSize size = viewData.window->size();
+ if (size.isNull())
+ size = QSize(2, 2); // Zero size buffer creation will fail, so make it some size always
+
viewData.texture = viewData.rhi->newTexture(QRhiTexture::RGBA8, size, 1,
QRhiTexture::RenderTarget | QRhiTexture::UsedAsTransferSource);
if (!viewData.texture->create()) {
@@ -259,6 +260,8 @@ bool Qt5NodeInstanceServer::initRhi(RenderViewData &viewData)
// redirect Qt Quick rendering into our texture
viewData.window->setRenderTarget(QQuickRenderTarget::fromRhiRenderTarget(viewData.texTarget));
+
+ viewData.bufferDirty = false;
#else
Q_UNUSED(viewData)
#endif