Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2013-01-13 15:31:01 +0400
committerTon Roosendaal <ton@blender.org>2013-01-13 15:31:01 +0400
commit6e990de9b0ef813c96524d996b383f56da2b548c (patch)
tree2fae0757de00aec0aebde706dcaca42108cc9c65 /source/blender/blenloader
parent61b9f39fc70e6502ca7a4a3152d572eba9ce6e95 (diff)
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.
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r--source/blender/blenloader/intern/readfile.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 44499f1ae77..0727b1585d5 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -1863,6 +1863,7 @@ static PreviewImage *direct_link_preview_image(FileData *fd, PreviewImage *old_p
prv->rect[i] = newdataadr(fd, prv->rect[i]);
}
}
+ prv->gputexture[0] = prv->gputexture[1] = NULL;
}
return prv;
@@ -2723,14 +2724,15 @@ static void lib_link_pose(FileData *fd, Object *ob, bPose *pose)
{
bPoseChannel *pchan;
bArmature *arm = ob->data;
- int rebuild;
+ int rebuild = 0;
if (!pose || !arm)
return;
-
- /* always rebuild to match proxy or lib changes */
- rebuild = ob->proxy || (ob->id.lib==NULL && arm->id.lib);
+ /* 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;
if (ob->proxy) {
/* sync proxy layer */
@@ -4175,8 +4177,6 @@ static void lib_link_object(FileData *fd, Main *main)
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);