[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36516] branches/particles-2010/source/ blender: Removed the old experimental socket panel feature.

Lukas Toenne lukas.toenne at googlemail.com
Fri May 6 15:23:32 CEST 2011


Revision: 36516
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36516
Author:   lukastoenne
Date:     2011-05-06 13:23:31 +0000 (Fri, 06 May 2011)
Log Message:
-----------
Removed the old experimental socket panel feature. Only takes up space and is not that useful.
Fixed a null pointer freeing bug in ntreeUpdateTree when the tree is empty.

Modified Paths:
--------------
    branches/particles-2010/source/blender/blenkernel/BKE_node.h
    branches/particles-2010/source/blender/blenkernel/intern/node.c
    branches/particles-2010/source/blender/blenloader/intern/readfile.c
    branches/particles-2010/source/blender/blenloader/intern/writefile.c
    branches/particles-2010/source/blender/editors/space_node/drawnode.c
    branches/particles-2010/source/blender/editors/space_node/node_draw.c
    branches/particles-2010/source/blender/editors/space_node/node_edit.c
    branches/particles-2010/source/blender/makesdna/DNA_node_types.h
    branches/particles-2010/source/blender/makesrna/intern/rna_nodetree.c

Modified: branches/particles-2010/source/blender/blenkernel/BKE_node.h
===================================================================
--- branches/particles-2010/source/blender/blenkernel/BKE_node.h	2011-05-06 13:04:47 UTC (rev 36515)
+++ branches/particles-2010/source/blender/blenkernel/BKE_node.h	2011-05-06 13:23:31 UTC (rev 36516)
@@ -50,7 +50,6 @@
 struct bNodeSocket;
 struct bNodeStack;
 struct bNodeTree;
-struct bNodeSocketPanel;
 struct bNodeExec;
 struct bNodeTreeExec;
 struct GPUMaterial;
@@ -328,15 +327,6 @@
 void			nodeUnlinkNode(struct bNodeTree *ntree, struct bNode *node);
 void			nodeUniqueName(struct bNodeTree *ntree, struct bNode *node);
 
-struct bNodeSocketPanel *nodeFindInputPanel(struct bNode *node, const char *name);
-struct bNodeSocketPanel *nodeFindOutputPanel(struct bNode *node, const char *name);
-struct bNodeSocketPanel *nodeAddInputPanel(struct bNode *node, const char *name, void *storage);
-struct bNodeSocketPanel *nodeAddOutputPanel(struct bNode *node, const char *name, void *storage);
-void			nodeRemoveInputPanel(struct bNodeTree *ntree, struct bNode *node, struct bNodeSocketPanel *panel, int remove_sockets);
-void			nodeRemoveOutputPanel(struct bNodeTree *ntree, struct bNode *node, struct bNodeSocketPanel *panel, int remove_sockets);
-void			nodeAssignInputPanel(struct bNode *node, struct bNodeSocket *socket, struct bNodeSocketPanel *panel);
-void			nodeAssignOutputPanel(struct bNode *node, struct bNodeSocket *socket, struct bNodeSocketPanel *panel);
-
 void			nodeRegisterType(struct ListBase *typelist, struct bNodeType *ntype) ;
 void			nodeMakeDynamicType(struct bNode *node);
 int				nodeDynamicUnlinkText(struct ID *txtid);
@@ -354,9 +344,7 @@
 
 struct bNode	*nodeFindNodebyName(struct bNodeTree *ntree, const char *name);
 int				nodeFindNode(struct bNodeTree *ntree, struct bNodeSocket *sock, struct bNode **nodep, int *sockindex, int *in_out);
-int				nodeFindNodeByPanel(struct bNodeTree *ntree, struct bNodeSocketPanel *panel, struct bNode **nodep, int *panelindex);
 
-
 struct bNodeLink *nodeFindLink(struct bNodeTree *ntree, struct bNodeSocket *from, struct bNodeSocket *to);
 int				nodeCountSocketLinks(struct bNodeTree *ntree, struct bNodeSocket *sock);
 

Modified: branches/particles-2010/source/blender/blenkernel/intern/node.c
===================================================================
--- branches/particles-2010/source/blender/blenkernel/intern/node.c	2011-05-06 13:04:47 UTC (rev 36515)
+++ branches/particles-2010/source/blender/blenkernel/intern/node.c	2011-05-06 13:23:31 UTC (rev 36516)
@@ -250,138 +250,6 @@
 	ntree->update |= NTREE_UPDATE_NODES;
 }
 
