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

Campbell Barton ideasman42 at gmail.com
Wed Jan 12 17:53:27 CET 2011


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;
 
 




More information about the Bf-blender-cvs mailing list