Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/blenkernel/BKE_node.h9
-rw-r--r--source/blender/blenkernel/intern/node.c150
-rw-r--r--source/blender/makesdna/DNA_node_types.h9
-rw-r--r--source/blender/nodes/CMP_node.h63
-rw-r--r--source/blender/nodes/SHD_node.h24
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_blur.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_colorSpill.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_composite.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_curves.c3
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_defocus.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_dilate.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_displace.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_filter.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_flip.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_idMask.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_image.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_mapUV.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_mapValue.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_math.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_mixrgb.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_normal.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_outputFile.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_rgb.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_rotate.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_scale.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_sepcombHSVA.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_sepcombRGBA.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_sepcombYUVA.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_setalpha.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_splitViewer.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_texture.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_translate.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_valToRgb.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_value.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_vecBlur.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_viewer.c1
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_zcombine.c1
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_camera.c1
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_curves.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_geom.c1
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_mapping.c1
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_material.c1
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_math.c3
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c1
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_normal.c1
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_output.c1
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_rgb.c1
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_squeeze.c1
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_texture.c1
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_valToRgb.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_value.c1
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c1
-rw-r--r--source/blender/src/drawnode.c18
-rw-r--r--source/blender/src/header_node.c17
-rw-r--r--source/blender/src/toolbox.c20
-rw-r--r--source/blender/src/usiblender.c7
-rw-r--r--source/creator/creator.c3
64 files changed, 257 insertions, 129 deletions
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;
-
- while( *typedefs && (*typedefs)->type!=type)
- typedefs++;
+ bNodeType *ntype = ntree->alltypes.first;
+ for(; ntype; ntype= ntype->next)
+ if(ntype->type==type)
+ return ntype;
- 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;
+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,
+#endif
- NULL
-};
-#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();