[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27688] trunk/blender/source/blender/ blenkernel/intern/node.c: workaround for compositor threading copying actions every time.
Brecht Van Lommel
brecht at blender.org
Tue Mar 23 16:34:09 CET 2010
Revision: 27688
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27688
Author: blendix
Date: 2010-03-23 16:34:07 +0100 (Tue, 23 Mar 2010)
Log Message:
-----------
workaround for compositor threading copying actions every time.
(commit 27684 by Campbell from render25 branch)
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/node.c
Modified: trunk/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/node.c 2010-03-23 15:31:12 UTC (rev 27687)
+++ trunk/blender/source/blender/blenkernel/intern/node.c 2010-03-23 15:34:07 UTC (rev 27688)
@@ -2519,10 +2519,39 @@
/* local tree then owns all compbufs */
bNodeTree *ntreeLocalize(bNodeTree *ntree)
{
- bNodeTree *ltree= ntreeCopyTree(ntree, 0);
+ bNodeTree *ltree;
bNode *node;
bNodeSocket *sock;
+ bAction *action_backup= NULL, *tmpact_backup= NULL;
+
+ /* Workaround for copying an action on each render!
+ * set action to NULL so animdata actions dont get copied */
+ AnimData *adt= BKE_animdata_from_id(&ntree->id);
+
+ if(adt) {
+ action_backup= adt->action;
+ tmpact_backup= adt->tmpact;
+
+ adt->action= NULL;
+ adt->tmpact= NULL;
+ }
+
+ /* node copy func */
+ ltree= ntreeCopyTree(ntree, 0);
+
+ if(adt) {
+ AnimData *ladt= BKE_animdata_from_id(<ree->id);
+
+ ladt->action = action_backup;
+ ladt->tmpact = tmpact_backup;
+
+ if(action_backup) action_backup->id.us++;
+ if(tmpact_backup) tmpact_backup->id.us++;
+
+ }
+ /* end animdata uglyness */
+
/* move over the compbufs */
/* right after ntreeCopyTree() oldsock pointers are valid */
for(node= ntree->nodes.first; node; node= node->next) {
More information about the Bf-blender-cvs
mailing list