diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/generalhelper.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/generalhelper.cpp index dd21622b5dc..74c2eb270ef 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/generalhelper.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/generalhelper.cpp @@ -826,8 +826,15 @@ bool GeneralHelper::getBounds(QQuick3DViewport *view3D, QQuick3DNode *node, QVec auto renderNode = static_cast(nodePriv->spatialNode); if (recursive && renderNode) { +#if QT_VERSION < QT_VERSION_CHECK(6, 4, 0) if (renderNode->flags.testFlag(QSSGRenderNode::Flag::TransformDirty)) renderNode->calculateLocalTransform(); +#else + if (renderNode->isDirty(QSSGRenderNode::DirtyFlag::TransformDirty)) { + renderNode->localTransform = QSSGRenderNode::calculateTransformMatrix( + node->position(), node->scale(), node->pivot(), node->rotation()); + } +#endif localTransform = renderNode->localTransform; } diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/selectionboxgeometry.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/selectionboxgeometry.cpp index 8296c9155d7..dc4484de9d9 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/selectionboxgeometry.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/selectionboxgeometry.cpp @@ -192,7 +192,11 @@ void SelectionBoxGeometry::doUpdateGeometry() m = targetRN->parent->globalTransform; } rootRN->localTransform = m; +#if QT_VERSION < QT_VERSION_CHECK(6, 4, 0) rootRN->markDirty(QSSGRenderNode::TransformDirtyFlag::TransformNotDirty); +#else + rootRN->markDirty(QSSGRenderNode::DirtyFlag::TransformDirty); +#endif rootRN->calculateGlobalVariables(); } else if (!m_spatialNodeUpdatePending) { // Necessary spatial nodes do not yet exist. Defer selection box creation one frame. @@ -236,8 +240,15 @@ void SelectionBoxGeometry::getBounds( if (node != m_targetNode) { if (renderNode) { +#if QT_VERSION < QT_VERSION_CHECK(6, 4, 0) if (renderNode->flags.testFlag(QSSGRenderNode::Flag::TransformDirty)) renderNode->calculateLocalTransform(); +#else + if (renderNode->isDirty(QSSGRenderNode::DirtyFlag::TransformDirty)) { + renderNode->localTransform = QSSGRenderNode::calculateTransformMatrix( + node->position(), node->scale(), node->pivot(), node->rotation()); + } +#endif localTransform = renderNode->localTransform; } trackNodeChanges(node);