diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2020-12-11 12:39:06 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2020-12-11 10:50:11 +0000 |
commit | 217d0e583252d0797d5099f0ad39ff58dd0a6528 (patch) | |
tree | 63a35ee597060207149d433324a03d5f66dd8912 /share | |
parent | e60fc5084d2d7fc0aac8758907802646d73c4f9a (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.cpp | 11 |
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 |