[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53762] trunk/blender/source/blender/ blenloader/intern/readfile.c: Usability:

Ton Roosendaal ton at blender.org
Sun Jan 13 12:31:06 CET 2013


Revision: 53762
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53762
Author:   ton
Date:     2013-01-13 11:31:01 +0000 (Sun, 13 Jan 2013)
Log Message:
-----------
Usability: 

Using Proxy Armature on groups: an Undo now doesn't force a complete re-evalution
of this system anymore, so posing works similar as for regular (non linked)
armatures - an undo step goes back to the previous pose.

Before, an undo made the entire armature go to rest pose. Bad bad :)

I need animators to carefully check - report back if there's other issues!
Tested on Gilga character from Tube Open Movie.

Modified Paths:
--------------
    trunk/blender/source/blender/blenloader/intern/readfile.c

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2013-01-13 08:38:14 UTC (rev 53761)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2013-01-13 11:31:01 UTC (rev 53762)
@@ -1863,6 +1863,7 @@
 				prv->rect[i] = newdataadr(fd, prv->rect[i]);
 			}
 		}
+		prv->gputexture[0] = prv->gputexture[1] = NULL;
 	}
 	
 	return prv;
@@ -2723,15 +2724,16 @@
 {
 	bPoseChannel *pchan;
 	bArmature *arm = ob->data;
-	int rebuild;
+	int rebuild = 0;
 	
 	if (!pose || !arm)
 		return;
 	
+	/* always rebuild to match proxy or lib changes, but on Undo */
+	if (fd->memfile == NULL)
+		if (ob->proxy || (ob->id.lib==NULL && arm->id.lib))
+			rebuild = 1;
 	
-	/* always rebuild to match proxy or lib changes */
-	rebuild = ob->proxy || (ob->id.lib==NULL && arm->id.lib);
-	
 	if (ob->proxy) {
 		/* sync proxy layer */
 		if (pose->proxy_layer)
@@ -4175,8 +4177,6 @@
 				else {
 					/* this triggers object_update to always use a copy */
 					ob->proxy->proxy_from = ob;
-					/* force proxy updates after load/undo, a bit weak */
-					ob->recalc = ob->proxy->recalc = (OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME);
 				}
 			}
 			ob->proxy_group = newlibadr(fd, ob->id.lib, ob->proxy_group);




More information about the Bf-blender-cvs mailing list