[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32767] trunk/blender/source/blender: Fix for [#24409] Particle corruption after rendering with multires

Janne Karhu jhkarh at gmail.com
Sat Oct 30 12:19:30 CEST 2010


Revision: 32767
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32767
Author:   jhk
Date:     2010-10-30 12:19:30 +0200 (Sat, 30 Oct 2010)

Log Message:
-----------
Fix for [#24409] Particle corruption after rendering with multires
* Also removed some unused flags from the particle modifier.

Modified Paths:
--------------
    trunk/blender/source/blender/makesdna/DNA_modifier_types.h
    trunk/blender/source/blender/modifiers/intern/MOD_particlesystem.c

Modified: trunk/blender/source/blender/makesdna/DNA_modifier_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_modifier_types.h	2010-10-30 08:51:50 UTC (rev 32766)
+++ trunk/blender/source/blender/makesdna/DNA_modifier_types.h	2010-10-30 10:19:30 UTC (rev 32767)
@@ -548,12 +548,8 @@
 } MeshDeformModifierData;
 
 typedef enum {
-	eParticleSystemFlag_Loaded =		(1<<0),
-	eParticleSystemFlag_Pars =			(1<<1),
-	eParticleSystemFlag_FromCurve =		(1<<2),
-	eParticleSystemFlag_DM_changed =	(1<<3),
-	eParticleSystemFlag_Disabled =		(1<<4),
-	eParticleSystemFlag_psys_updated =	(1<<5),
+	eParticleSystemFlag_Pars =			(1<<0),
+	eParticleSystemFlag_psys_updated =	(1<<1),
 } ParticleSystemModifierFlag;
 
 typedef struct ParticleSystemModifierData {

Modified: trunk/blender/source/blender/modifiers/intern/MOD_particlesystem.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_particlesystem.c	2010-10-30 08:51:50 UTC (rev 32766)
+++ trunk/blender/source/blender/modifiers/intern/MOD_particlesystem.c	2010-10-30 10:19:30 UTC (rev 32767)
@@ -154,6 +154,10 @@
 		psmd->dm->needsFree = 1;
 		psmd->dm->release(psmd->dm);
 	}
+	else {
+		/* no dm before, so recalc particles fully */
+		psys->recalc |= PSYS_RECALC_RESET;
+	}
 
 	/* make new dm */
 	psmd->dm=CDDM_copy(dm);
@@ -175,7 +179,6 @@
 		/* in file read dm hasn't really changed but just wasn't saved in file */
 
 		psys->recalc |= PSYS_RECALC_RESET;
-		psmd->flag |= eParticleSystemFlag_DM_changed;
 
 		psmd->totdmvert= psmd->dm->getNumVerts(psmd->dm);
 		psmd->totdmedge= psmd->dm->getNumEdges(psmd->dm);
@@ -186,7 +189,6 @@
 		psmd->flag &= ~eParticleSystemFlag_psys_updated;
 		particle_system_update(md->scene, ob, psys);
 		psmd->flag |= eParticleSystemFlag_psys_updated;
-		psmd->flag &= ~eParticleSystemFlag_DM_changed;
 	}
 }
 





More information about the Bf-blender-cvs mailing list