[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