[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