diff options
Diffstat (limited to 'source/blender/blenkernel/intern/node.c')
-rw-r--r-- | source/blender/blenkernel/intern/node.c | 405 |
1 files changed, 203 insertions, 202 deletions
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index c4edddf587c..904e0d187f8 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -1643,7 +1643,7 @@ struct bNodeTemplate nodeMakeTemplate(struct bNode *node) } } -void node_type_base(bNodeType *ntype, int type, const char *name, short nclass, short flag) +void node_type_base(bNodeTreeType *ttype, bNodeType *ntype, int type, const char *name, short nclass, short flag) { memset(ntype, 0, sizeof(bNodeType)); @@ -1772,211 +1772,212 @@ static bNodeType *is_nodetype_registered(ListBase *typelist, int type) return NULL; } -void nodeRegisterType(ListBase *typelist, bNodeType *ntype) +void nodeRegisterType(bNodeTreeType *ttype, bNodeType *ntype) { + ListBase *typelist = &(ttype->node_types); bNodeType *found= is_nodetype_registered(typelist, ntype->type); if(found==NULL) BLI_addtail(typelist, ntype); } -static void registerCompositNodes(ListBase *ntypelist) -{ - register_node_type_frame(ntypelist); - - register_node_type_cmp_group(ntypelist); -// register_node_type_cmp_forloop(ntypelist); -// register_node_type_cmp_whileloop(ntypelist); - - register_node_type_cmp_rlayers(ntypelist); - register_node_type_cmp_image(ntypelist); - register_node_type_cmp_texture(ntypelist); - register_node_type_cmp_value(ntypelist); - register_node_type_cmp_rgb(ntypelist); - register_node_type_cmp_curve_time(ntypelist); - register_node_type_cmp_movieclip(ntypelist); - - register_node_type_cmp_composite(ntypelist); - register_node_type_cmp_viewer(ntypelist); - register_node_type_cmp_splitviewer(ntypelist); - register_node_type_cmp_output_file(ntypelist); - register_node_type_cmp_view_levels(ntypelist); - - register_node_type_cmp_curve_rgb(ntypelist); - register_node_type_cmp_mix_rgb(ntypelist); - register_node_type_cmp_hue_sat(ntypelist); - register_node_type_cmp_brightcontrast(ntypelist); - register_node_type_cmp_gamma(ntypelist); - register_node_type_cmp_invert(ntypelist); - register_node_type_cmp_alphaover(ntypelist); - register_node_type_cmp_zcombine(ntypelist); - register_node_type_cmp_colorbalance(ntypelist); - register_node_type_cmp_huecorrect(ntypelist); - - register_node_type_cmp_normal(ntypelist); - register_node_type_cmp_curve_vec(ntypelist); - register_node_type_cmp_map_value(ntypelist); - register_node_type_cmp_normalize(ntypelist); - - register_node_type_cmp_filter(ntypelist); - register_node_type_cmp_blur(ntypelist); - register_node_type_cmp_dblur(ntypelist); - register_node_type_cmp_bilateralblur(ntypelist); - register_node_type_cmp_vecblur(ntypelist); - register_node_type_cmp_dilateerode(ntypelist); - register_node_type_cmp_defocus(ntypelist); - - register_node_type_cmp_valtorgb(ntypelist); - register_node_type_cmp_rgbtobw(ntypelist); - register_node_type_cmp_setalpha(ntypelist); - register_node_type_cmp_idmask(ntypelist); - register_node_type_cmp_math(ntypelist); - register_node_type_cmp_seprgba(ntypelist); - register_node_type_cmp_combrgba(ntypelist); - register_node_type_cmp_sephsva(ntypelist); - register_node_type_cmp_combhsva(ntypelist); - register_node_type_cmp_sepyuva(ntypelist); - register_node_type_cmp_combyuva(ntypelist); - register_node_type_cmp_sepycca(ntypelist); - register_node_type_cmp_combycca(ntypelist); - register_node_type_cmp_premulkey(ntypelist); - - register_node_type_cmp_diff_matte(ntypelist); - register_node_type_cmp_distance_matte(ntypelist); - register_node_type_cmp_chroma_matte(ntypelist); - register_node_type_cmp_color_matte(ntypelist); - register_node_type_cmp_channel_matte(ntypelist); - register_node_type_cmp_color_spill(ntypelist); - register_node_type_cmp_luma_matte(ntypelist); - - register_node_type_cmp_translate(ntypelist); - register_node_type_cmp_rotate(ntypelist); - register_node_type_cmp_scale(ntypelist); - register_node_type_cmp_flip(ntypelist); - register_node_type_cmp_crop(ntypelist); - register_node_type_cmp_displace(ntypelist); - register_node_type_cmp_mapuv(ntypelist); - register_node_type_cmp_glare(ntypelist); - register_node_type_cmp_tonemap(ntypelist); - register_node_type_cmp_lensdist(ntypelist); - register_node_type_cmp_transform(ntypelist); - register_node_type_cmp_stabilize2d(ntypelist); - register_node_type_cmp_moviedistortion(ntypelist); -} - -static void registerShaderNodes(ListBase *ntypelist) -{ - register_node_type_frame(ntypelist); - - register_node_type_sh_group(ntypelist); - //register_node_type_sh_forloop(ntypelist); - //register_node_type_sh_whileloop(ntypelist); - - register_node_type_sh_output(ntypelist); - register_node_type_sh_material(ntypelist); - register_node_type_sh_camera(ntypelist); - register_node_type_sh_value(ntypelist); - register_node_type_sh_rgb(ntypelist); - register_node_type_sh_mix_rgb(ntypelist); - register_node_type_sh_valtorgb(ntypelist); - register_node_type_sh_rgbtobw(ntypelist); - register_node_type_sh_texture(ntypelist); - register_node_type_sh_normal(ntypelist); - register_node_type_sh_geom(ntypelist); - register_node_type_sh_mapping(ntypelist); - register_node_type_sh_curve_vec(ntypelist); - register_node_type_sh_curve_rgb(ntypelist); - register_node_type_sh_math(ntypelist); - register_node_type_sh_vect_math(ntypelist); - register_node_type_sh_squeeze(ntypelist); - //register_node_type_sh_dynamic(ntypelist); - register_node_type_sh_material_ext(ntypelist); - register_node_type_sh_invert(ntypelist); - register_node_type_sh_seprgb(ntypelist); - register_node_type_sh_combrgb(ntypelist); - register_node_type_sh_hue_sat(ntypelist); - - register_node_type_sh_attribute(ntypelist); - register_node_type_sh_geometry(ntypelist); - register_node_type_sh_light_path(ntypelist); - register_node_type_sh_fresnel(ntypelist); - register_node_type_sh_layer_weight(ntypelist); - register_node_type_sh_tex_coord(ntypelist); - - register_node_type_sh_background(ntypelist); - register_node_type_sh_bsdf_diffuse(ntypelist); - register_node_type_sh_bsdf_glossy(ntypelist); - register_node_type_sh_bsdf_glass(ntypelist); - register_node_type_sh_bsdf_translucent(ntypelist); - register_node_type_sh_bsdf_transparent(ntypelist); - register_node_type_sh_bsdf_velvet(ntypelist); - register_node_type_sh_emission(ntypelist); - register_node_type_sh_holdout(ntypelist); - //register_node_type_sh_volume_transparent(ntypelist); - //register_node_type_sh_volume_isotropic(ntypelist); - register_node_type_sh_mix_shader(ntypelist); - register_node_type_sh_add_shader(ntypelist); - - register_node_type_sh_output_lamp(ntypelist); - register_node_type_sh_output_material(ntypelist); - register_node_type_sh_output_world(ntypelist); - - register_node_type_sh_tex_image(ntypelist); - register_node_type_sh_tex_environment(ntypelist); - register_node_type_sh_tex_sky(ntypelist); - register_node_type_sh_tex_noise(ntypelist); - register_node_type_sh_tex_wave(ntypelist); - register_node_type_sh_tex_voronoi(ntypelist); - register_node_type_sh_tex_musgrave(ntypelist); - register_node_type_sh_tex_gradient(ntypelist); - register_node_type_sh_tex_magic(ntypelist); -} - -static void registerTextureNodes(ListBase *ntypelist) -{ - register_node_type_frame(ntypelist); - - register_node_type_tex_group(ntypelist); -// register_node_type_tex_forloop(ntypelist); -// register_node_type_tex_whileloop(ntypelist); - - register_node_type_tex_math(ntypelist); - register_node_type_tex_mix_rgb(ntypelist); - register_node_type_tex_valtorgb(ntypelist); - register_node_type_tex_rgbtobw(ntypelist); - register_node_type_tex_valtonor(ntypelist); - register_node_type_tex_curve_rgb(ntypelist); - register_node_type_tex_curve_time(ntypelist); - register_node_type_tex_invert(ntypelist); - register_node_type_tex_hue_sat(ntypelist); - register_node_type_tex_coord(ntypelist); - register_node_type_tex_distance(ntypelist); - register_node_type_tex_compose(ntypelist); - register_node_type_tex_decompose(ntypelist); - - register_node_type_tex_output(ntypelist); - register_node_type_tex_viewer(ntypelist); - - register_node_type_tex_checker(ntypelist); - register_node_type_tex_texture(ntypelist); - register_node_type_tex_bricks(ntypelist); - register_node_type_tex_image(ntypelist); - - register_node_type_tex_rotate(ntypelist); - register_node_type_tex_translate(ntypelist); - register_node_type_tex_scale(ntypelist); - register_node_type_tex_at(ntypelist); - - register_node_type_tex_proc_voronoi(ntypelist); - register_node_type_tex_proc_blend(ntypelist); - register_node_type_tex_proc_magic(ntypelist); - register_node_type_tex_proc_marble(ntypelist); - register_node_type_tex_proc_clouds(ntypelist); - register_node_type_tex_proc_wood(ntypelist); - register_node_type_tex_proc_musgrave(ntypelist); - register_node_type_tex_proc_noise(ntypelist); - register_node_type_tex_proc_stucci(ntypelist); - register_node_type_tex_proc_distnoise(ntypelist); +static void registerCompositNodes(bNodeTreeType *ttype) +{ + register_node_type_frame(ttype); + + register_node_type_cmp_group(ttype); +// register_node_type_cmp_forloop(ttype); +// register_node_type_cmp_whileloop(ttype); + + register_node_type_cmp_rlayers(ttype); + register_node_type_cmp_image(ttype); + register_node_type_cmp_texture(ttype); + register_node_type_cmp_value(ttype); + register_node_type_cmp_rgb(ttype); + register_node_type_cmp_curve_time(ttype); + register_node_type_cmp_movieclip(ttype); + + register_node_type_cmp_composite(ttype); + register_node_type_cmp_viewer(ttype); + register_node_type_cmp_splitviewer(ttype); + register_node_type_cmp_output_file(ttype); + register_node_type_cmp_view_levels(ttype); + + register_node_type_cmp_curve_rgb(ttype); + register_node_type_cmp_mix_rgb(ttype); + register_node_type_cmp_hue_sat(ttype); + register_node_type_cmp_brightcontrast(ttype); + register_node_type_cmp_gamma(ttype); + register_node_type_cmp_invert(ttype); + register_node_type_cmp_alphaover(ttype); + register_node_type_cmp_zcombine(ttype); + register_node_type_cmp_colorbalance(ttype); + register_node_type_cmp_huecorrect(ttype); + + register_node_type_cmp_normal(ttype); + register_node_type_cmp_curve_vec(ttype); + register_node_type_cmp_map_value(ttype); + register_node_type_cmp_normalize(ttype); + + register_node_type_cmp_filter(ttype); + register_node_type_cmp_blur(ttype); + register_node_type_cmp_dblur(ttype); + register_node_type_cmp_bilateralblur(ttype); + register_node_type_cmp_vecblur(ttype); + register_node_type_cmp_dilateerode(ttype); + register_node_type_cmp_defocus(ttype); + + register_node_type_cmp_valtorgb(ttype); + register_node_type_cmp_rgbtobw(ttype); + register_node_type_cmp_setalpha(ttype); + register_node_type_cmp_idmask(ttype); + register_node_type_cmp_math(ttype); + register_node_type_cmp_seprgba(ttype); + register_node_type_cmp_combrgba(ttype); + register_node_type_cmp_sephsva(ttype); + register_node_type_cmp_combhsva(ttype); + register_node_type_cmp_sepyuva(ttype); + register_node_type_cmp_combyuva(ttype); + register_node_type_cmp_sepycca(ttype); + register_node_type_cmp_combycca(ttype); + register_node_type_cmp_premulkey(ttype); + + register_node_type_cmp_diff_matte(ttype); + register_node_type_cmp_distance_matte(ttype); + register_node_type_cmp_chroma_matte(ttype); + register_node_type_cmp_color_matte(ttype); + register_node_type_cmp_channel_matte(ttype); + register_node_type_cmp_color_spill(ttype); + register_node_type_cmp_luma_matte(ttype); + + register_node_type_cmp_translate(ttype); + register_node_type_cmp_rotate(ttype); + register_node_type_cmp_scale(ttype); + register_node_type_cmp_flip(ttype); + register_node_type_cmp_crop(ttype); + register_node_type_cmp_displace(ttype); + register_node_type_cmp_mapuv(ttype); + register_node_type_cmp_glare(ttype); + register_node_type_cmp_tonemap(ttype); + register_node_type_cmp_lensdist(ttype); + register_node_type_cmp_transform(ttype); + register_node_type_cmp_stabilize2d(ttype); + register_node_type_cmp_moviedistortion(ttype); +} + +static void registerShaderNodes(bNodeTreeType *ttype) +{ + register_node_type_frame(ttype); + + register_node_type_sh_group(ttype); + //register_node_type_sh_forloop(ttype); + //register_node_type_sh_whileloop(ttype); + + register_node_type_sh_output(ttype); + register_node_type_sh_material(ttype); + register_node_type_sh_camera(ttype); + register_node_type_sh_value(ttype); + register_node_type_sh_rgb(ttype); + register_node_type_sh_mix_rgb(ttype); + register_node_type_sh_valtorgb(ttype); + register_node_type_sh_rgbtobw(ttype); + register_node_type_sh_texture(ttype); + register_node_type_sh_normal(ttype); + register_node_type_sh_geom(ttype); + register_node_type_sh_mapping(ttype); + register_node_type_sh_curve_vec(ttype); + register_node_type_sh_curve_rgb(ttype); + register_node_type_sh_math(ttype); + register_node_type_sh_vect_math(ttype); + register_node_type_sh_squeeze(ttype); + //register_node_type_sh_dynamic(ttype); + register_node_type_sh_material_ext(ttype); + register_node_type_sh_invert(ttype); + register_node_type_sh_seprgb(ttype); + register_node_type_sh_combrgb(ttype); + register_node_type_sh_hue_sat(ttype); + + register_node_type_sh_attribute(ttype); + register_node_type_sh_geometry(ttype); + register_node_type_sh_light_path(ttype); + register_node_type_sh_fresnel(ttype); + register_node_type_sh_layer_weight(ttype); + register_node_type_sh_tex_coord(ttype); + + register_node_type_sh_background(ttype); + register_node_type_sh_bsdf_diffuse(ttype); + register_node_type_sh_bsdf_glossy(ttype); + register_node_type_sh_bsdf_glass(ttype); + register_node_type_sh_bsdf_translucent(ttype); + register_node_type_sh_bsdf_transparent(ttype); + register_node_type_sh_bsdf_velvet(ttype); + register_node_type_sh_emission(ttype); + register_node_type_sh_holdout(ttype); + //register_node_type_sh_volume_transparent(ttype); + //register_node_type_sh_volume_isotropic(ttype); + register_node_type_sh_mix_shader(ttype); + register_node_type_sh_add_shader(ttype); + + register_node_type_sh_output_lamp(ttype); + register_node_type_sh_output_material(ttype); + register_node_type_sh_output_world(ttype); + + register_node_type_sh_tex_image(ttype); + register_node_type_sh_tex_environment(ttype); + register_node_type_sh_tex_sky(ttype); + register_node_type_sh_tex_noise(ttype); + register_node_type_sh_tex_wave(ttype); + register_node_type_sh_tex_voronoi(ttype); + register_node_type_sh_tex_musgrave(ttype); + register_node_type_sh_tex_gradient(ttype); + register_node_type_sh_tex_magic(ttype); +} + +static void registerTextureNodes(bNodeTreeType *ttype) +{ + register_node_type_frame(ttype); + + register_node_type_tex_group(ttype); +// register_node_type_tex_forloop(ttype); +// register_node_type_tex_whileloop(ttype); + + register_node_type_tex_math(ttype); + register_node_type_tex_mix_rgb(ttype); + register_node_type_tex_valtorgb(ttype); + register_node_type_tex_rgbtobw(ttype); + register_node_type_tex_valtonor(ttype); + register_node_type_tex_curve_rgb(ttype); + register_node_type_tex_curve_time(ttype); + register_node_type_tex_invert(ttype); + register_node_type_tex_hue_sat(ttype); + register_node_type_tex_coord(ttype); + register_node_type_tex_distance(ttype); + register_node_type_tex_compose(ttype); + register_node_type_tex_decompose(ttype); + + register_node_type_tex_output(ttype); + register_node_type_tex_viewer(ttype); + + register_node_type_tex_checker(ttype); + register_node_type_tex_texture(ttype); + register_node_type_tex_bricks(ttype); + register_node_type_tex_image(ttype); + + register_node_type_tex_rotate(ttype); + register_node_type_tex_translate(ttype); + register_node_type_tex_scale(ttype); + register_node_type_tex_at(ttype); + + register_node_type_tex_proc_voronoi(ttype); + register_node_type_tex_proc_blend(ttype); + register_node_type_tex_proc_magic(ttype); + register_node_type_tex_proc_marble(ttype); + register_node_type_tex_proc_clouds(ttype); + register_node_type_tex_proc_wood(ttype); + register_node_type_tex_proc_musgrave(ttype); + register_node_type_tex_proc_noise(ttype); + register_node_type_tex_proc_stucci(ttype); + register_node_type_tex_proc_distnoise(ttype); } static void free_dynamic_typeinfo(bNodeType *ntype) @@ -2010,9 +2011,9 @@ static void free_typeinfos(ListBase *list) void init_nodesystem(void) { - registerCompositNodes(&ntreeGetType(NTREE_COMPOSIT)->node_types); - registerShaderNodes(&ntreeGetType(NTREE_SHADER)->node_types); - registerTextureNodes(&ntreeGetType(NTREE_TEXTURE)->node_types); + registerCompositNodes(ntreeGetType(NTREE_COMPOSIT)); + registerShaderNodes(ntreeGetType(NTREE_SHADER)); + registerTextureNodes(ntreeGetType(NTREE_TEXTURE)); } void free_nodesystem(void) |