aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2021-02-05 16:38:07 +0200
committerEike Ziller <eike.ziller@qt.io>2021-02-16 16:11:56 +0000
commit85e9b5e03344dc3934e4adc5e17b4a6bb44722f5 (patch)
tree19b95e6c57d8a8e634df31422cda0211024a5deb
parente3d12e659aa0779cb3cca3b8988abaedb3249748 (diff)
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 <miikka.heikkinen@qt.io>
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/camerageometry.cpp12
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/gridgeometry.cpp10
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/lightgeometry.cpp12
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/linegeometry.cpp10
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/selectionboxgeometry.cpp12
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<QVector3D *>(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);