-bNodeSocketPanel *nodeFindInputPanel(bNode *node, const char *name)
-{
-	bNodeSocketPanel *panel= node->inpanels.first;
-	for (; panel; panel = panel->next) {
-		if (strcmp(panel->name, name)==0)
-			return panel;
-	}
-	return NULL;
-}
-
-bNodeSocketPanel *nodeFindOutputPanel(bNode *node, const char *name)
-{
-	bNodeSocketPanel *panel= node->outpanels.first;
-	for (; panel; panel = panel->next) {
-		if (strcmp(panel->name, name)==0)
-			return panel;
-	}
-	return NULL;
-}
-
-bNodeSocketPanel *nodeAddInputPanel(bNode *node, const char *name, void *storage)
-{
-	bNodeSocketPanel *panel= nodeFindInputPanel(node, name);
-	if (panel)
-		return panel;
-	panel = MEM_callocN(sizeof(bNodeSocketPanel), "node socket panel");
-	strcpy(panel->name, name);
-	panel->collapsed = 0;
-	panel->storage = storage;
-	
-	BLI_addtail(&node->inpanels, panel);
-	return panel;
-}
-
-bNodeSocketPanel *nodeAddOutputPanel(bNode *node, const char *name, void *storage)
-{
-	bNodeSocketPanel *panel= nodeFindOutputPanel(node, name);
-	if (panel)
-		return panel;
-	panel = MEM_callocN(sizeof(bNodeSocketPanel), "node socket panel");
-	strcpy(panel->name, name);
-	panel->collapsed = 0;
-	panel->storage = storage;
-	
-	BLI_addtail(&node->outpanels, panel);
-	return panel;
-}
-
-void nodeRemoveInputPanel(bNodeTree *ntree, bNode *node, bNodeSocketPanel *panel, int remove_sockets)
-{
-	bNodeSocket *sock = node->inputs.first;
-	if (remove_sockets) {
-		for (; sock; sock = sock->next)
-			nodeRemoveSocket(ntree, node, sock);
-	}
-	else {
-		for (; sock; sock = sock->next)
-			sock->panel = NULL;
-	}
-	
-	BLI_remlink(&node->inpanels, panel);
-	if (panel->storage)
-		MEM_freeN(panel->storage);
-	MEM_freeN(panel);
-}
-
-void nodeRemoveOutputPanel(bNodeTree *ntree, bNode *node, bNodeSocketPanel *panel, int remove_sockets)
-{
-	bNodeSocket *sock = node->outputs.first;
-	if (remove_sockets) {
-		for (; sock; sock = sock->next)
-			nodeRemoveSocket(ntree, node, sock);
-	}
-	else {
-		for (; sock; sock = sock->next)
-			sock->panel = NULL;
-	}
-	
-	BLI_remlink(&node->outpanels, panel);
-	if (panel->storage)
-		MEM_freeN(panel->storage);
-	MEM_freeN(panel);
-}
-
-void nodeAssignInputPanel(bNode *node, bNodeSocket *socket, bNodeSocketPanel *panel)
-{
-	bNodeSocket *list;
-	if (socket->panel == panel)
-		return;
-	
-	/* make sure the socket is inside the panel block (also moves NULL panel out of blocks) */
-	list = socket->prev;
-	while (list && list->panel != panel) list = list->prev;
-	if (list && list != socket->prev) {
-		BLI_remlink(&node->inputs, socket);
-		BLI_insertlinkafter(&node->inputs, list, socket);
-	}
-	else {
-		list = socket->next;
-		while (list && list->panel != panel) list = list->next;
-		if (list && list != socket->next) {
-			BLI_remlink(&node->inputs, socket);
-			BLI_insertlinkbefore(&node->inputs, list, socket);
-		}
-	}
-	socket->panel = panel;
-}
-
-void nodeAssignOutputPanel(bNode *node, bNodeSocket *socket, bNodeSocketPanel *panel)
-{
-	bNodeSocket *list;
-	if (socket->panel == panel)
-		return;
-	
-	/* make sure the socket is inside the panel block (also moves NULL panel out of blocks) */
-	list = socket->prev;
-	while (list && list->panel != panel) list = list->prev;
-	if (list && list != socket->prev) {
-		BLI_remlink(&node->outputs, socket);
-		BLI_insertlinkafter(&node->outputs, list, socket);
-	}
-	else {
-		list = socket->next;
-		while (list && list->panel != panel) list = list->next;
-		if (list && list != socket->next) {
-			BLI_remlink(&node->outputs, socket);
-			BLI_insertlinkbefore(&node->outputs, list, socket);
-		}
-	}
-	socket->panel = panel;
-}
-
 /* finds a node based on its name */
 bNode *nodeFindNodebyName(bNodeTree *ntree, const char *name)
 {
@@ -424,36 +292,6 @@
 	return 0;
 }
 
