From 6652996503ba6e57a660f645b7bcf0df0367cfcb Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 20 Apr 2023 15:26:09 +0300 Subject: [PATCH] QmlDesigner: Fix puppet build after quick3d private API changes Change-Id: I3668853886306fe00d5da916aa458559964a9af0 Reviewed-by: Mahmoud Badri Reviewed-by: Qt CI Bot (cherry picked from commit 9817df63fb9eae342d5bf6f28f526aa09b17e8de) Reviewed-by: Miikka Heikkinen Reviewed-by: Eike Ziller --- .../qml2puppet/editor3d/generalhelper.cpp | 16 ++++++++++++++-- .../qml2puppet/editor3d/selectionboxgeometry.cpp | 10 ++++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/tools/qml2puppet/qml2puppet/editor3d/generalhelper.cpp b/src/tools/qml2puppet/qml2puppet/editor3d/generalhelper.cpp index 829a6f0edbc..52a3f6d74aa 100644 --- a/src/tools/qml2puppet/qml2puppet/editor3d/generalhelper.cpp +++ b/src/tools/qml2puppet/qml2puppet/editor3d/generalhelper.cpp @@ -215,6 +215,7 @@ QVector4D GeneralHelper::focusNodesToCamera(QQuick3DCamera *camera, float defaul if (auto renderModel = static_cast(targetPriv->spatialNode)) { QWindow *window = static_cast(viewPort->window()); if (window) { +#if QT_VERSION < QT_VERSION_CHECK(6, 5, 1) QSSGRef context; #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) context = QSSGRenderContextInterface::getRenderContextInterface(quintptr(window)); @@ -222,12 +223,17 @@ QVector4D GeneralHelper::focusNodesToCamera(QQuick3DCamera *camera, float defaul context = targetPriv->sceneManager->rci; #endif if (!context.isNull()) { +#else + const auto &sm = targetPriv->sceneManager; + auto context = sm->wattached ? sm->wattached->rci().get() : nullptr; + if (context) { +#endif QSSGBounds3 bounds; auto geometry = qobject_cast(model->geometry()); if (geometry) { bounds = geometry->bounds(); } else { - auto bufferManager = context->bufferManager(); + const auto &bufferManager(context->bufferManager()); #if QT_VERSION < QT_VERSION_CHECK(6, 3, 0) bounds = renderModel->getModelBounds(bufferManager); #else @@ -889,6 +895,7 @@ bool GeneralHelper::getBounds(QQuick3DViewport *view3D, QQuick3DNode *node, QVec if (auto renderModel = static_cast(renderNode)) { QWindow *window = static_cast(view3D->window()); if (window) { +#if QT_VERSION < QT_VERSION_CHECK(6, 5, 1) QSSGRef context; #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) context = QSSGRenderContextInterface::getRenderContextInterface(quintptr(window)); @@ -896,7 +903,12 @@ bool GeneralHelper::getBounds(QQuick3DViewport *view3D, QQuick3DNode *node, QVec context = QQuick3DObjectPrivate::get(node)->sceneManager->rci; #endif if (!context.isNull()) { - auto bufferManager = context->bufferManager(); +#else + const auto &sm = QQuick3DObjectPrivate::get(node)->sceneManager; + auto context = sm->wattached ? sm->wattached->rci().get() : nullptr; + if (context) { +#endif + const auto &bufferManager(context->bufferManager()); #if QT_VERSION < QT_VERSION_CHECK(6, 3, 0) QSSGBounds3 bounds = renderModel->getModelBounds(bufferManager); #else diff --git a/src/tools/qml2puppet/qml2puppet/editor3d/selectionboxgeometry.cpp b/src/tools/qml2puppet/qml2puppet/editor3d/selectionboxgeometry.cpp index f7e2757e608..03f37e8902e 100644 --- a/src/tools/qml2puppet/qml2puppet/editor3d/selectionboxgeometry.cpp +++ b/src/tools/qml2puppet/qml2puppet/editor3d/selectionboxgeometry.cpp @@ -287,14 +287,20 @@ void SelectionBoxGeometry::getBounds( if (auto renderModel = static_cast(renderNode)) { QWindow *window = static_cast(m_view3D->window()); if (window) { +#if QT_VERSION < QT_VERSION_CHECK(6, 5, 1) QSSGRef context; #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) context = QSSGRenderContextInterface::getRenderContextInterface(quintptr(window)); -#else +#elif QT_VERSION < QT_VERSION_CHECK(6, 5, 1) context = QQuick3DObjectPrivate::get(this)->sceneManager->rci; #endif if (!context.isNull()) { - auto bufferManager = context->bufferManager(); +#else + const auto &sm = QQuick3DObjectPrivate::get(this)->sceneManager; + auto context = sm->wattached ? sm->wattached->rci().get() : nullptr; + if (context) { +#endif + const auto &bufferManager(context->bufferManager()); #if QT_VERSION < QT_VERSION_CHECK(6, 3, 0) QSSGBounds3 bounds = renderModel->getModelBounds(bufferManager); #else