diff options
Diffstat (limited to 'source/blender/blenkernel/intern/node.c')
-rw-r--r-- | source/blender/blenkernel/intern/node.c | 66 |
1 files changed, 6 insertions, 60 deletions
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 445105d254a..22286e57c0a 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -29,13 +29,6 @@ * \ingroup bke */ - -#if 0 /* pynodes commented for now */ -# ifdef WITH_PYTHON -# include <Python.h> -# endif -#endif - #include "MEM_guardedalloc.h" #include <stdlib.h> @@ -135,20 +128,9 @@ void ntreeInitTypes(bNodeTree *ntree) for (node= ntree->nodes.first; node; node= next) { next= node->next; - node->typeinfo= node_get_type(ntree, node->type); - - if (node->type==NODE_DYNAMIC) { - /* needed info if the pynode script fails now: */ - node->storage= ntree; - if (node->id!=NULL) { /* not an empty script node */ - node->custom1 = 0; - node->custom1 = BSET(node->custom1, NODE_DYNAMIC_ADDEXIST); - } -// if (node->typeinfo) -// node->typeinfo->initfunc(node); - } + node->typeinfo = node_get_type(ntree, node->type); - if (node->typeinfo==NULL) { + if (node->typeinfo == NULL) { printf("Error: Node type %s doesn't exist anymore, removed\n", node->name); nodeFreeNode(ntree, node); } @@ -354,26 +336,6 @@ bNode *nodeAddNode(bNodeTree *ntree, struct bNodeTemplate *ntemp) return node; } -void nodeMakeDynamicType(bNode *node) -{ - /* find SH_DYNAMIC_NODE ntype */ - bNodeType *ntype= ntreeGetType(NTREE_SHADER)->node_types.first; - while (ntype) { - if (ntype->type==NODE_DYNAMIC) - break; - ntype= ntype->next; - } - - /* make own type struct to fill */ - if (ntype) { - /*node->typeinfo= MEM_dupallocN(ntype);*/ - bNodeType *newtype= MEM_callocN(sizeof(bNodeType), "dynamic bNodeType"); - *newtype= *ntype; - BLI_strncpy(newtype->name, ntype->name, sizeof(newtype->name)); - node->typeinfo= newtype; - } -} - /* keep socket listorder identical, for copying links */ /* ntree is the target tree */ bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node) @@ -1860,6 +1822,7 @@ void nodeRegisterType(bNodeTreeType *ttype, bNodeType *ntype) static void registerCompositNodes(bNodeTreeType *ttype) { register_node_type_frame(ttype); + register_node_type_reroute(ttype); register_node_type_cmp_group(ttype); // register_node_type_cmp_forloop(ttype); @@ -1952,6 +1915,7 @@ static void registerCompositNodes(bNodeTreeType *ttype) static void registerShaderNodes(bNodeTreeType *ttype) { register_node_type_frame(ttype); + register_node_type_reroute(ttype); register_node_type_sh_group(ttype); //register_node_type_sh_forloop(ttype); @@ -1976,7 +1940,6 @@ static void registerShaderNodes(bNodeTreeType *ttype) register_node_type_sh_math(ttype); register_node_type_sh_vect_math(ttype); register_node_type_sh_squeeze(ttype); - //register_node_type_sh_dynamic(ttype); register_node_type_sh_material_ext(ttype); register_node_type_sh_invert(ttype); register_node_type_sh_seprgb(ttype); @@ -2025,6 +1988,7 @@ static void registerShaderNodes(bNodeTreeType *ttype) static void registerTextureNodes(bNodeTreeType *ttype) { register_node_type_frame(ttype); + register_node_type_reroute(ttype); register_node_type_tex_group(ttype); // register_node_type_tex_forloop(ttype); @@ -2069,30 +2033,12 @@ static void registerTextureNodes(bNodeTreeType *ttype) register_node_type_tex_proc_distnoise(ttype); } -static void free_dynamic_typeinfo(bNodeType *ntype) -{ - if (ntype->type==NODE_DYNAMIC) { - if (ntype->inputs) { - MEM_freeN(ntype->inputs); - } - if (ntype->outputs) { - MEM_freeN(ntype->outputs); - } - if (ntype->name) { - MEM_freeN((void *)ntype->name); - } - } -} - static void free_typeinfos(ListBase *list) { bNodeType *ntype, *next; for (ntype=list->first; ntype; ntype=next) { next = ntype->next; - - if (ntype->type==NODE_DYNAMIC) - free_dynamic_typeinfo(ntype); - + if (ntype->needs_free) MEM_freeN(ntype); } |