diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2021-02-05 16:38:07 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2021-02-16 16:11:56 +0000 |
commit | 85e9b5e03344dc3934e4adc5e17b4a6bb44722f5 (patch) | |
tree | 19b95e6c57d8a8e634df31422cda0211024a5deb | |
parent | e3d12e659aa0779cb3cca3b8988abaedb3249748 (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>
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); |