This commit slows down dupligroups massively. Noted by Bassam too on IRC cheers Daniel Salazar
On Wed, Jan 12, 2011 at 10:53 AM, Campbell Barton <[email protected]> wrote: > Revision: 34284 > > http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=34284 > Author: campbellbarton > Date: 2011-01-12 16:53:27 +0000 (Wed, 12 Jan 2011) > Log Message: > ----------- > bugfix [#24774] Lattice modifier+Dupligroup+Texture solid=weird result > new 2.5x code was not passing group recalc flags onto objects within them. > > Modified Paths: > -------------- > trunk/blender/source/blender/blenkernel/intern/group.c > trunk/blender/source/blender/makesdna/DNA_group_types.h > > Modified: trunk/blender/source/blender/blenkernel/intern/group.c > =================================================================== > --- trunk/blender/source/blender/blenkernel/intern/group.c 2011-01-12 > 15:45:00 UTC (rev 34283) > +++ trunk/blender/source/blender/blenkernel/intern/group.c 2011-01-12 > 16:53:27 UTC (rev 34284) > @@ -364,17 +364,22 @@ > 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) > > Modified: trunk/blender/source/blender/makesdna/DNA_group_types.h > =================================================================== > --- trunk/blender/source/blender/makesdna/DNA_group_types.h 2011-01-12 > 15:45:00 UTC (rev 34283) > +++ trunk/blender/source/blender/makesdna/DNA_group_types.h 2011-01-12 > 16:53:27 UTC (rev 34284) > @@ -40,8 +40,8 @@ > 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; > > > > _______________________________________________ > Bf-blender-cvs mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-blender-cvs > _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
