QmlPuppet: Fix custom 3D geometries for Qt 6.1

Private API puppet uses for custom 3D geometries has changed.

(cherry picked from commit baf3528af5)
Change-Id: Ib9be20f836c7e985b850966c3bdd620cbeac246a
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
Miikka Heikkinen
2021-02-05 16:38:07 +02:00
committed by Eike Ziller
parent e3d12e659a
commit 85e9b5e033
5 changed files with 46 additions and 10 deletions

View File

@@ -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;

View File

@@ -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());

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);