From 85e9b5e03344dc3934e4adc5e17b4a6bb44722f5 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 5 Feb 2021 16:38:07 +0200 Subject: QmlPuppet: Fix custom 3D geometries for Qt 6.1 Private API puppet uses for custom 3D geometries has changed. (cherry picked from commit baf3528af5f01c1d27d4539f91ef00e7da76433d) Change-Id: Ib9be20f836c7e985b850966c3bdd620cbeac246a Reviewed-by: Miikka Heikkinen --- .../qml/qmlpuppet/qml2puppet/editor3d/camerageometry.cpp | 12 ++++++++++-- .../qml/qmlpuppet/qml2puppet/editor3d/gridgeometry.cpp | 10 ++++++++-- .../qml/qmlpuppet/qml2puppet/editor3d/lightgeometry.cpp | 12 ++++++++++-- .../qml/qmlpuppet/qml2puppet/editor3d/linegeometry.cpp | 10 ++++++++-- .../qmlpuppet/qml2puppet/editor3d/selectionboxgeometry.cpp | 12 ++++++++++-- 5 files changed, 46 insertions(+), 10 deletions(-) diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/camerageometry.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/camerageometry.cpp index 0fbc28c6b5..0ba30125c3 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/camerageometry.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/camerageometry.cpp @@ -159,14 +159,22 @@ QSSGRenderGraphObject *CameraGeometry::updateSpatialNode(QSSGRenderGraphObject * QVector3D maxBounds; fillVertexData(vertexData, indexData, minBounds, maxBounds); + geometry->setStride(12); +#if QT_VERSION < QT_VERSION_CHECK(6, 1, 0) geometry->addAttribute(QSSGRenderGeometry::Attribute::PositionSemantic, 0, QSSGRenderGeometry::Attribute::ComponentType::F32Type); geometry->addAttribute(QSSGRenderGeometry::Attribute::IndexSemantic, 0, QSSGRenderGeometry::Attribute::ComponentType::U16Type); - geometry->setStride(12); + geometry->setPrimitiveType(QSSGRenderGeometry::Lines); +#else + geometry->addAttribute(QSSGMesh::RuntimeMeshData::Attribute::PositionSemantic, 0, + QSSGMesh::Mesh::ComponentType::Float32); + geometry->addAttribute(QSSGMesh::RuntimeMeshData::Attribute::IndexSemantic, 0, + QSSGMesh::Mesh::ComponentType::UnsignedInt16); + geometry->setPrimitiveType(QSSGMesh::Mesh::DrawMode::Lines); +#endif geometry->setVertexData(vertexData); geometry->setIndexData(indexData); - geometry->setPrimitiveType(QSSGRenderGeometry::Lines); geometry->setBounds(minBounds, maxBounds); return node; diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/gridgeometry.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/gridgeometry.cpp index 66a2a6b2a5..d45dd043ae 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/gridgeometry.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/gridgeometry.cpp @@ -112,11 +112,17 @@ QSSGRenderGraphObject *GridGeometry::updateSpatialNode(QSSGRenderGraphObject *no QByteArray vertexData; fillVertexData(vertexData); + geometry->setStride(12); +#if QT_VERSION < QT_VERSION_CHECK(6, 1, 0) geometry->addAttribute(QSSGRenderGeometry::Attribute::PositionSemantic, 0, QSSGRenderGeometry::Attribute::ComponentType::F32Type); - geometry->setStride(12); - geometry->setVertexData(vertexData); geometry->setPrimitiveType(QSSGRenderGeometry::Lines); +#else + geometry->addAttribute(QSSGMesh::RuntimeMeshData::Attribute::PositionSemantic, 0, + QSSGMesh::Mesh::ComponentType::Float32); + geometry->setPrimitiveType(QSSGMesh::Mesh::DrawMode::Lines); +#endif + geometry->setVertexData(vertexData); int lastIndex = (vertexData.size() - 1) / int(sizeof(QVector3D)); auto vertexPtr = reinterpret_cast(vertexData.data()); diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/lightgeometry.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/lightgeometry.cpp index 2facb77139..2277adb806 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/lightgeometry.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/lightgeometry.cpp @@ -90,14 +90,22 @@ QSSGRenderGraphObject *LightGeometry::updateSpatialNode(QSSGRenderGraphObject *n QVector3D maxBounds; fillVertexData(vertexData, indexData, minBounds, maxBounds); + geometry->setStride(12); +#if QT_VERSION < QT_VERSION_CHECK(6, 1, 0) geometry->addAttribute(QSSGRenderGeometry::Attribute::PositionSemantic, 0, QSSGRenderGeometry::Attribute::ComponentType::F32Type); geometry->addAttribute(QSSGRenderGeometry::Attribute::IndexSemantic, 0, QSSGRenderGeometry::Attribute::ComponentType::U16Type); - geometry->setStride(12); + geometry->setPrimitiveType(QSSGRenderGeometry::Lines); +#else + geometry->addAttribute(QSSGMesh::RuntimeMeshData::Attribute::PositionSemantic, 0, + QSSGMesh::Mesh::ComponentType::Float32); + geometry->addAttribute(QSSGMesh::RuntimeMeshData::Attribute::IndexSemantic, 0, + QSSGMesh::Mesh::ComponentType::UnsignedInt16); + geometry->setPrimitiveType(QSSGMesh::Mesh::DrawMode::Lines); +#endif geometry->setVertexData(vertexData); geometry->setIndexData(indexData); - geometry->setPrimitiveType(QSSGRenderGeometry::Lines); geometry->setBounds(minBounds, maxBounds); return node; diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/linegeometry.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/linegeometry.cpp index 5b6110d2af..680c8605b6 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/linegeometry.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/linegeometry.cpp @@ -99,11 +99,17 @@ QSSGRenderGraphObject *LineGeometry::updateSpatialNode(QSSGRenderGraphObject *no dataPtr[4] = m_endPos[1]; dataPtr[5] = m_endPos[2]; + geometry->setStride(12); +#if QT_VERSION < QT_VERSION_CHECK(6, 1, 0) geometry->addAttribute(QSSGRenderGeometry::Attribute::PositionSemantic, 0, QSSGRenderGeometry::Attribute::ComponentType::F32Type); - geometry->setStride(12); - geometry->setVertexData(vertexData); geometry->setPrimitiveType(QSSGRenderGeometry::Lines); +#else + geometry->addAttribute(QSSGMesh::RuntimeMeshData::Attribute::PositionSemantic, 0, + QSSGMesh::Mesh::ComponentType::Float32); + geometry->setPrimitiveType(QSSGMesh::Mesh::DrawMode::Lines); +#endif + geometry->setVertexData(vertexData); geometry->setBounds(m_startPos, m_endPos); return node; diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/selectionboxgeometry.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/selectionboxgeometry.cpp index 1e1fe8937c..54ad2b10fe 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/selectionboxgeometry.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/selectionboxgeometry.cpp @@ -211,14 +211,22 @@ QSSGRenderGraphObject *SelectionBoxGeometry::updateSpatialNode(QSSGRenderGraphOb appendVertexData(QMatrix4x4(), vertexData, indexData, minBounds, maxBounds); } + geometry->setStride(12); +#if QT_VERSION < QT_VERSION_CHECK(6, 1, 0) geometry->addAttribute(QSSGRenderGeometry::Attribute::PositionSemantic, 0, QSSGRenderGeometry::Attribute::ComponentType::F32Type); geometry->addAttribute(QSSGRenderGeometry::Attribute::IndexSemantic, 0, QSSGRenderGeometry::Attribute::ComponentType::U16Type); - geometry->setStride(12); + geometry->setPrimitiveType(QSSGRenderGeometry::Lines); +#else + geometry->addAttribute(QSSGMesh::RuntimeMeshData::Attribute::PositionSemantic, 0, + QSSGMesh::Mesh::ComponentType::Float32); + geometry->addAttribute(QSSGMesh::RuntimeMeshData::Attribute::IndexSemantic, 0, + QSSGMesh::Mesh::ComponentType::UnsignedInt16); + geometry->setPrimitiveType(QSSGMesh::Mesh::DrawMode::Lines); +#endif geometry->setVertexData(vertexData); geometry->setIndexData(indexData); - geometry->setPrimitiveType(QSSGRenderGeometry::Lines); geometry->setBounds(minBounds, maxBounds); m_bounds = QSSGBounds3(minBounds, maxBounds); -- cgit v1.2.3