Commit: 86ade3df56020063f03b7b732dbb5cc217c7455b Author: Jacques Lucke Date: Sat Nov 26 13:20:18 2022 +0100 Branches: master https://developer.blender.org/rB86ade3df56020063f03b7b732dbb5cc217c7455b
Nodes: move node registration to nodes module The main goal here is to move towards more self contained node definitions. Previously, one would have to change `blenkernel` to add a new node which is not necessary anymore. There is no need for all these register functions to "leak out" of the nodes module. Differential Revision: https://developer.blender.org/D16612 =================================================================== M source/blender/blenkernel/BKE_node.h M source/blender/blenkernel/intern/node.cc M source/blender/nodes/CMakeLists.txt M source/blender/nodes/NOD_common.h M source/blender/nodes/NOD_composite.h D source/blender/nodes/NOD_function.h M source/blender/nodes/NOD_geometry.h A source/blender/nodes/NOD_register.hh M source/blender/nodes/NOD_shader.h M source/blender/nodes/NOD_texture.h M source/blender/nodes/composite/CMakeLists.txt A source/blender/nodes/composite/node_composite_register.cc A source/blender/nodes/composite/node_composite_register.hh M source/blender/nodes/composite/node_composite_util.hh M source/blender/nodes/function/CMakeLists.txt A source/blender/nodes/function/node_function_register.cc A source/blender/nodes/function/node_function_register.hh M source/blender/nodes/function/node_function_util.hh M source/blender/nodes/geometry/CMakeLists.txt A source/blender/nodes/geometry/node_geometry_register.cc A source/blender/nodes/geometry/node_geometry_register.hh M source/blender/nodes/geometry/node_geometry_util.hh M source/blender/nodes/intern/node_common.cc A source/blender/nodes/intern/node_register.cc M source/blender/nodes/shader/CMakeLists.txt A source/blender/nodes/shader/node_shader_register.cc A source/blender/nodes/shader/node_shader_register.hh M source/blender/nodes/shader/node_shader_util.hh M source/blender/nodes/texture/CMakeLists.txt A source/blender/nodes/texture/node_texture_register.cc A source/blender/nodes/texture/node_texture_register.hh M source/blender/nodes/texture/node_texture_util.hh =================================================================== diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index a22df9cc673..d4141f2d29f 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -1568,6 +1568,7 @@ struct TexResult; void BKE_node_system_init(void); void BKE_node_system_exit(void); +extern bNodeTreeType NodeTreeTypeUndefined; extern struct bNodeType NodeTypeUndefined; extern struct bNodeSocketType NodeSocketTypeUndefined; diff --git a/source/blender/blenkernel/intern/node.cc b/source/blender/blenkernel/intern/node.cc index adb1b5c2d3c..827dbd2b6f9 100644 --- a/source/blender/blenkernel/intern/node.cc +++ b/source/blender/blenkernel/intern/node.cc @@ -71,10 +71,10 @@ #include "NOD_common.h" #include "NOD_composite.h" -#include "NOD_function.h" #include "NOD_geometry.h" #include "NOD_geometry_nodes_lazy_function.hh" #include "NOD_node_declaration.hh" +#include "NOD_register.hh" #include "NOD_shader.h" #include "NOD_socket.h" #include "NOD_texture.h" @@ -106,7 +106,7 @@ using blender::nodes::OutputSocketFieldType; using blender::nodes::SocketDeclaration; /* Fallback types for undefined tree, nodes, sockets */ -static bNodeTreeType NodeTreeTypeUndefined; +bNodeTreeType NodeTreeTypeUndefined; bNodeType NodeTypeUndefined; bNodeSocketType NodeSocketTypeUndefined; @@ -4194,510 +4194,13 @@ void node_type_storage(bNodeType *ntype, ntype->freefunc = freefunc; } -/* callbacks for undefined types */ - -static bool node_undefined_poll(bNodeType * /*ntype*/, - bNodeTree * /*nodetree*/, - const char ** /*r_disabled_hint*/) -{ - /* this type can not be added deliberately, it's just a placeholder */ - return false; -} - -/* register fallback types used for undefined tree, nodes, sockets */ -static void register_undefined_types() -{ - /* NOTE: these types are not registered in the type hashes, - * they are just used as placeholders in case the actual types are not registered. - */ - - NodeTreeTypeUndefined.type = NTREE_UNDEFINED; - strcpy(NodeTreeTypeUndefined.idname, "NodeTreeUndefined"); - strcpy(NodeTreeTypeUndefined.ui_name, N_("Undefined")); - strcpy(NodeTreeTypeUndefined.ui_description, N_("Undefined Node Tree Type")); - - node_type_base_custom(&NodeTypeUndefined, "NodeUndefined", "Undefined", 0); - NodeTypeUndefined.poll = node_undefined_poll; - - BLI_strncpy(NodeSocketTypeUndefined.idname, - "NodeSocketUndefined", - sizeof(NodeSocketTypeUndefined.idname)); - /* extra type info for standard socket types */ - NodeSocketTypeUndefined.type = SOCK_CUSTOM; - NodeSocketTypeUndefined.subtype = PROP_NONE; - - NodeSocketTypeUndefined.use_link_limits_of_type = true; - NodeSocketTypeUndefined.input_link_limit = 0xFFF; - NodeSocketTypeUndefined.output_link_limit = 0xFFF; -} - -static void registerCompositNodes() -{ - register_node_type_cmp_group(); - - register_node_type_cmp_rlayers(); - register_node_type_cmp_image(); - register_node_type_cmp_texture(); - register_node_type_cmp_value(); - register_node_type_cmp_rgb(); - register_node_type_cmp_curve_time(); - register_node_type_cmp_scene_time(); - register_node_type_cmp_movieclip(); - - register_node_type_cmp_composite(); - register_node_type_cmp_viewer(); - register_node_type_cmp_splitviewer(); - register_node_type_cmp_output_file(); - register_node_type_cmp_view_levels(); - - register_node_type_cmp_curve_rgb(); - register_node_type_cmp_mix_rgb(); - register_node_type_cmp_hue_sat(); - register_node_type_cmp_brightcontrast(); - register_node_type_cmp_gamma(); - register_node_type_cmp_exposure(); - register_node_type_cmp_invert(); - register_node_type_cmp_alphaover(); - register_node_type_cmp_zcombine(); - register_node_type_cmp_colorbalance(); - register_node_type_cmp_huecorrect(); - - register_node_type_cmp_normal(); - register_node_type_cmp_curve_vec(); - register_node_type_cmp_map_value(); - register_node_type_cmp_map_range(); - register_node_type_cmp_normalize(); - - register_node_type_cmp_filter(); - register_node_type_cmp_blur(); - register_node_type_cmp_dblur(); - register_node_type_cmp_bilateralblur(); - register_node_type_cmp_vecblur(); - register_node_type_cmp_dilateerode(); - register_node_type_cmp_inpaint(); - register_node_type_cmp_despeckle(); - register_node_type_cmp_defocus(); - register_node_type_cmp_posterize(); - register_node_type_cmp_sunbeams(); - register_node_type_cmp_denoise(); - register_node_type_cmp_antialiasing(); - - register_node_type_cmp_convert_color_space(); - register_node_type_cmp_valtorgb(); - register_node_type_cmp_rgbtobw(); - register_node_type_cmp_setalpha(); - register_node_type_cmp_idmask(); - register_node_type_cmp_math(); - register_node_type_cmp_seprgba(); - register_node_type_cmp_combrgba(); - register_node_type_cmp_sephsva(); - register_node_type_cmp_combhsva(); - register_node_type_cmp_sepyuva(); - register_node_type_cmp_combyuva(); - register_node_type_cmp_sepycca(); - register_node_type_cmp_combycca(); - register_node_type_cmp_premulkey(); - register_node_type_cmp_separate_xyz(); - register_node_type_cmp_combine_xyz(); - register_node_type_cmp_separate_color(); - register_node_type_cmp_combine_color(); - - register_node_type_cmp_diff_matte(); - register_node_type_cmp_distance_matte(); - register_node_type_cmp_chroma_matte(); - register_node_type_cmp_color_matte(); - register_node_type_cmp_channel_matte(); - register_node_type_cmp_color_spill(); - register_node_type_cmp_luma_matte(); - register_node_type_cmp_doubleedgemask(); - register_node_type_cmp_keyingscreen(); - register_node_type_cmp_keying(); - register_node_type_cmp_cryptomatte(); - register_node_type_cmp_cryptomatte_legacy(); - - register_node_type_cmp_translate(); - register_node_type_cmp_rotate(); - register_node_type_cmp_scale(); - register_node_type_cmp_flip(); - register_node_type_cmp_crop(); - register_node_type_cmp_displace(); - register_node_type_cmp_mapuv(); - register_node_type_cmp_glare(); - register_node_type_cmp_tonemap(); - register_node_type_cmp_lensdist(); - register_node_type_cmp_transform(); - register_node_type_cmp_stabilize2d(); - register_node_type_cmp_moviedistortion(); - - register_node_type_cmp_colorcorrection(); - register_node_type_cmp_boxmask(); - register_node_type_cmp_ellipsemask(); - register_node_type_cmp_bokehimage(); - register_node_type_cmp_bokehblur(); - register_node_type_cmp_switch(); - register_node_type_cmp_switch_view(); - register_node_type_cmp_pixelate(); - - register_node_type_cmp_mask(); - register_node_type_cmp_trackpos(); - register_node_type_cmp_planetrackdeform(); - register_node_type_cmp_cornerpin(); -} - -static void registerShaderNodes() -{ - register_node_type_sh_group(); - - register_node_type_sh_camera(); - register_node_type_sh_gamma(); - register_node_type_sh_brightcontrast(); - register_node_type_sh_value(); - register_node_type_sh_rgb(); - register_node_type_sh_wireframe(); - register_node_type_sh_wavelength(); - register_node_type_sh_blackbody(); - register_node_type_sh_mix_rgb(); - register_node_type_sh_mix(); - register_node_type_sh_valtorgb(); - register_node_type_sh_rgbtobw(); - register_node_type_sh_shadertorgb(); - register_node_type_sh_normal(); - register_node_type_sh_mapping(); - register_node_type_sh_curve_float(); - register_node_type_sh_curve_vec(); - register_node_type_sh_curve_rgb(); - register_node_type_sh_map_range(); - register_node_type_sh_clamp(); - register_node_type_sh_math(); - register_node_type_sh_vect_math(); - register_node_type_sh_vector_rotate(); - register_node_type_sh_vect_transform(); - register_node_type_sh_squeeze(); - register_node_type_sh_invert(); - register_node_type_sh_sepcolor(); - register_node_type_sh_combcolor(); - register_node_type_sh_seprgb(); - register_node_type_sh_combrgb(); - register_node_type_sh_sephsv(); - register_node_type_sh_combhsv(); - register_node_type_sh_sepxyz(); - register_node_type_sh_combxyz(); - register_node_type_sh_hue_sat(); - - register_node_type_sh_attribute(); - register_node_type_sh_bevel(); - register_node_type_sh_displacement(); - register_node_type_sh_vector_displacement(); - register_node_type_sh_geometry(); - register_node_type_sh_light_path(); - register_node_type_sh_light_falloff(); - register_node_type_sh_object_info(); - register_node_type_sh_fresnel(); - register_node_type_sh_layer_weight(); - register_node_type_sh_tex_coord(); - register_node_type_sh_particle_info(); - register_node_type_sh_bump(); - register_node_type_sh_vertex_color(); - - register_node_type_sh_background(); - register_node_type_sh_bsdf_anisotropic(); - register_node_type_sh_bsdf_diffuse(); - register_node_type_sh_bsdf_principled(); - register_node_type_sh_bsdf_glossy(); - register_node_type_sh_bsdf_glass(); - register_node_type_sh_bsdf_translucent(); - register_node_type_sh_bsdf_transparent(); - register_node_type_sh_bsdf_velvet(); - register_node_type_sh_bsdf_toon(); - register_node_type_sh_bsdf_hair(); - register_node_type_sh_bsdf_hair_principled(); - register_node_type_sh_emission(); - register_node_type_sh_holdout(); - register_node_type_sh_volume_absorption(); - register_node_type_sh_volume_scatter(); - register_node_type_sh_volume_principled(); - register_node_type_sh_subsurface_scattering(); - register_node_type_sh_mix_shader(); - register_node_type_sh_add_shader(); - register_node_type_sh_uvmap(); - register_node_type_sh_uvalongstroke(); - register_node_type_sh_eevee_specular(); - - register_node_type_sh_output_light(); - register_node_type_sh_output_material(); - register_node_type_sh_output_world(); - register_node_type_sh_output_linestyle(); - register_node_type_sh_output_aov(); - - register_node_type_sh_tex_image(); - register_node_type_sh_tex_environment(); - register_node_type_sh_tex_sky(); - register_node_type_sh_tex_noise(); - register_node_type_sh_tex_wave(); - register_node_type_sh_tex_voronoi(); - register_node_type_sh_tex_musgrave(); - register_node_type_sh_tex_gradient(); - register_node_type_sh_tex_magic(); - register_node_ @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs