[Bf-blender-cvs] [86ade3df560] master: Nodes: move node registration to nodes module

Jacques Lucke noreply at git.blender.org
Sat Nov 26 13:21:27 CET 2022


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. @@



More information about the Bf-blender-cvs mailing list