summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/runtime/q3dsmeshloader.cpp2
-rw-r--r--src/runtime/q3dsuippresentation.cpp3
2 files changed, 3 insertions, 2 deletions
diff --git a/src/runtime/q3dsmeshloader.cpp b/src/runtime/q3dsmeshloader.cpp
index f26f893..5ca3657 100644
--- a/src/runtime/q3dsmeshloader.cpp
+++ b/src/runtime/q3dsmeshloader.cpp
@@ -894,7 +894,7 @@ Q3DSMesh *loadMeshDataFromCustomGeometry(const Q3DSGeometry &geom, Q3DSMeshLoade
continue;
Qt3DRender::QBuffer *vertexBuffer = mapping->bufferMap[attrDesc->bufferIndex];
- const int vertexCount = vertexBuffer->data().size() / componentByteSize(attrDesc->componentType);
+ const int vertexCount = vertexBuffer->data().size() / attrDesc->stride;
Qt3DRender::QAttribute *attr = new Qt3DRender::QAttribute(vertexBuffer,
q3dsAttributeName(attrDesc->semantic),
Qt3DRender::QAttribute::VertexBaseType(attrDesc->componentType),
diff --git a/src/runtime/q3dsuippresentation.cpp b/src/runtime/q3dsuippresentation.cpp
index 56f97a1..5ab3fd6 100644
--- a/src/runtime/q3dsuippresentation.cpp
+++ b/src/runtime/q3dsuippresentation.cpp
@@ -3532,7 +3532,8 @@ Q3DSPropertyChange Q3DSModelNode::setCustomMesh(Q3DSGeometry *geom)
{
if (m_customMesh != geom)
delete m_customMesh;
-
+ // Update attributes so that qt3d has up-to-date parameters.
+ Q3DSMeshLoader::loadMesh(*geom, &m_customMeshMapping);
m_customMesh = geom; // takes ownership
// like setMesh but note that the m_mesh_unresolved value does not change