From 13a157ea6650ec29223d8361e0bd4ed0100cdd54 Mon Sep 17 00:00:00 2001 From: Wolfgang Herget Date: Thu, 20 Nov 2014 13:10:15 +0100 Subject: [PATCH] For Polylists, manually compute the start offset outside CopyPrimitive. --- code/ColladaParser.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/ColladaParser.cpp b/code/ColladaParser.cpp index b199ccc52..eb40d9d31 100644 --- a/code/ColladaParser.cpp +++ b/code/ColladaParser.cpp @@ -2115,6 +2115,7 @@ size_t ColladaParser::ReadPrimitives( Mesh* pMesh, std::vector& pP pMesh->mFaceSize.reserve( numPrimitives); pMesh->mFacePosIndices.reserve( indices.size() / numOffsets); + size_t polylistStartVertex = 0; for (size_t currentPrimitive = 0; currentPrimitive < numPrimitives; currentPrimitive++) { // determine number of points for this primitive @@ -2138,7 +2139,8 @@ size_t ColladaParser::ReadPrimitives( Mesh* pMesh, std::vector& pP case Prim_Polylist: numPoints = pVCount[currentPrimitive]; for (size_t currentVertex = 0; currentVertex < numPoints; currentVertex++) - CopyPrimitive(currentVertex, numOffsets, numPoints, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices); + CopyPrimitive(polylistStartVertex + currentVertex, numOffsets, 1, perVertexOffset, pMesh, pPerIndexChannels, 0, indices); + polylistStartVertex += numPoints; break; case Prim_TriFans: case Prim_Polygon: