bugfix [#24774] Lattice modifier+Dupligroup+Texture solid=weird result

new 2.5x code was not passing group recalc flags onto objects within them.
This commit is contained in:
Campbell Barton
2011-01-12 16:53:27 +00:00
parent 0384be9644
commit 792f3b11f9
2 changed files with 13 additions and 8 deletions

View File

@@ -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)

View File

@@ -40,8 +40,8 @@ typedef struct GroupObject {
struct GroupObject *next, *prev;
struct Object *ob;
void *lampren; /* used while render */
int recalc; /* copy of ob->recalc, used to set animated groups OK */
int pad;
short recalc; /* copy of ob->recalc, used to set animated groups OK */
char pad[6];
} GroupObject;