|
@@ -2636,10 +2636,14 @@ void TSMesh::disassemble()
|
|
{
|
|
{
|
|
const TSDrawPrimitive& prim = primitives[i];
|
|
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);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|