[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34284] trunk/blender/source/blender: bugfix [#24774] Lattice modifier+Dupligroup+Texture solid=weird result

Daniel Salazar - 3Developer.com zanqdo at gmail.com
Thu Jan 13 09:45:16 CET 2011


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 <ideasman42 at gmail.com> 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
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>


More information about the Bf-committers mailing list