浏览代码

Set mNumUVComponents to 0 when deleting texture coordinate sets

Daniel Hritzkiv 7 年之前
父节点
当前提交
cc4531459f
共有 1 个文件被更改,包括 5 次插入2 次删除
  1. 5 2
      code/FindInvalidDataProcess.cpp

+ 5 - 2
code/FindInvalidDataProcess.cpp

@@ -360,10 +360,13 @@ int FindInvalidDataProcess::ProcessMesh (aiMesh* pMesh)
     // process texture coordinates
     // process texture coordinates
     for (unsigned int i = 0; i < AI_MAX_NUMBER_OF_TEXTURECOORDS && pMesh->mTextureCoords[i];++i)    {
     for (unsigned int i = 0; i < AI_MAX_NUMBER_OF_TEXTURECOORDS && pMesh->mTextureCoords[i];++i)    {
         if (ProcessArray(pMesh->mTextureCoords[i],pMesh->mNumVertices,"uvcoords",dirtyMask))    {
         if (ProcessArray(pMesh->mTextureCoords[i],pMesh->mNumVertices,"uvcoords",dirtyMask))    {
+            pMesh->mNumUVComponents[i] = 0;
 
 
             // delete all subsequent texture coordinate sets.
             // delete all subsequent texture coordinate sets.
-            for (unsigned int a = i+1; a < AI_MAX_NUMBER_OF_TEXTURECOORDS;++a)  {
-                delete[] pMesh->mTextureCoords[a]; pMesh->mTextureCoords[a] = NULL;
+            for (unsigned int a = i + 1; a < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++a) {
+                delete[] pMesh->mTextureCoords[a];
+                pMesh->mTextureCoords[a] = NULL;
+                pMesh->mNumUVComponents[a] = 0;
             }
             }
             ret = true;
             ret = true;
         }
         }