diff options
author | Ton Roosendaal <ton@blender.org> | 2006-06-28 18:29:57 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-06-28 18:29:57 +0400 |
commit | 853cf242766bfd94811c7a55a8786c2080bb41f2 (patch) | |
tree | e0695c461341c847c84bd6815fc0b570a10b0611 /source | |
parent | a3e49a23d7c7679b640b2a565a772fa416349cac (diff) |
bugfix #4526
Depsgraph fix: the signal DAG_object_flush_update() should flush changes in
'data' to all object users of that data, not only in current scene.
Error was that switching scenes sometimes showed invalid derivedmesh data,
with bezerk drawing.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/depsgraph.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index c3443e524dc..8de599d452c 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -1811,7 +1811,6 @@ static unsigned int dag_screen_view3d_layers(void) use DAG_scene_flush_update() in end */ void DAG_object_flush_update(Scene *sce, Object *ob, short flag) { - Base *base; if(ob==NULL || sce->theDag==NULL) return; ob->recalc |= flag; @@ -1825,9 +1824,10 @@ void DAG_object_flush_update(Scene *sce, Object *ob, short flag) /* except when there's a key and shapes are locked */ if(ob_get_key(ob) && (ob->shapeflag & (OB_SHAPE_LOCK|OB_SHAPE_TEMPLOCK))); else { - for (base= sce->base.first; base; base= base->next) { - if (ob->data==base->object->data) { - base->object->recalc |= OB_RECALC_DATA; + Object *obt; + for (obt=G.main->object.first; obt; obt= obt->id.next) { + if (obt->data==ob->data) { + obt->recalc |= OB_RECALC_DATA; } } } |