Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2006-09-17 17:12:57 +0400
committerTon Roosendaal <ton@blender.org>2006-09-17 17:12:57 +0400
commit0d4f5335bf7ea1b8548ba8a30c4a5fa909729b18 (patch)
tree940a44bc6fa2da3a3b2558d41724b7ef74e5d294 /source
parent3eb8262cb5346bed03e6fcc245bb1ea6b101caea (diff)
Bugfix #4925
When using a particle system in a dupli-group, and the group is in the current scene but not visible, the particles are calculated on wrong position. This is the recurring trouble with particle calculating... which doesn't do despgraph stuff. This commit fixes the error, but it will still display particles *once* (one draw) on the wrong location. That's a lag in the system I cannot solve quickly... Note that this system does work OK when you put the group in another Scene, or linked from another file. That's what it was coded for...
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c1
-rw-r--r--source/blender/blenkernel/intern/effect.c6
2 files changed, 4 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 339958e2041..e1140b7c442 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -3307,7 +3307,6 @@ void makeDispListMesh(Object *ob)
mesh_build_data(ob);
if(paf) {
- printf("ob %s %d\n", ob->id.name, ob->recalc);
if((paf->flag & PAF_STATIC) || (ob->recalc & OB_RECALC_TIME)==0)
build_particle_system(ob);
}
diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c
index 4289bf627bd..223255808a7 100644
--- a/source/blender/blenkernel/intern/effect.c
+++ b/source/blender/blenkernel/intern/effect.c
@@ -1559,8 +1559,10 @@ static pMatrixCache *cache_object_matrices(Object *ob, int start, int end)
/* all objects get tagged recalc that influence this object (does group too) */
/* another hack; while transform you cannot call this, it sets own recalc flags */
- if(G.moving==0)
- DAG_object_update_flags(G.scene, ob, G.scene->lay);
+ if(G.moving==0) {
+ ob->recalc |= OB_RECALC_OB; /* make sure a recalc gets flushed */
+ DAG_object_update_flags(G.scene, ob, -1);
+ }
for(G.scene->r.cfra= start; G.scene->r.cfra<=end; G.scene->r.cfra++, mc++) {