diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-01-12 19:53:27 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-01-12 19:53:27 +0300 |
commit | 792f3b11f952be344ef24bc5879883a156b0e04f (patch) | |
tree | eec6b1d4a7c5945abfcd0b8683a4e26228539d18 /source/blender/blenkernel/intern/group.c | |
parent | 0384be9644b58122110aa66f5ccfc59cc0d89db4 (diff) |
bugfix [#24774] Lattice modifier+Dupligroup+Texture solid=weird result
new 2.5x code was not passing group recalc flags onto objects within them.
Diffstat (limited to 'source/blender/blenkernel/intern/group.c')
-rw-r--r-- | source/blender/blenkernel/intern/group.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/group.c b/source/blender/blenkernel/intern/group.c index e48ec8ac288..3b8daced657 100644 --- a/source/blender/blenkernel/intern/group.c +++ b/source/blender/blenkernel/intern/group.c @@ -364,17 +364,22 @@ void group_handle_recalc_and_update(Scene *scene, Object *UNUSED(parent), Group scene->r.cfra= cfrao; } else -#endif +#else { - /* only do existing tags, as set by regular depsgraph */ + /* use 2 loops to avoid updating objects multiple times */ for(go= group->gobject.first; go; go= go->next) { - if(go->ob) { - if(go->ob->recalc) { - object_handle_update(scene, go->ob); - } + if(go->ob && go->recalc) { + go->ob->recalc |= go->recalc; + } + } + + for(go= group->gobject.first; go; go= go->next) { + if(go->ob && go->recalc) { + object_handle_update(scene, go->ob); } } } +#endif } Object *group_get_member_with_action(Group *group, bAction *act) |