[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27684] branches/render25/source/blender/ blenkernel/intern/node.c: workaround for compositor threading copying actions every time.

Campbell Barton ideasman42 at gmail.com
Tue Mar 23 16:20:13 CET 2010


Revision: 27684
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27684
Author:   campbellbarton
Date:     2010-03-23 16:20:05 +0100 (Tue, 23 Mar 2010)

Log Message:
-----------
workaround for compositor threading copying actions every time.

Modified Paths:
--------------
    branches/render25/source/blender/blenkernel/intern/node.c

Modified: branches/render25/source/blender/blenkernel/intern/node.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/node.c	2010-03-23 15:18:09 UTC (rev 27683)
+++ branches/render25/source/blender/blenkernel/intern/node.c	2010-03-23 15:20:05 UTC (rev 27684)
@@ -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(&ltree->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