[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45319] trunk/blender/source/blender/ blenkernel/intern/DerivedMesh.c: Partial fix [#30744] BMesh: Particle system face/volume emission doesn' t work if there is a constructive modifier earlier.

Bastien Montagne montagne29 at wanadoo.fr
Sun Apr 1 17:02:25 CEST 2012


Revision: 45319
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45319
Author:   mont29
Date:     2012-04-01 15:02:19 +0000 (Sun, 01 Apr 2012)
Log Message:
-----------
Partial fix [#30744] BMesh: Particle system face/volume emission doesn't work if there is a constructive modifier earlier.

When ORIGSPACE is added, it is now a loop data, so we need to mark tessdata as dirty too. Also fixed DM_ensure_tessface to check DM_DIRTY_TESS_CDLAYERS flag!

This fixes problems with subsurf + dynapaint + particles, however, some modifiers, like remesh, seems to create a new dm from scratch, hence loosing completely those CD layers?\226?\128?\166 Note this bug already existed in 2.62, so this is not a regression.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c

Modified: trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c	2012-04-01 10:36:54 UTC (rev 45318)
+++ trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c	2012-04-01 15:02:19 UTC (rev 45319)
@@ -382,6 +382,13 @@
 			       __func__, numPolys, dm->type);
 		}
 	}
+
+	else if (dm->dirty && DM_DIRTY_TESS_CDLAYERS) {
+		BLI_assert(CustomData_has_layer(&dm->faceData, CD_POLYINDEX));
+		DM_update_tessface_data(dm);
+	}
+
+	dm->dirty &= ~DM_DIRTY_TESS_CDLAYERS;
 }
 
 /* Update tessface CD data from loop/poly ones. Needed when not retessellating after modstack evaluation. */
@@ -1629,7 +1636,7 @@
 
 					deformedVerts = NULL;
 				}
-			} 
+			}
 
 			/* create an orco derivedmesh in parallel */
 			if (nextmask & CD_MASK_ORCO) {
@@ -3061,6 +3068,8 @@
 			}
 		}
 	}
+
+	dm->dirty |= DM_DIRTY_TESS_CDLAYERS;
 }
 
 




More information about the Bf-blender-cvs mailing list