[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16255] trunk/blender/source/blender: Particle System: a) Fixing visibility bug when a duplipart-system was deleted it didn' t show up in during render any more, b) fixing possible crash during render
Daniel Genrich
daniel.genrich at gmx.net
Tue Aug 26 03:07:30 CEST 2008
Revision: 16255
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16255
Author: genscher
Date: 2008-08-26 03:07:18 +0200 (Tue, 26 Aug 2008)
Log Message:
-----------
Particle System: a) Fixing visibility bug when a duplipart-system was deleted it didn't show up in during render any more, b) fixing possible crash during render
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/particle.c
trunk/blender/source/blender/render/intern/source/convertblender.c
Modified: trunk/blender/source/blender/blenkernel/intern/particle.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle.c 2008-08-25 21:41:50 UTC (rev 16254)
+++ trunk/blender/source/blender/blenkernel/intern/particle.c 2008-08-26 01:07:18 UTC (rev 16255)
@@ -379,8 +379,11 @@
}
/* free everything */
void psys_free(Object *ob, ParticleSystem * psys)
-{
+{
if(psys){
+ int nr = 0;
+ ParticleSystem * tpsys;
+
if(ob->particlesystem.first == NULL && G.f & G_PARTICLEEDIT)
G.f &= ~G_PARTICLEEDIT;
@@ -406,6 +409,21 @@
if(psys->effectors.first)
psys_end_effectors(psys);
+
+ // check if we are last non-visible particle system
+ for(tpsys=ob->particlesystem.first; tpsys; tpsys=tpsys->next){
+ if(tpsys->part)
+ {
+ if(ELEM(tpsys->part->draw_as,PART_DRAW_OB,PART_DRAW_GR))
+ {
+ nr++;
+ break;
+ }
+ }
+ }
+ // clear do-not-draw-flag
+ if(!nr)
+ ob->transflag &= ~OB_DUPLIPARTS;
if(psys->part){
psys->part->id.us--;
@@ -417,7 +435,7 @@
if(psys->pointcache)
BKE_ptcache_free(psys->pointcache);
-
+
MEM_freeN(psys);
}
}
Modified: trunk/blender/source/blender/render/intern/source/convertblender.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/convertblender.c 2008-08-25 21:41:50 UTC (rev 16254)
+++ trunk/blender/source/blender/render/intern/source/convertblender.c 2008-08-26 01:07:18 UTC (rev 16255)
@@ -1565,7 +1565,7 @@
float hasize, pa_size, pa_time, r_tilt, cfra=bsystem_time(ob,(float)CFRA,0.0);
float adapt_angle=0.0, adapt_pix=0.0, random, simplify[2];
int i, a, k, max_k=0, totpart, totuv=0, totcol=0, override_uv=-1, dosimplify = 0, dosurfacecache = 0;
- int path_possible=0, keys_possible=0, baked_keys=0, totchild=psys->totchild;
+ int path_possible=0, keys_possible=0, baked_keys=0, totchild=0;
int seed, path_nbr=0, path=0, orco1=0, adapt=0, uv[3]={0,0,0}, num;
int totface, *origindex = 0;
char **uv_name=0;
@@ -1573,6 +1573,8 @@
/* 1. check that everything is ok & updated */
if(psys==NULL)
return 0;
+
+ totchild=psys->totchild;
part=psys->part;
pars=psys->particles;
More information about the Bf-blender-cvs
mailing list