diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index 616bca078f5..3da04b21170 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -66,6 +66,7 @@ typedef struct bNodeSocketType { } bNodeSocketType; typedef struct bNodeType { + void *next,*prev; int type; char *name; float width, minwidth, maxwidth; @@ -102,6 +103,7 @@ void ntreeVerifyTypes(struct bNodeTree *ntree); struct bNodeTree *ntreeAddTree(int type); void ntreeInitTypes(struct bNodeTree *ntree); + void ntreeMakeOwnType(struct bNodeTree *ntree); void ntreeFreeTree(struct bNodeTree *ntree); struct bNodeTree *ntreeCopyTree(struct bNodeTree *ntree, int internal_select); @@ -196,7 +198,7 @@ struct ShadeResult; #define SH_NODE_MAT_NEG 4 /* the type definitions array */ -static bNodeType *node_all_shaders[]; +extern struct ListBase node_all_shaders; /* API */ @@ -293,7 +295,7 @@ void set_node_shader_lamp_loop(void (*lamp_loop_func)(struct ShadeInput *, str /* the type definitions array */ -static bNodeType* node_all_composit[]; +extern struct ListBase node_all_composit; /* API */ struct CompBuf; @@ -304,4 +306,7 @@ void ntreeCompositForceHidden(struct bNodeTree *ntree); void free_compbuf(struct CompBuf *cbuf); /* internal...*/ +void init_nodesystem(void); +void free_nodesystem(void); + #endif diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 84e88ee98f3..4ec678e363e 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -66,6 +66,10 @@ /* not very important, but the stack solver likes to know a maximum */ #define MAX_SOCKET 64 +static ListBase empty_list = {NULL, NULL}; +ListBase node_all_composit = {NULL, NULL}; +ListBase node_all_shaders = {NULL, NULL}; + /* ************** Type stuff ********** */ static bNodeType *node_get_type(bNodeTree *ntree, int type, bNodeTree *ngroup) @@ -77,12 +81,12 @@ static bNodeType *node_get_type(bNodeTree *ntree, int type, bNodeTree *ngroup) return NULL; } else { - bNodeType **typedefs= ntree->alltypes; + bNodeType *ntype = ntree->alltypes.first; + for(; ntype; ntype= ntype->next) + if(ntype->type==type) + return ntype; - while( *typedefs && (*typedefs)->type!=type) - typedefs++; - - return *typedefs; + return NULL; } } @@ -95,7 +99,7 @@ void ntreeInitTypes(bNodeTree *ntree) else if(ntree->type==NTREE_COMPOSIT) ntree->alltypes= node_all_composit; else { - ntree->alltypes= NULL; + ntree->alltypes= empty_list; printf("Error: no type definitions for nodes\n"); } @@ -223,10 +227,9 @@ void ntreeVerifyTypes(bNodeTree *ntree) { bNode *node; - /* commented out, in linux a 2nd initialize on a Scene ntree from a lib crashes... */ -/* if((ntree->init & NTREE_TYPE_INIT)==0) */ - ntreeInitTypes(ntree); - + /* if((ntree->init & NTREE_TYPE_INIT)==0) */ + ntreeInitTypes(ntree); + /* check inputs and outputs, and remove or insert them */ for(node= ntree->nodes.first; node; node= node->next) nodeVerifyType(ntree, node); @@ -236,6 +239,7 @@ void ntreeVerifyTypes(bNodeTree *ntree) /* ************** Group stuff ********** */ bNodeType node_group_typeinfo= { + /* next,prev */ NULL, NULL, /* type code */ NODE_GROUP, /* name */ "Group", /* width+range */ 120, 60, 200, @@ -244,7 +248,8 @@ bNodeType node_group_typeinfo= { /* output sock */ NULL, /* storage */ "", /* execfunc */ NULL, - + /* butfunc */ NULL, + /* initfunc */ NULL }; /* tag internal sockets */ @@ -345,7 +350,7 @@ void ntreeMakeOwnType(bNodeTree *ngroup) /* make own type struct */ ngroup->owntype= MEM_mallocN(sizeof(bNodeType), "group type"); - *ngroup->owntype= node_group_typeinfo; + *ngroup->owntype= node_group_typeinfo; /* copy data, for init */ /* input type arrays */ if(totin) { @@ -863,6 +868,8 @@ bNodeTree *ntreeAddTree(int type) { bNodeTree *ntree= MEM_callocN(sizeof(bNodeTree), "new node tree"); ntree->type= type; + ntree->alltypes.first = NULL; + ntree->alltypes.last = NULL; ntreeInitTypes(ntree); return ntree; @@ -2296,3 +2303,122 @@ void ntreeCompositTagGenerators(bNodeTree *ntree) } } +/* ************* node definition init ********** */ + +static bNodeType *is_nodetype_registered(ListBase *typelist, int type) +{ + bNodeType *ntype= typelist->first; + + for(;ntype; ntype= ntype->next ) + if(ntype->type==type) + return ntype; + + return NULL; +} + +/* type can be from a static array, we make copy for duplicate types (like group) */ +void nodeRegisterType(ListBase *typelist, const bNodeType *ntype) +{ + bNodeType *found= is_nodetype_registered(typelist, ntype->type); + + if(found==NULL) { + bNodeType *ntypen= MEM_mallocN(sizeof(bNodeType), "node type"); + *ntypen= *ntype; + BLI_addtail(typelist, ntypen); + } +} + +static void registerCompositNodes(ListBase *ntypelist) +{ + nodeRegisterType(ntypelist, &node_group_typeinfo); + nodeRegisterType(ntypelist, &cmp_node_rlayers); + nodeRegisterType(ntypelist, &cmp_node_image); + nodeRegisterType(ntypelist, &cmp_node_texture); + nodeRegisterType(ntypelist, &cmp_node_value); + nodeRegisterType(ntypelist, &cmp_node_rgb); + nodeRegisterType(ntypelist, &cmp_node_curve_time); + + nodeRegisterType(ntypelist, &cmp_node_composite); + nodeRegisterType(ntypelist, &cmp_node_viewer); + nodeRegisterType(ntypelist, &cmp_node_splitviewer); + nodeRegisterType(ntypelist, &cmp_node_output_file); + + nodeRegisterType(ntypelist, &cmp_node_curve_rgb); + nodeRegisterType(ntypelist, &cmp_node_mix_rgb); + nodeRegisterType(ntypelist, &cmp_node_hue_sat); + nodeRegisterType(ntypelist, &cmp_node_alphaover); + nodeRegisterType(ntypelist, &cmp_node_zcombine); + + nodeRegisterType(ntypelist, &cmp_node_normal); + nodeRegisterType(ntypelist, &cmp_node_curve_vec); + nodeRegisterType(ntypelist, &cmp_node_map_value); + + nodeRegisterType(ntypelist, &cmp_node_filter); + nodeRegisterType(ntypelist, &cmp_node_blur); + nodeRegisterType(ntypelist, &cmp_node_vecblur); + nodeRegisterType(ntypelist, &cmp_node_dilateerode); + nodeRegisterType(ntypelist, &cmp_node_defocus); + + nodeRegisterType(ntypelist, &cmp_node_valtorgb); + nodeRegisterType(ntypelist, &cmp_node_rgbtobw); + nodeRegisterType(ntypelist, &cmp_node_setalpha); + nodeRegisterType(ntypelist, &cmp_node_idmask); + nodeRegisterType(ntypelist, &cmp_node_math); + nodeRegisterType(ntypelist, &cmp_node_seprgba); + nodeRegisterType(ntypelist, &cmp_node_combrgba); + nodeRegisterType(ntypelist, &cmp_node_sephsva); + nodeRegisterType(ntypelist, &cmp_node_combhsva); + nodeRegisterType(ntypelist, &cmp_node_sepyuva); + nodeRegisterType(ntypelist, &cmp_node_combyuva); + nodeRegisterType(ntypelist, &cmp_node_sepycca); + nodeRegisterType(ntypelist, &cmp_node_combycca); + + nodeRegisterType(ntypelist, &cmp_node_diff_matte); + nodeRegisterType(ntypelist, &cmp_node_chroma); + nodeRegisterType(ntypelist, &cmp_node_channel_matte); + nodeRegisterType(ntypelist, &cmp_node_color_spill); + nodeRegisterType(ntypelist, &cmp_node_luma_matte); + + nodeRegisterType(ntypelist, &cmp_node_translate); + nodeRegisterType(ntypelist, &cmp_node_rotate); + nodeRegisterType(ntypelist, &cmp_node_scale); + nodeRegisterType(ntypelist, &cmp_node_flip); + nodeRegisterType(ntypelist, &cmp_node_displace); + nodeRegisterType(ntypelist, &cmp_node_mapuv); +} + +static void registerShaderNodes(ListBase *ntypelist) +{ + nodeRegisterType(ntypelist, &node_group_typeinfo); + nodeRegisterType(ntypelist, &sh_node_output); + nodeRegisterType(ntypelist, &sh_node_mix_rgb); + nodeRegisterType(ntypelist, &sh_node_valtorgb); + nodeRegisterType(ntypelist, &sh_node_rgbtobw); + nodeRegisterType(ntypelist, &sh_node_normal); + nodeRegisterType(ntypelist, &sh_node_geom); + nodeRegisterType(ntypelist, &sh_node_mapping); + nodeRegisterType(ntypelist, &sh_node_curve_vec); + nodeRegisterType(ntypelist, &sh_node_curve_rgb); + nodeRegisterType(ntypelist, &sh_node_math); + nodeRegisterType(ntypelist, &sh_node_vect_math); + nodeRegisterType(ntypelist, &sh_node_squeeze); + nodeRegisterType(ntypelist, &sh_node_camera); + nodeRegisterType(ntypelist, &sh_node_material); + nodeRegisterType(ntypelist, &sh_node_value); + nodeRegisterType(ntypelist, &sh_node_rgb); + nodeRegisterType(ntypelist, &sh_node_texture); +} + +void init_nodesystem(void) +{ + registerCompositNodes(&node_all_composit); + registerShaderNodes(&node_all_shaders); +} + +void free_nodesystem(void) +{ + BLI_freelistN(&node_all_composit); + BLI_freelistN(&node_all_shaders); +} + + diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 27765b2ff34..63ead419766 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -34,7 +34,7 @@ #include "DNA_vec_types.h" #include "DNA_listBase.h" - +struct ListBase; struct SpaceNode; struct bNodeLink; struct bNodeType; @@ -162,10 +162,11 @@ typedef struct bNodeTree { int type, init; /* set init on fileread */ int stacksize; /* amount of elements in stack */ - int cur_index; /* sockets in groups have unique identifiers, adding new sockets always will increase this counter */ - struct bNodeType **alltypes; /* type definitions, set on fileread, no read/write */ + int cur_index; /* sockets in groups have unique identifiers, adding new sockets always + will increase this counter */ + ListBase alltypes; /* type definitions */ struct bNodeType *owntype; /* for groups or dynamic trees, no read/write */ - + /* callbacks */ void (*timecursor)(int nr); void (*stats_draw)(char *str); diff --git a/source/blender/nodes/CMP_node.h b/source/blender/nodes/CMP_node.h index b35c2cba18f..8335538e448 100644 --- a/source/blender/nodes/CMP_node.h +++ b/source/blender/nodes/CMP_node.h @@ -91,67 +91,8 @@ extern bNodeType cmp_node_rotate; extern bNodeType cmp_node_scale; extern bNodeType cmp_node_flip; extern bNodeType cmp_node_displace; -extern bNodeType cmp_node_mapuv; - -static bNodeType* node_all_composit[]= { - &node_group_typeinfo, - - &cmp_node_rlayers, - &cmp_node_image, - &cmp_node_texture, - &cmp_node_value, - &cmp_node_rgb, - &cmp_node_curve_time, - - &cmp_node_composite, - &cmp_node_viewer, - &cmp_node_splitviewer, - &cmp_node_output_file, - - &cmp_node_curve_rgb, - &cmp_node_mix_rgb, - &cmp_node_hue_sat, - &cmp_node_alphaover, - &cmp_node_zcombine, - - &cmp_node_normal, - &cmp_node_curve_vec, - &cmp_node_map_value, - - &cmp_node_filter, - &cmp_node_blur, - &cmp_node_vecblur, - &cmp_node_dilateerode, - &cmp_node_defocus, - - &cmp_node_valtorgb, - &cmp_node_rgbtobw, - &cmp_node_setalpha, - &cmp_node_idmask, - &cmp_node_math, - &cmp_node_seprgba, - &cmp_node_combrgba, - &cmp_node_sephsva, - &cmp_node_combhsva, - &cmp_node_sepyuva, - &cmp_node_combyuva, - &cmp_node_sepycca, - &cmp_node_combycca, - - &cmp_node_diff_matte, - &cmp_node_chroma, - &cmp_node_channel_matte, - &cmp_node_color_spill, - &cmp_node_luma_matte, - - &cmp_node_translate, - &cmp_node_rotate, - &cmp_node_scale, - &cmp_node_flip, - &cmp_node_displace, - &cmp_node_mapuv, - - NULL -}; +extern bNodeType cmp_node_mapuv; #endif + + diff --git a/source/blender/nodes/SHD_node.h b/source/blender/nodes/SHD_node.h index 9c4a3421e5e..b443a39624b 100644 --- a/source/blender/nodes/SHD_node.h +++ b/source/blender/nodes/SHD_node.h @@ -57,30 +57,6 @@ extern bNodeType sh_node_math; extern bNodeType sh_node_vect_math; extern bNodeType sh_node_squeeze; -static bNodeType* node_all_shaders[]= { - &node_group_typeinfo, - &sh_node_output, - &sh_node_material, - &sh_node_camera, - &sh_node_value, - &sh_node_rgb, - &sh_node_mix_rgb, - &sh_node_valtorgb, - &sh_node_rgbtobw, - &sh_node_texture, - &sh_node_normal, - &sh_node_geom, - &sh_node_mapping, - &sh_node_curve_vec, - &sh_node_curve_rgb, - &sh_node_math, - &sh_node_vect_math, - &sh_node_squeeze, - NULL -}; - - - #endif diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c b/source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c index 0ef0f096e89..16ed447921a 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c @@ -108,6 +108,7 @@ static void node_composit_exec_alphaover(void *data, bNode *node, bNodeStack **i } bNodeType cmp_node_alphaover= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_ALPHAOVER, /* name */ "AlphaOver", /* width+range */ 80, 40, 120, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_blur.c b/source/blender/nodes/intern/CMP_nodes/CMP_blur.c index 460f2b6b527..7c081ec5210 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_blur.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_blur.c @@ -617,6 +617,7 @@ static void node_composit_init_blur(bNode* node) } bNodeType cmp_node_blur= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_BLUR, /* name */ "Blur", /* width+range */ 120, 80, 200, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c index b659ad0bc87..0a833e52e35 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c @@ -190,6 +190,7 @@ static void node_composit_init_channel_matte(bNode *node) } bNodeType cmp_node_channel_matte={ + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_CHANNEL_MATTE, /* name */ "Channel Key", /* width+range */ 200, 80, 250, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c index 6080d9782b6..e1eb4420066 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c @@ -173,6 +173,7 @@ static void node_composit_init_chroma_matte(bNode *node) }; bNodeType cmp_node_chroma={ + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_CHROMA, /* name */ "Chroma Key", /* width+range */ 200, 80, 300, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_colorSpill.c b/source/blender/nodes/intern/CMP_nodes/CMP_colorSpill.c index 44dd6f8b640..3c2054e400d 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_colorSpill.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_colorSpill.c @@ -126,6 +126,7 @@ static void node_composit_init_color_spill(bNode *node) }; bNodeType cmp_node_color_spill={ + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_COLOR_SPILL, /* name */ "Color Spill", /* width+range */ 140, 80, 200, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_composite.c b/source/blender/nodes/intern/CMP_nodes/CMP_composite.c index fe0491a8734..317715278de 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_composite.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_composite.c @@ -88,6 +88,7 @@ static void node_composit_exec_composite(void *data, bNode *node, bNodeStack **i } bNodeType cmp_node_composite= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_COMPOSITE, /* name */ "Composite", /* width+range */ 80, 60, 200, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_curves.c b/source/blender/nodes/intern/CMP_nodes/CMP_curves.c index a7b81d425aa..7f0310de9aa 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_curves.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_curves.c @@ -59,6 +59,7 @@ static void node_composit_init_curves_time(bNode* node) } bNodeType cmp_node_curve_time= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_TIME, /* name */ "Time", /* width+range */ 140, 100, 320, @@ -98,6 +99,7 @@ static void node_composit_init_curve_vec(bNode* node) }; bNodeType cmp_node_curve_vec= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_CURVE_VEC, /* name */ "Vector Curves", /* width+range */ 200, 140, 320, @@ -180,6 +182,7 @@ static void node_composit_init_curve_rgb(bNode* node) }; bNodeType cmp_node_curve_rgb= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_CURVE_RGB, /* name */ "RGB Curves", /* width+range */ 200, 140, 320, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_defocus.c b/source/blender/nodes/intern/CMP_nodes/CMP_defocus.c index 2c705acbab1..454f42324fc 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_defocus.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_defocus.c @@ -806,6 +806,7 @@ static void node_composit_init_defocus(bNode* node) }; bNodeType cmp_node_defocus = { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_DEFOCUS, /* name */ "Defocus", /* width+range */ 150, 120, 200, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c index d476ac215b5..1af5b943dbc 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c @@ -198,6 +198,7 @@ static void node_composit_init_diff_matte(bNode *node) } bNodeType cmp_node_diff_matte={ + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_DIFF_MATTE, /* name */ "Difference Key", /* width+range */ 200, 80, 250, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_dilate.c b/source/blender/nodes/intern/CMP_nodes/CMP_dilate.c index b4902fe395e..bb79a4c8f0d 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_dilate.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_dilate.c @@ -144,6 +144,7 @@ static void node_composit_exec_dilateerode(void *data, bNode *node, bNodeStack * } bNodeType cmp_node_dilateerode= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_DILATEERODE, /* name */ "Dilate/Erode", /* width+range */ 130, 100, 320, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_displace.c b/source/blender/nodes/intern/CMP_nodes/CMP_displace.c index 760d1107d4c..a87394815a2 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_displace.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_displace.c @@ -145,6 +145,7 @@ static void node_composit_exec_displace(void *data, bNode *node, bNodeStack **in } bNodeType cmp_node_displace= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_DISPLACE, /* name */ "Displace", /* width+range */ 140, 100, 320, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_filter.c b/source/blender/nodes/intern/CMP_nodes/CMP_filter.c index 408420a399c..7f578c56927 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_filter.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_filter.c @@ -215,6 +215,7 @@ static void node_composit_exec_filter(void *data, bNode *node, bNodeStack **in, bNodeType cmp_node_filter= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_FILTER, /* name */ "Filter", /* width+range */ 80, 40, 120, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_flip.c b/source/blender/nodes/intern/CMP_nodes/CMP_flip.c index 119f7542f2c..f44b890148c 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_flip.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_flip.c @@ -86,6 +86,7 @@ static void node_composit_exec_flip(void *data, bNode *node, bNodeStack **in, bN } bNodeType cmp_node_flip= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_FLIP, /* name */ "Flip", /* width+range */ 140, 100, 320, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c b/source/blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c index fc4b0b13561..d4258bdeeb3 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c @@ -102,6 +102,7 @@ static void node_composit_init_hue_sat(bNode* node) } bNodeType cmp_node_hue_sat= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_HUE_SAT, /* name */ "Hue Saturation Value", /* width+range */ 150, 80, 250, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_idMask.c b/source/blender/nodes/intern/CMP_nodes/CMP_idMask.c index 79d11907bd3..d4e6b065ba8 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_idMask.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_idMask.c @@ -85,6 +85,7 @@ static void node_composit_exec_idmask(void *data, bNode *node, bNodeStack **in, bNodeType cmp_node_idmask= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_ID_MASK, /* name */ "ID Mask", /* width+range */ 140, 100, 320, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_image.c b/source/blender/nodes/intern/CMP_nodes/CMP_image.c index b9ae376992d..29845d8835c 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_image.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_image.c @@ -211,6 +211,7 @@ static void node_composit_init_image(bNode* node) } bNodeType cmp_node_image= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_IMAGE, /* name */ "Image", /* width+range */ 120, 80, 300, @@ -328,6 +329,7 @@ static void node_composit_exec_rlayers(void *data, bNode *node, bNodeStack **in, bNodeType cmp_node_rlayers= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_R_LAYERS, /* name */ "Render Layers", /* width+range */ 150, 100, 300, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c index 0a69f2e9056..d909e47538f 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c @@ -104,6 +104,7 @@ static void node_composit_init_luma_matte(bNode *node) }; bNodeType cmp_node_luma_matte={ + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_LUMA_MATTE, /* name */ "Luminance Key", /* width+range */ 200, 80, 250, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_mapUV.c b/source/blender/nodes/intern/CMP_nodes/CMP_mapUV.c index 172df387dbd..4c7b4402ba7 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_mapUV.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_mapUV.c @@ -130,6 +130,7 @@ static void node_composit_exec_mapuv(void *data, bNode *node, bNodeStack **in, b } bNodeType cmp_node_mapuv= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_MAP_UV, /* name */ "Map UV", /* width+range */ 140, 100, 320, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_mapValue.c b/source/blender/nodes/intern/CMP_nodes/CMP_mapValue.c index 427aa01ab0a..97faa9488d1 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_mapValue.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_mapValue.c @@ -80,6 +80,7 @@ static void node_composit_init_map_value(bNode* node) } bNodeType cmp_node_map_value= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_MAP_VALUE, /* name */ "Map Value", /* width+range */ 100, 60, 150, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_math.c b/source/blender/nodes/intern/CMP_nodes/CMP_math.c index d8bb1cebbaa..7515dff166e 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_math.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_math.c @@ -159,6 +159,7 @@ static void node_composit_exec_math(void *data, bNode *node, bNodeStack **in, bN } bNodeType cmp_node_math= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_MATH, /* name */ "Math", /* width+range */ 120, 110, 160, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_mixrgb.c b/source/blender/nodes/intern/CMP_nodes/CMP_mixrgb.c index 662b8390e18..6a0cd63d1f1 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_mixrgb.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_mixrgb.c @@ -78,6 +78,7 @@ static void node_composit_exec_mix_rgb(void *data, bNode *node, bNodeStack **in, /* custom1 = mix type */ bNodeType cmp_node_mix_rgb= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_MIX_RGB, /* name */ "Mix", /* width+range */ 80, 60, 120, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_normal.c b/source/blender/nodes/intern/CMP_nodes/CMP_normal.c index bf103f34dee..d1b3aa5f37f 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_normal.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_normal.c @@ -78,6 +78,7 @@ static void node_composit_exec_normal(void *data, bNode *node, bNodeStack **in, } bNodeType cmp_node_normal= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_NORMAL, /* name */ "Normal", /* width+range */ 100, 60, 200, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_outputFile.c b/source/blender/nodes/intern/CMP_nodes/CMP_outputFile.c index 0bec7e27211..94b6772cf41 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_outputFile.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_outputFile.c @@ -92,6 +92,7 @@ static void node_composit_init_output_file(bNode *node) }; bNodeType cmp_node_output_file= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_OUTPUT_FILE, /* name */ "File Output", /* width+range */ 140, 80, 300, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_rgb.c b/source/blender/nodes/intern/CMP_nodes/CMP_rgb.c index f2766d9224c..1c690ef0113 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_rgb.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_rgb.c @@ -44,6 +44,7 @@ static void node_composit_exec_rgb(void *data, bNode *node, bNodeStack **in, bNo } bNodeType cmp_node_rgb= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_RGB, /* name */ "RGB", /* width+range */ 100, 60, 140, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c b/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c index a3576a01445..c09fe56b28f 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c @@ -133,6 +133,7 @@ static void node_composit_exec_rotate(void *data, bNode *node, bNodeStack **in, } bNodeType cmp_node_rotate= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_ROTATE, /* name */ "Rotate", /* width+range */ 140, 100, 320, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_scale.c b/source/blender/nodes/intern/CMP_nodes/CMP_scale.c index 99f5eb458ce..244a5d0685c 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_scale.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_scale.c @@ -102,6 +102,7 @@ static void node_composit_exec_scale(void *data, bNode *node, bNodeStack **in, b }; bNodeType cmp_node_scale= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_SCALE, /* name */ "Scale", /* width+range */ 140, 100, 320, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombHSVA.c b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombHSVA.c index b3cf20f5a43..50eedcaabe4 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombHSVA.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombHSVA.c @@ -97,6 +97,7 @@ static void node_composit_exec_sephsva(void *data, bNode *node, bNodeStack **in, } bNodeType cmp_node_sephsva= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_SEPHSVA, /* name */ "Separate HSVA", /* width+range */ 80, 40, 140, @@ -168,6 +169,7 @@ static void node_composit_exec_combhsva(void *data, bNode *node, bNodeStack **in } bNodeType cmp_node_combhsva= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_COMBHSVA, /* name */ "Combine HSVA", /* width+range */ 80, 40, 140, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombRGBA.c b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombRGBA.c index 7a323b503f0..50643cd9c43 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombRGBA.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombRGBA.c @@ -75,6 +75,7 @@ static void node_composit_exec_seprgba(void *data, bNode *node, bNodeStack **in, } bNodeType cmp_node_seprgba= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_SEPRGBA, /* name */ "Separate RGBA", /* width+range */ 80, 40, 140, @@ -144,6 +145,7 @@ static void node_composit_exec_combrgba(void *data, bNode *node, bNodeStack **in } bNodeType cmp_node_combrgba= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_COMBRGBA, /* name */ "Combine RGBA", /* width+range */ 80, 40, 140, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c index 108042a16b8..342a8e44114 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c @@ -96,6 +96,7 @@ static void node_composit_exec_sepycca(void *data, bNode *node, bNodeStack **in, } bNodeType cmp_node_sepycca= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_SEPYCCA, /* name */ "Separate YCbCrA", /* width+range */ 80, 40, 140, @@ -174,6 +175,7 @@ static void node_composit_exec_combycca(void *data, bNode *node, bNodeStack **in } bNodeType cmp_node_combycca= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_COMBYCCA, /* name */ "Combine YCbCrA", /* width+range */ 80, 40, 140, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYUVA.c b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYUVA.c index 48a42d16a94..ec171b63811 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYUVA.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYUVA.c @@ -97,6 +97,7 @@ static void node_composit_exec_sepyuva(void *data, bNode *node, bNodeStack **in, } bNodeType cmp_node_sepyuva= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_SEPYUVA, /* name */ "Separate YUVA", /* width+range */ 80, 40, 140, @@ -168,6 +169,7 @@ static void node_composit_exec_combyuva(void *data, bNode *node, bNodeStack **in } bNodeType cmp_node_combyuva= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_COMBYUVA, /* name */ "Combine YUVA", /* width+range */ 80, 40, 140, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_setalpha.c b/source/blender/nodes/intern/CMP_nodes/CMP_setalpha.c index ecc3fb99f41..79619dafec5 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_setalpha.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_setalpha.c @@ -71,6 +71,7 @@ static void node_composit_exec_setalpha(void *data, bNode *node, bNodeStack **in } bNodeType cmp_node_setalpha= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_SETALPHA, /* name */ "Set Alpha", /* width+range */ 120, 40, 140, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_splitViewer.c b/source/blender/nodes/intern/CMP_nodes/CMP_splitViewer.c index 3e6142a6534..572ed53b0f7 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_splitViewer.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_splitViewer.c @@ -143,6 +143,7 @@ static void node_composit_init_splitviewer(bNode* node) } bNodeType cmp_node_splitviewer= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_SPLITVIEWER, /* name */ "SplitViewer", /* width+range */ 140, 100, 320, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_texture.c b/source/blender/nodes/intern/CMP_nodes/CMP_texture.c index 551da1e480b..eec7ea379fa 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_texture.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_texture.c @@ -118,6 +118,7 @@ static void node_composit_exec_texture(void *data, bNode *node, bNodeStack **in, } bNodeType cmp_node_texture= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_TEXTURE, /* name */ "Texture", /* width+range */ 120, 80, 240, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_translate.c b/source/blender/nodes/intern/CMP_nodes/CMP_translate.c index 2ea91b603d8..56d5c114eae 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_translate.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_translate.c @@ -57,6 +57,7 @@ static void node_composit_exec_translate(void *data, bNode *node, bNodeStack **i } bNodeType cmp_node_translate= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_TRANSLATE, /* name */ "Translate", /* width+range */ 140, 100, 320, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_valToRgb.c b/source/blender/nodes/intern/CMP_nodes/CMP_valToRgb.c index d30bf42d478..d35c347d0db 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_valToRgb.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_valToRgb.c @@ -81,6 +81,7 @@ static void node_composit_init_valtorgb(bNode* node) } bNodeType cmp_node_valtorgb= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_VALTORGB, /* name */ "ColorRamp", /* width+range */ 240, 200, 300, @@ -134,6 +135,7 @@ static void node_composit_exec_rgbtobw(void *data, bNode *node, bNodeStack **in, } bNodeType cmp_node_rgbtobw= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_RGBTOBW, /* name */ "RGB to BW", /* width+range */ 80, 40, 120, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_value.c b/source/blender/nodes/intern/CMP_nodes/CMP_value.c index 578a07c91ae..8681fce6e1b 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_value.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_value.c @@ -43,6 +43,7 @@ static void node_composit_exec_value(void *data, bNode *node, bNodeStack **in, b } bNodeType cmp_node_value= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_VALUE, /* name */ "Value", /* width+range */ 80, 40, 120, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_vecBlur.c b/source/blender/nodes/intern/CMP_nodes/CMP_vecBlur.c index ebaf4d70915..81dcc080bcc 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_vecBlur.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_vecBlur.c @@ -117,6 +117,7 @@ static void node_composit_init_vecblur(bNode* node) /* custom1: itterations, custom2: maxspeed (0 = nolimit) */ bNodeType cmp_node_vecblur= { + /* next, prev */ NULL, NULL, /* type code */ CMP_NODE_VECBLUR, /* name */ "Vector Blur", /* width+range */ 120, 80, 200, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_viewer.c b/source/blender/nodes/intern/CMP_nodes/CMP_viewer.c index 1a01bb3a6a7..aee1663d4e3 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_viewer.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_viewer.c @@ -125,6 +125,7 @@ static void node_composit_init_viewer(bNode* node) } bNodeType cmp_node_viewer= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_VIEWER, /* name */ "Viewer", /* width+range */ 80, 60, 200, diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_zcombine.c b/source/blender/nodes/intern/CMP_nodes/CMP_zcombine.c index 716f447f3df..bff839cad65 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_zcombine.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_zcombine.c @@ -137,6 +137,7 @@ static void node_composit_exec_zcombine(void *data, bNode *node, bNodeStack **in } bNodeType cmp_node_zcombine= { + /* *next,*prev */ NULL, NULL, /* type code */ CMP_NODE_ZCOMBINE, /* name */ "Z Combine", /* width+range */ 80, 40, 120, diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_camera.c b/source/blender/nodes/intern/SHD_nodes/SHD_camera.c index 5134f720b9e..af4ba788f6b 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_camera.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_camera.c @@ -50,6 +50,7 @@ static void node_shader_exec_camera(void *data, bNode *node, bNodeStack **in, bN } bNodeType sh_node_camera= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_CAMERA, /* name */ "Camera Data", /* width+range */ 95, 95, 120, diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_curves.c b/source/blender/nodes/intern/SHD_nodes/SHD_curves.c index 39787486004..ec2af791001 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_curves.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_curves.c @@ -57,6 +57,7 @@ static void node_shader_init_curve_vec(bNode* node) } bNodeType sh_node_curve_vec= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_CURVE_VEC, /* name */ "Vector Curves", /* width+range */ 200, 140, 320, @@ -97,6 +98,7 @@ static void node_shader_init_curve_rgb(bNode *node) } bNodeType sh_node_curve_rgb= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_CURVE_RGB, /* name */ "RGB Curves", /* width+range */ 200, 140, 320, diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_geom.c b/source/blender/nodes/intern/SHD_nodes/SHD_geom.c index 2be1f0ddfe8..584ceb0dbbd 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_geom.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_geom.c @@ -115,6 +115,7 @@ static void node_shader_init_geometry(bNode *node) /* node type definition */ bNodeType sh_node_geom= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_GEOMETRY, /* name */ "Geometry", /* width+range */ 120, 80, 160, diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_mapping.c b/source/blender/nodes/intern/SHD_nodes/SHD_mapping.c index 3a6e89cc0a1..a22159dcf16 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_mapping.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_mapping.c @@ -70,6 +70,7 @@ static void node_shader_init_mapping(bNode *node) } bNodeType sh_node_mapping= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_MAPPING, /* name */ "Mapping", /* width+range */ 240, 160, 320, diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_material.c b/source/blender/nodes/intern/SHD_nodes/SHD_material.c index 1d87d294dbe..fdb6c71ba85 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_material.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_material.c @@ -136,6 +136,7 @@ static void node_shader_init_material(bNode* node) bNodeType sh_node_material= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_MATERIAL, /* name */ "Material", /* width+range */ 120, 80, 240, diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_math.c b/source/blender/nodes/intern/SHD_nodes/SHD_math.c index 3a08c3b117c..bd2fdb457c0 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_math.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_math.c @@ -178,7 +178,8 @@ bNodeStack **out) } } -bNodeType sh_node_math= { +bNodeType sh_node_math= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_MATH, /* name */ "Math", /* width+range */ 120, 110, 160, diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c b/source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c index 555a8d27ab9..fb0bf91a508 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c @@ -61,6 +61,7 @@ static void node_shader_exec_mix_rgb(void *data, bNode *node, bNodeStack **in, b } bNodeType sh_node_mix_rgb= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_MIX_RGB, /* name */ "Mix", /* width+range */ 100, 60, 150, diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_normal.c b/source/blender/nodes/intern/SHD_nodes/SHD_normal.c index 4433e62cb25..ac9d1707543 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_normal.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_normal.c @@ -58,6 +58,7 @@ static void node_shader_exec_normal(void *data, bNode *node, bNodeStack **in, bN } bNodeType sh_node_normal= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_NORMAL, /* name */ "Normal", /* width+range */ 100, 60, 200, diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output.c b/source/blender/nodes/intern/SHD_nodes/SHD_output.c index c53d662fac7..4ed507f4774 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_output.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_output.c @@ -63,6 +63,7 @@ static void node_shader_exec_output(void *data, bNode *node, bNodeStack **in, bN } bNodeType sh_node_output= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_OUTPUT, /* name */ "Output", /* width+range */ 80, 60, 200, diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_rgb.c b/source/blender/nodes/intern/SHD_nodes/SHD_rgb.c index 21b6f4640c2..d1c874c151b 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_rgb.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_rgb.c @@ -43,6 +43,7 @@ static void node_shader_exec_rgb(void *data, bNode *node, bNodeStack **in, bNode } bNodeType sh_node_rgb= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_RGB, /* name */ "RGB", /* width+range */ 100, 60, 140, diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_squeeze.c b/source/blender/nodes/intern/SHD_nodes/SHD_squeeze.c index fa9cf3a3de0..f0031113b94 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_squeeze.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_squeeze.c @@ -55,6 +55,7 @@ bNodeStack **out) } bNodeType sh_node_squeeze= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_SQUEEZE, /* name */ "Squeeze Value", /* width+range */ 120, 110, 160, diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_texture.c b/source/blender/nodes/intern/SHD_nodes/SHD_texture.c index 3da2b5cae71..8ba66d56b3c 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_texture.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_texture.c @@ -111,6 +111,7 @@ static void node_shader_exec_texture(void *data, bNode *node, bNodeStack **in, b } bNodeType sh_node_texture= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_TEXTURE, /* name */ "Texture", /* width+range */ 120, 80, 240, diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_valToRgb.c b/source/blender/nodes/intern/SHD_nodes/SHD_valToRgb.c index 223f8fc4af8..90e8cb28fac 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_valToRgb.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_valToRgb.c @@ -60,6 +60,7 @@ static void node_shader_init_valtorgb(bNode *node) } bNodeType sh_node_valtorgb= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_VALTORGB, /* name */ "ColorRamp", /* width+range */ 240, 200, 300, @@ -93,6 +94,7 @@ static void node_shader_exec_rgbtobw(void *data, bNode *node, bNodeStack **in, b } bNodeType sh_node_rgbtobw= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_RGBTOBW, /* name */ "RGB to BW", /* width+range */ 80, 40, 120, diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_value.c b/source/blender/nodes/intern/SHD_nodes/SHD_value.c index aeeda4734b5..9d6f6a34473 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_value.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_value.c @@ -45,6 +45,7 @@ static void node_shader_exec_value(void *data, bNode *node, bNodeStack **in, bNo bNodeType sh_node_value= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_VALUE, /* name */ "Value", /* width+range */ 80, 50, 120, diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c b/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c index 1d1f36b9fa5..17b692fd616 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c @@ -100,6 +100,7 @@ static void node_shader_exec_vect_math(void *data, bNode *node, bNodeStack **in, } bNodeType sh_node_vect_math= { + /* *next,*prev */ NULL, NULL, /* type code */ SH_NODE_VECT_MATH, /* name */ "Vector Math", /* width+range */ 80, 75, 140, diff --git a/source/blender/src/drawnode.c b/source/blender/src/drawnode.c index 7978640039f..7faa4ecc76f 100644 --- a/source/blender/src/drawnode.c +++ b/source/blender/src/drawnode.c @@ -1621,19 +1621,19 @@ static void node_composit_set_butfunc(bNodeType *ntype) void init_node_butfuncs(void) { - bNodeType **typedefs; + bNodeType *ntype; /* shader nodes */ - typedefs= node_all_shaders; /* BKE_node.h */ - while( *typedefs) { - node_shader_set_butfunc(*typedefs); - typedefs++; + ntype= node_all_shaders.first; + while(ntype) { + node_shader_set_butfunc(ntype); + ntype= ntype->next; } /* composit nodes */ - typedefs= node_all_composit; /* BKE_node.h */ - while( *typedefs) { - node_composit_set_butfunc(*typedefs); - typedefs++; + ntype= node_all_composit.first; + while(ntype) { + node_composit_set_butfunc(ntype); + ntype= ntype->next; } } diff --git a/source/blender/src/header_node.c b/source/blender/src/header_node.c index 2697cb0c39b..b9f02cc7bd0 100644 --- a/source/blender/src/header_node.c +++ b/source/blender/src/header_node.c @@ -247,9 +247,12 @@ static void node_make_addmenu(SpaceNode *snode, int nodeclass, uiBlock *block) tot++; } else { - for(typedefs= ntree->alltypes; *typedefs; typedefs++) - if( (*typedefs)->nclass == nodeclass ) + bNodeType *type = ntree->alltypes.first; + while(type) { + if(type->nclass == nodeclass) tot++; + type= type->next; + } } } @@ -270,10 +273,12 @@ static void node_make_addmenu(SpaceNode *snode, int nodeclass, uiBlock *block) } } else { - for(a=0, typedefs= ntree->alltypes; *typedefs; typedefs++) { - if( (*typedefs)->nclass == nodeclass ) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, (*typedefs)->name, 0, - yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, (*typedefs)->type, ""); + bNodeType *type; + for(a=0, type= ntree->alltypes.first; type; type=type->next) { + if( type->nclass == nodeclass ) { + printf("node %s\n", type->name); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, type->name, 0, + yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, type->type, ""); a++; } } diff --git a/source/blender/src/toolbox.c b/source/blender/src/toolbox.c index a200e8d44eb..3143b9652aa 100644 --- a/source/blender/src/toolbox.c +++ b/source/blender/src/toolbox.c @@ -1576,7 +1576,6 @@ static TBitem *node_add_sublevel(ListBase *storage, bNodeTree *ntree, int nodecl { static TBitem _addmenu[]= { { 0, " ", 0, NULL}, { -1, "", 0, NULL}}; Link *link; - bNodeType **typedefs; TBitem *addmenu; int tot= 0, a; @@ -1588,9 +1587,13 @@ static TBitem *node_add_sublevel(ListBase *storage, bNodeTree *ntree, int nodecl tot++; } else { - for(typedefs= ntree->alltypes; *typedefs; typedefs++) - if( (*typedefs)->nclass == nodeclass ) + bNodeType *ntype = ntree->alltypes.first; + while(ntype) { + if(ntype->nclass == nodeclass) { tot++; + } + ntype= ntype->next; + } } } if(tot==0) { @@ -1612,15 +1615,16 @@ static TBitem *node_add_sublevel(ListBase *storage, bNodeTree *ntree, int nodecl } } else { - for(a=0, typedefs= ntree->alltypes; *typedefs; typedefs++) { - if( (*typedefs)->nclass == nodeclass ) { - addmenu[a].name= (*typedefs)->name; - addmenu[a].retval= (*typedefs)->type; + bNodeType *ntype= ntree->alltypes.first; + for(a=0; ntype; ntype= ntype->next) { + if( ntype->nclass == nodeclass ) { + addmenu[a].name= ntype->name; + addmenu[a].retval= ntype->type; a++; } } } - + addmenu[a].icon= -1; /* end signal */ addmenu[a].name= ""; addmenu[a].retval= a; diff --git a/source/blender/src/usiblender.c b/source/blender/src/usiblender.c index b81cba7d1d0..d8106b8d3d6 100644 --- a/source/blender/src/usiblender.c +++ b/source/blender/src/usiblender.c @@ -79,6 +79,7 @@ #include "BKE_global.h" #include "BKE_main.h" #include "BKE_mball.h" +#include "BKE_node.h" #include "BKE_packedFile.h" #include "BKE_utildefines.h" @@ -967,7 +968,9 @@ void exit_usiblender(void) BLI_freelistN(&U.themes); BIF_preview_free_dbase(); - + + free_nodesystem(); + if(totblock!=0) { printf("Error Totblock: %d\n",totblock); MEM_printmemlist(); @@ -986,6 +989,6 @@ void exit_usiblender(void) SYS_DeleteSystem(SYS_GetSystem()); - + exit(G.afbreek==1); } diff --git a/source/creator/creator.c b/source/creator/creator.c index abcd23fbb5c..4a9a7a002b0 100644 --- a/source/creator/creator.c +++ b/source/creator/creator.c @@ -57,6 +57,7 @@ #include "BKE_material.h" #include "BKE_packedFile.h" #include "BKE_scene.h" +#include "BKE_node.h" #include "BIF_gl.h" #include "BIF_graphics.h" @@ -313,6 +314,8 @@ int main(int argc, char **argv) */ pluginapi_force_ref(); + init_nodesystem(); + initglobals(); /* blender.c */ syshandle = SYS_GetSystem();