[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35560] branches/particles-2010/source/ blender: Added free function for texture delegates ( as in original tex nodes).

Lukas Toenne lukas.toenne at googlemail.com
Tue Mar 15 19:41:11 CET 2011


Revision: 35560
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35560
Author:   lukastoenne
Date:     2011-03-15 18:41:10 +0000 (Tue, 15 Mar 2011)
Log Message:
-----------
Added free function for texture delegates (as in original tex nodes). Fixed group socket drawing.

Modified Paths:
--------------
    branches/particles-2010/source/blender/blenkernel/intern/node.c
    branches/particles-2010/source/blender/editors/space_node/drawnode.c
    branches/particles-2010/source/blender/nodes/intern/TEX_nodetree.c

Modified: branches/particles-2010/source/blender/blenkernel/intern/node.c
===================================================================
--- branches/particles-2010/source/blender/blenkernel/intern/node.c	2011-03-15 09:04:26 UTC (rev 35559)
+++ branches/particles-2010/source/blender/blenkernel/intern/node.c	2011-03-15 18:41:10 UTC (rev 35560)
@@ -1377,7 +1377,6 @@
 {
 	bNodeTreeType *ntreetype= ntreeGetType(ntree->type);
 	bNode *node;
-	bNodeSocket *sock;
 	
 	/* update individual nodes */
 	for (node=ntree->nodes.first; node; node=node->next)

Modified: branches/particles-2010/source/blender/editors/space_node/drawnode.c
===================================================================
--- branches/particles-2010/source/blender/editors/space_node/drawnode.c	2011-03-15 09:04:26 UTC (rev 35559)
+++ branches/particles-2010/source/blender/editors/space_node/drawnode.c	2011-03-15 18:41:10 UTC (rev 35560)
@@ -477,7 +477,7 @@
 	offset = (in_out==SOCK_IN ? -114 : 42);
 	if (!gsock)
 		offset += (in_out==SOCK_IN ? NODE_GROUP_FRAME : -NODE_GROUP_FRAME);
-	if ((gsock && (gsock->flag & SOCK_INTERNAL)) || (in_out==SOCK_OUT && sock && sock->link)) {
+	if ((in_out==SOCK_IN && gsock && (gsock->flag & SOCK_INTERNAL)) || (in_out==SOCK_OUT && sock && sock->link)) {
 		/* only name, no value button */
 		if (gsock)
 			draw_group_socket_name(snode, gnode, gsock, in_out, offset, -NODE_DYS);
@@ -510,13 +510,13 @@
 		if (!gsock->prev || (gsock->prev->flag & SOCK_STATIC))
 			uiButSetFlag(bt, UI_BUT_DISABLED);
 		RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index);
-		RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_IN);
+		RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", in_out);
 		bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_move_down", 0, ICON_TRIA_DOWN,
 						   gsock->locx+offset, gsock->locy-16, 16, 16, "");
 		if (!gsock->next || (gsock->next->flag & SOCK_STATIC))
 			uiButSetFlag(bt, UI_BUT_DISABLED);
 		RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index);
-		RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_IN);
+		RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", in_out);
 		uiBlockEndAlign(gnode->block);
 		uiBlockSetDirection(gnode->block, 0);
 		
@@ -526,7 +526,7 @@
 		bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_remove", 0, ICON_X,
 						   gsock->locx+offset, gsock->locy-8, 16, 16, "");
 		RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index);
-		RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_IN);
+		RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", in_out);
 		uiBlockSetEmboss(gnode->block, UI_EMBOSS);
 	}
 }

Modified: branches/particles-2010/source/blender/nodes/intern/TEX_nodetree.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/TEX_nodetree.c	2011-03-15 09:04:26 UTC (rev 35559)
+++ branches/particles-2010/source/blender/nodes/intern/TEX_nodetree.c	2011-03-15 18:41:10 UTC (rev 35560)
@@ -61,12 +61,28 @@
 		node->need_exec= 1;
 }
 
+/* free texture delegates */
+static void tex_free_delegates(bNodeTreeExec *exec)
+{
+	bNodeThreadStack *nts;
+	bNodeStack *ns;
+	int th, a;
+	
+	for(th=0; th<BLENDER_MAX_THREADS; th++)
+		for(nts=exec->threadstack[th].first; nts; nts=nts->next)
+			for(ns= nts->stack, a=0; a<exec->stacksize; a++, ns++)
+				if(ns->data)
+					MEM_freeN(ns->data);
+}
+
 static void exec_end(bNodeTreeExec *exec)
 {
 	bNodeThreadStack *nts;
 	int a;
 	
 	if(exec->threadstack) {
+		tex_free_delegates(exec);
+		
 		for(a=0; a<BLENDER_MAX_THREADS; a++) {
 			for(nts=exec->threadstack[a].first; nts; nts=nts->next)
 				if (nts->stack) MEM_freeN(nts->stack);




More information about the Bf-blender-cvs mailing list