Pārlūkot izejas kodu

Merge pull request #57 from DavidWyand-GG/issue56-ShapeEditorSaveCrash

Fix for Issue #56 for ShapeEditor save crash
David Wyand 13 gadi atpakaļ
vecāks
revīzija
a6f54b7b44
1 mainītis faili ar 8 papildinājumiem un 4 dzēšanām
  1. 8 4
      Engine/source/ts/tsMesh.cpp

+ 8 - 4
Engine/source/ts/tsMesh.cpp

@@ -2636,10 +2636,14 @@ void TSMesh::disassemble()
       {
          const TSDrawPrimitive& prim = primitives[i];
 
-         TriListOpt::OptimizeTriangleOrdering(verts.size(), prim.numElements,
-            indices.address() + prim.start, tmpIdxs.address());
-         dCopyArray(indices.address() + prim.start, tmpIdxs.address(), 
-            prim.numElements);
+         // only optimize triangle lists (strips and fans are assumed to be already optimized)
+         if ( (prim.matIndex & TSDrawPrimitive::TypeMask) == TSDrawPrimitive::Triangles )
+         {
+            TriListOpt::OptimizeTriangleOrdering(verts.size(), prim.numElements,
+               indices.address() + prim.start, tmpIdxs.address());
+            dCopyArray(indices.address() + prim.start, tmpIdxs.address(), 
+               prim.numElements);
+         }
       }
    }