- disable re-tesselating derived meshes in BMEdit_RecalcTesselation() have modifier stack do this.

- made editbmesh_calc_modifiers() ensure tessfaces, this has the advantage that if the tessfaces are already created they wont get re-made as was happening before.
This commit is contained in:
2012-01-20 13:53:47 +00:00
parent 1b505e6d1b
commit 4de28741c8
2 changed files with 9 additions and 1 deletions

View File

@@ -1776,7 +1776,12 @@ static void editbmesh_calc_modifiers(Scene *scene, Object *ob, BMEditMesh *em, D
(*final_r)->calcNormals(*final_r); /* BMESH_ONLY - BMESH_TODO. check if this is needed */
}
DM_ensure_tessface(*final_r); /* BMESH_ONLY */
/* --- */
/* BMESH_ONLY, ensure tessface's used for drawing,
* but dont recalculate if the last modifier in the stack gives us tessfaces */
DM_ensure_tessface(*final_r);
if (cage_r && (*cage_r != *final_r)) DM_ensure_tessface(*cage_r);
/* --- */
/* add an orco layer if needed */
if(dataMask & CD_MASK_ORCO)

View File

@@ -223,6 +223,8 @@ void BMEdit_RecalcTesselation(BMEditMesh *em)
{
BMEdit_RecalcTesselation_intern(em);
/* commented because editbmesh_build_data() ensures we get tessfaces */
#if 0
if (em->derivedFinal && em->derivedFinal == em->derivedCage) {
if (em->derivedFinal->recalcTesselation)
em->derivedFinal->recalcTesselation(em->derivedFinal);
@@ -233,6 +235,7 @@ void BMEdit_RecalcTesselation(BMEditMesh *em)
if (em->derivedFinal->recalcTesselation)
em->derivedFinal->recalcTesselation(em->derivedFinal);
}
#endif
}
void BMEdit_UpdateLinkedCustomData(BMEditMesh *em)