-int nodeFindNodeByPanel(bNodeTree *ntree, bNodeSocketPanel *panel, bNode **nodep, int *panelindex)
-{
-	bNode *node;
-	bNodeSocketPanel *tpanel;
-	int index= 0;
-	
-	for(node= ntree->nodes.first; node; node= node->next) {
-		for(index=0, tpanel= node->inpanels.first; tpanel; tpanel= tpanel->next, index++)
-			if(tpanel==panel)
-				break;
-		if(tpanel)
-			break;
-		for(index=0, tpanel= node->outputs.first; tpanel; tpanel= tpanel->next, index++)
-			if(tpanel==panel)
-				break;
-		if(tpanel)
-			break;
-	}
-	
-	if(node) {
-		*nodep= node;
-		if (panelindex)
-			*panelindex = index;
-		return 1;
-	}
-	
-	*nodep= NULL;
-	return 0;
-}
-
 /* ************** Add stuff ********** */
 static void node_add_sockets_from_type(bNodeTree *ntree, bNode *node, bNodeType *ntype)
 {
@@ -548,27 +386,12 @@
 {
 	bNode *nnode= MEM_callocN(sizeof(bNode), "dupli node");
 	bNodeSocket *sock, *oldsock;
-	bNodeSocketPanel *panel, *oldpanel;
 
 	*nnode= *node;
 	nodeUniqueName(ntree, nnode);
 	
 	BLI_addtail(&ntree->nodes, nnode);
 
-	BLI_duplicatelist(&nnode->inpanels, &node->inpanels);
-	for(panel= nnode->inpanels.first, oldpanel= node->inpanels.first; panel; panel= panel->next, oldpanel= oldpanel->next) {
-		oldpanel->new_panel= panel;
-		if (panel->storage)
-			oldpanel->storage = MEM_dupallocN(panel->storage);
-	}
-	
-	BLI_duplicatelist(&nnode->outpanels, &node->outpanels);
-	for(panel= nnode->outpanels.first, oldpanel= node->outpanels.first; panel; panel= panel->next, oldpanel= oldpanel->next) {
-		oldpanel->new_panel= panel;
-		if (panel->storage)
-			oldpanel->storage = MEM_dupallocN(panel->storage);
-	}
-
 	BLI_duplicatelist(&nnode->inputs, &node->inputs);
 	oldsock= node->inputs.first;
 	for(sock= nnode->inputs.first; sock; sock= sock->next, oldsock= oldsock->next) {
@@ -576,9 +399,6 @@
 		sock->stack_index= 0;
 		
 		sock->default_value = (oldsock->default_value ? MEM_dupallocN(oldsock->default_value) : NULL);
-		
-		if (sock->panel)
-			sock->panel = sock->panel->new_panel;
 	}
 	
 	BLI_duplicatelist(&nnode->outputs, &node->outputs);
@@ -588,9 +408,6 @@
 		sock->stack_index= 0;
 		
 		sock->default_value = (oldsock->default_value ? MEM_dupallocN(oldsock->default_value) : NULL);
-		
-		if (sock->panel)
-			sock->panel = sock->panel->new_panel;
 	}
 	
 	/* don't increase node->id users, freenode doesn't decrement either */
@@ -1031,7 +848,6 @@
 {
 	bNodeTreeType *treetype= ntreeGetType(ntree->type);
 	bNodeSocket *sock, *nextsock;
-	bNodeSocketPanel *panel, *nextpanel;
 	
 	/* remove all references to this node */
 	nodeUnlinkNode(ntree, node);
@@ -1057,19 +873,6 @@
 		MEM_freeN(sock);
 	}
 
-	for (panel=node->inpanels.first; panel; panel = nextpanel) {
-		nextpanel = panel->next;
-		if (panel->storage)
-			MEM_freeN(panel->storage);
-		MEM_freeN(panel);
-	}
-	for (panel=node->outpanels.first; panel; panel = nextpanel) {
-		nextpanel = panel->next;
-		if (panel->storage)
-			MEM_freeN(panel->storage);
-		MEM_freeN(panel);
-	}
-
 	nodeFreePreview(node);
 
 	if(node->typeinfo && node->typeinfo->freestoragefunc) {
@@ -1680,17 +1483,19 @@
 	/* also updates the node level! */
 	ntreeGetDependencyList(ntree, &deplist, &totnodes);
 	
-	/* update individual nodes */
-	for (n=0; n < totnodes; ++n) {
-		node = deplist[n];
-		if (ntreetype->updateNode)
-			ntreetype->updateNode(ntree, node);
-		else if (node->typeinfo->updatefunc)
-			node->typeinfo->updatefunc(ntree, node);
+	if (deplist) {
+		/* update individual nodes */
+		for (n=0; n < totnodes; ++n) {
+			node = deplist[n];
+			if (ntreetype->updateNode)
+				ntreetype->updateNode(ntree, node);
+			else if (node->typeinfo->updatefunc)
+				node->typeinfo->updatefunc(ntree, node);
+		}
+		
+		MEM_freeN(deplist);
 	}
 	
-	MEM_freeN(deplist);
-	
 	/* general tree updates */
 	if (ntree->update & (NTREE_UPDATE_LINKS|NTREE_UPDATE_NODES)) {
 		ntree_validate_links(ntree);

Modified: branches/particles-2010/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/particles-2010/source/blender/blenloader/intern/readfile.c	2011-05-06 13:04:47 UTC (rev 36515)

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list