[Bf-blender-cvs] [3f7014ecc9d] master: Shader Nodes: Declare nodes in their own namespace

Aaron Carlisle noreply at git.blender.org
Mon Dec 6 00:33:22 CET 2021


Commit: 3f7014ecc9d523997062eadd62888af5fc70a2b6
Author: Aaron Carlisle
Date:   Sun Dec 5 17:46:45 2021 -0500
Branches: master
https://developer.blender.org/rB3f7014ecc9d523997062eadd62888af5fc70a2b6

Shader Nodes: Declare nodes in their own namespace

Follow up on rB1df8abff257030ba79bc23dc321f35494f4d91c5

This puts all static functions in geometry node files into a new
namespace. This allows using unity build which can improve
compile times significantly

- The namespace name is derived from the file name.
  That makes it possible to write some tooling that checks the names later on.
  The filename extension (cc) is added to the namespace name as well.
  This also possibly simplifies tooling but also makes it more obvious that this namespace is specific to a file.
- In the register function of every node, I added a namespace alias namespace `file_ns = blender::nodes::node_shader_*_cc`;.
  This avoids some duplication of the file name and may also simplify tooling, because this line is easy to detect.
  The name `file_ns` stands for "file namespace" and also indicates that this namespace corresponds to the current file.

In the future some nodes will be split up to separate files and given their own namespace
This will allow function names to be simplified similar to rBfab39440e94

Reviewed By: HooglyBoogly

Differential Revision: https://developer.blender.org/D13480

===================================================================

M	source/blender/nodes/shader/nodes/node_shader_add_shader.cc
M	source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.cc
M	source/blender/nodes/shader/nodes/node_shader_attribute.cc
M	source/blender/nodes/shader/nodes/node_shader_background.cc
M	source/blender/nodes/shader/nodes/node_shader_bevel.cc
M	source/blender/nodes/shader/nodes/node_shader_blackbody.cc
M	source/blender/nodes/shader/nodes/node_shader_brightness.cc
M	source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.cc
M	source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.cc
M	source/blender/nodes/shader/nodes/node_shader_bsdf_glass.cc
M	source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.cc
M	source/blender/nodes/shader/nodes/node_shader_bsdf_hair.cc
M	source/blender/nodes/shader/nodes/node_shader_bsdf_hair_principled.cc
M	source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc
M	source/blender/nodes/shader/nodes/node_shader_bsdf_refraction.cc
M	source/blender/nodes/shader/nodes/node_shader_bsdf_toon.cc
M	source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.cc
M	source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.cc
M	source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.cc
M	source/blender/nodes/shader/nodes/node_shader_bump.cc
M	source/blender/nodes/shader/nodes/node_shader_camera.cc
M	source/blender/nodes/shader/nodes/node_shader_clamp.cc
M	source/blender/nodes/shader/nodes/node_shader_curves.cc
M	source/blender/nodes/shader/nodes/node_shader_displacement.cc
M	source/blender/nodes/shader/nodes/node_shader_eevee_specular.cc
M	source/blender/nodes/shader/nodes/node_shader_emission.cc
M	source/blender/nodes/shader/nodes/node_shader_fresnel.cc
M	source/blender/nodes/shader/nodes/node_shader_gamma.cc
M	source/blender/nodes/shader/nodes/node_shader_geometry.cc
M	source/blender/nodes/shader/nodes/node_shader_hair_info.cc
M	source/blender/nodes/shader/nodes/node_shader_holdout.cc
M	source/blender/nodes/shader/nodes/node_shader_hueSatVal.cc
M	source/blender/nodes/shader/nodes/node_shader_ies_light.cc
M	source/blender/nodes/shader/nodes/node_shader_invert.cc
M	source/blender/nodes/shader/nodes/node_shader_layer_weight.cc
M	source/blender/nodes/shader/nodes/node_shader_light_falloff.cc
M	source/blender/nodes/shader/nodes/node_shader_light_path.cc
M	source/blender/nodes/shader/nodes/node_shader_map_range.cc
M	source/blender/nodes/shader/nodes/node_shader_mapping.cc
M	source/blender/nodes/shader/nodes/node_shader_math.cc
M	source/blender/nodes/shader/nodes/node_shader_mixRgb.cc
M	source/blender/nodes/shader/nodes/node_shader_mix_shader.cc
M	source/blender/nodes/shader/nodes/node_shader_normal.cc
M	source/blender/nodes/shader/nodes/node_shader_normal_map.cc
M	source/blender/nodes/shader/nodes/node_shader_object_info.cc
M	source/blender/nodes/shader/nodes/node_shader_output_aov.cc
M	source/blender/nodes/shader/nodes/node_shader_output_light.cc
M	source/blender/nodes/shader/nodes/node_shader_output_linestyle.cc
M	source/blender/nodes/shader/nodes/node_shader_output_material.cc
M	source/blender/nodes/shader/nodes/node_shader_output_world.cc
M	source/blender/nodes/shader/nodes/node_shader_particle_info.cc
M	source/blender/nodes/shader/nodes/node_shader_rgb.cc
M	source/blender/nodes/shader/nodes/node_shader_script.cc
M	source/blender/nodes/shader/nodes/node_shader_sepcombHSV.cc
M	source/blender/nodes/shader/nodes/node_shader_sepcombRGB.cc
M	source/blender/nodes/shader/nodes/node_shader_sepcombXYZ.cc
M	source/blender/nodes/shader/nodes/node_shader_shaderToRgb.cc
M	source/blender/nodes/shader/nodes/node_shader_squeeze.cc
M	source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.cc
M	source/blender/nodes/shader/nodes/node_shader_tangent.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_brick.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_checker.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_coord.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_environment.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_gradient.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_image.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_magic.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_musgrave.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_noise.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_sky.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_voronoi.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_wave.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_white_noise.cc
M	source/blender/nodes/shader/nodes/node_shader_uvAlongStroke.cc
M	source/blender/nodes/shader/nodes/node_shader_uvmap.cc
M	source/blender/nodes/shader/nodes/node_shader_valToRgb.cc
M	source/blender/nodes/shader/nodes/node_shader_value.cc
M	source/blender/nodes/shader/nodes/node_shader_vectTransform.cc
M	source/blender/nodes/shader/nodes/node_shader_vector_displacement.cc
M	source/blender/nodes/shader/nodes/node_shader_vector_math.cc
M	source/blender/nodes/shader/nodes/node_shader_vector_rotate.cc
M	source/blender/nodes/shader/nodes/node_shader_vertex_color.cc
M	source/blender/nodes/shader/nodes/node_shader_volume_absorption.cc
M	source/blender/nodes/shader/nodes/node_shader_volume_info.cc
M	source/blender/nodes/shader/nodes/node_shader_volume_principled.cc
M	source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc
M	source/blender/nodes/shader/nodes/node_shader_wavelength.cc
M	source/blender/nodes/shader/nodes/node_shader_wireframe.cc

===================================================================

diff --git a/source/blender/nodes/shader/nodes/node_shader_add_shader.cc b/source/blender/nodes/shader/nodes/node_shader_add_shader.cc
index 5ebbdc73026..ea06c11326b 100644
--- a/source/blender/nodes/shader/nodes/node_shader_add_shader.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_add_shader.cc
@@ -21,6 +21,8 @@
 
 /* **************** OUTPUT ******************** */
 
+namespace blender::nodes::node_shader_add_shader_cc {
+
 static bNodeSocketTemplate sh_node_add_shader_in[] = {
     {SOCK_SHADER, N_("Shader")},
     {SOCK_SHADER, N_("Shader")},
@@ -41,16 +43,21 @@ static int node_shader_gpu_add_shader(GPUMaterial *mat,
   return GPU_stack_link(mat, node, "node_add_shader", in, out);
 }
 
+}  // namespace blender::nodes::node_shader_add_shader_cc
+
 /* node type definition */
 void register_node_type_sh_add_shader()
 {
+  namespace file_ns = blender::nodes::node_shader_add_shader_cc;
+
   static bNodeType ntype;
 
   sh_node_type_base(&ntype, SH_NODE_ADD_SHADER, "Add Shader", NODE_CLASS_SHADER, 0);
-  node_type_socket_templates(&ntype, sh_node_add_shader_in, sh_node_add_shader_out);
+  node_type_socket_templates(
+      &ntype, file_ns::sh_node_add_shader_in, file_ns::sh_node_add_shader_out);
   node_type_init(&ntype, nullptr);
   node_type_storage(&ntype, "", nullptr, nullptr);
-  node_type_gpu(&ntype, node_shader_gpu_add_shader);
+  node_type_gpu(&ntype, file_ns::node_shader_gpu_add_shader);
 
   nodeRegisterType(&ntype);
 }
diff --git a/source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.cc b/source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.cc
index 3b8e3f3ce7e..cf201aab7d8 100644
--- a/source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.cc
@@ -21,6 +21,8 @@
 
 /* **************** OUTPUT ******************** */
 
+namespace blender::nodes::node_shader_ambient_occlusion_cc {
+
 static bNodeSocketTemplate sh_node_ambient_occlusion_in[] = {
     {SOCK_RGBA, N_("Color"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f},
     {SOCK_FLOAT, N_("Distance"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f},
@@ -64,16 +66,21 @@ static void node_shader_init_ambient_occlusion(bNodeTree *UNUSED(ntree), bNode *
   node->custom2 = 0;
 }
 
+}  // namespace blender::nodes::node_shader_ambient_occlusion_cc
+
 /* node type definition */
 void register_node_type_sh_ambient_occlusion()
 {
+  namespace file_ns = blender::nodes::node_shader_ambient_occlusion_cc;
+
   static bNodeType ntype;
 
   sh_node_type_base(&ntype, SH_NODE_AMBIENT_OCCLUSION, "Ambient Occlusion", NODE_CLASS_INPUT, 0);
-  node_type_socket_templates(&ntype, sh_node_ambient_occlusion_in, sh_node_ambient_occlusion_out);
-  node_type_init(&ntype, node_shader_init_ambient_occlusion);
+  node_type_socket_templates(
+      &ntype, file_ns::sh_node_ambient_occlusion_in, file_ns::sh_node_ambient_occlusion_out);
+  node_type_init(&ntype, file_ns::node_shader_init_ambient_occlusion);
   node_type_storage(&ntype, "", nullptr, nullptr);
-  node_type_gpu(&ntype, node_shader_gpu_ambient_occlusion);
+  node_type_gpu(&ntype, file_ns::node_shader_gpu_ambient_occlusion);
 
   nodeRegisterType(&ntype);
 }
diff --git a/source/blender/nodes/shader/nodes/node_shader_attribute.cc b/source/blender/nodes/shader/nodes/node_shader_attribute.cc
index 246c4b071da..068d1266caa 100644
--- a/source/blender/nodes/shader/nodes/node_shader_attribute.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_attribute.cc
@@ -21,6 +21,8 @@
 
 /* **************** OUTPUT ******************** */
 
+namespace blender::nodes::node_shader_attribute_cc {
+
 static bNodeSocketTemplate sh_node_attribute_out[] = {
     {SOCK_RGBA, N_("Color")},
     {SOCK_VECTOR, N_("Vector"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
@@ -82,17 +84,21 @@ static int node_shader_gpu_attribute(GPUMaterial *mat,
   return 1;
 }
 
+}  // namespace blender::nodes::node_shader_attribute_cc
+
 /* node type definition */
 void register_node_type_sh_attribute()
 {
+  namespace file_ns = blender::nodes::node_shader_attribute_cc;
+
   static bNodeType ntype;
 
   sh_node_type_base(&ntype, SH_NODE_ATTRIBUTE, "Attribute", NODE_CLASS_INPUT, 0);
-  node_type_socket_templates(&ntype, nullptr, sh_node_attribute_out);
-  node_type_init(&ntype, node_shader_init_attribute);
+  node_type_socket_templates(&ntype, nullptr, file_ns::sh_node_attribute_out);
+  node_type_init(&ntype, file_ns::node_shader_init_attribute);
   node_type_storage(
       &ntype, "NodeShaderAttribute", node_free_standard_storage, node_copy_standard_storage);
-  node_type_gpu(&ntype, node_shader_gpu_attribute);
+  node_type_gpu(&ntype, file_ns::node_shader_gpu_attribute);
 
   nodeRegisterType(&ntype);
 }
diff --git a/source/blender/nodes/shader/nodes/node_shader_background.cc b/source/blender/nodes/shader/nodes/node_shader_background.cc
index e7174a22b06..68ff2a3fb40 100644
--- a/source/blender/nodes/shader/nodes/node_shader_background.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_background.cc
@@ -21,6 +21,8 @@
 
 /* **************** OUTPUT ******************** */
 
+namespace blender::nodes::node_shader_background_cc {
+
 static bNodeSocketTemplate sh_node_background_in[] = {
     {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
     {SOCK_FLOAT, N_("Strength"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f},
@@ -41,16 +43,21 @@ static int node_shader_gpu_background(GPUMaterial *mat,
   return GPU_stack_link(mat, node, "node_background", in, out);
 }
 
+}  // namespace blender::nodes::node_shader_background_cc
+
 /* node type definition */
 void register_node_type_sh_background()
 {
+  namespace file_ns = blender::nodes::node_shader_background_cc;
+
   static bNodeType ntype;
 
   sh_node_type_base(&ntype, SH_NODE_BACKGROUND, "Background", NODE_CLASS_SHADER, 0);
-  node_type_socket_templates(&ntype, sh_node_background_in, sh_node_background_out);
+  node_type_socket_templates(
+      &ntype, file_ns::sh_node_background_in, file_ns::sh_node_background_out);
   node_type_init(&ntype, nullptr);
   node_type_storage(&ntype, "", nullptr, nullptr);
-  node_type_gpu(&ntype, node_shader_gpu_background);
+  node_type_gpu(&ntype, file_ns::node_shader_gpu_background);
 
   nodeRegisterType(&ntype);
 }
diff --git a/source/blender/nodes/shader/nodes/node_shader_bevel.cc b/source/blender/nodes/shader/nodes/node_shader_bevel.cc
index 577af8fb294..f34e9e99f37 100644
--- a/source/blender/nodes/shader/nodes/node_shader_bevel.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_bevel.cc
@@ -21,6 +21,8 @@
 
 /* **************** OUTPUT ******************** */
 
+namespace blender::nodes::node_shader_bevel_cc {
+
 static bNodeSocketTemplate sh_node_bevel_in[] = {
     {SOCK_FLOAT, N_("Radius"), 0.05f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f},
     {SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
@@ -54,16 +56,20 @@ static int gpu_shader_bevel(GPUMaterial *mat,
   return GPU_stack_link(mat, node, "node_bevel", in, out);
 }
 
+}  // namespace blender::nodes::node_shader_bevel_cc
+
 /* node type definition */
 void register_node_type_sh_bevel()
 {
+  namespace file_ns = blender::nodes::node_shader_bevel_cc;
+
   static bNodeType ntype;
 
   sh_node_type_base(&ntype, SH_NODE_BEVEL, "Bevel", NODE_CLASS_INPUT, 0);
-  node_type_socket_templates(&ntype, sh_node_bevel_in, sh_node_bevel_out);
-  node_type_init(&ntype, node_shader_init_bevel);
+  node_type_socket_templates(&ntype, file_ns::sh_node_bevel_in, file_ns::sh_node_bevel_out);
+  node_type_init(&ntype, file_ns::node_shader_init_bevel);
   node_type_storage(&ntype, "", nullptr, nullptr);
-  node_type_gpu(&ntype, gpu_shader_bevel);
+  node_type_gpu(&ntype, file_ns::gpu_shader_bevel);
 
   nodeRegisterType(&ntype);
 }
diff --git a/source/blender/nodes/shader/nodes/node_shader_blackbody.cc b/source/blender/nodes/shader/nodes/node_shader_blackbody.cc
index abaac628bae..de5bf98fd79 100644
--- a/source/blender/nodes/shader/nodes/node_shader_blackbody.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_blackbody.cc
@@ -20,6 +20,9 @@
 #include "node_shader_util.hh"
 
 /* **************** Blackbody ******************** */
+
+namespace blender::nodes::node_shader_blackbody_cc {
+
 static bNodeSocketTemplate sh_node_blackbody_in[] = {
     {SOCK_FLOAT, N_("Temperature"), 1500.0f, 0.0f, 0.0f, 0.0f, 800.0f, 12000.0f},
     {-1, ""},
@@ -47,17 +50,22 @@ static int node_shader_gpu_blackbody(GPUMaterial *mat,
   return GPU_stack_link(mat, node, "node_blackbody", in, out, ramp_texture, GPU_constant(&layer));
 }
 
+}  // namespace blender::nodes::node_shader_blackbody_cc
+
 /* node type definition */
 void register_node_type_sh_blackbody()
 {
+  namespace file_ns = blender::nodes::node_shader_blackbody_cc;
+
   static bNodeType ntype;
 
   sh_node_type_base(&ntype, SH_NODE_BLACKBODY, "Blackbody", NODE_CLASS_CONVERTER, 0);
   node_type_size_preset(&ntype, NODE_SIZE_MIDDLE);
-  node_type_socket_templates(&ntype, sh_node_blackbody_in, sh_node_blackbody_out);
+  node_type_socket_templates(
+      &ntype, file_ns::sh_node_blackbody_in, file_ns::sh_node_blackbody_out);
   node_type_init(&ntype, nullptr);
   node_type_storage(&ntype, "", nullptr, nullptr);
-  node_type_gpu(&ntype, node_shader_gpu_blackbody);
+  node_type_gpu(&ntype, file_ns::node_shader_gpu_blackbody);
 
   nodeRegisterType(&ntype);
 }
diff --git a/source/blender/nodes/shader/nodes/node_shader_brightness.cc b/source/blender/nodes/shader/nodes/node_shader_brightness.cc
index e87c78d0a0b..3e76a2cb0b1 100644
--- a/source/blender/nodes/shader/nodes/node_shader_brightness.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_brightness.cc
@@ -21,6 +21,8 @@
 
 /* **************** Bright and contrast  ******************** */
 
+namespace blender::nodes::node_shader_brightness_cc {
+
 static bNodeSocketTemplate sh_node_brightcontrast_in[] = {
     {SOCK_RGBA, N_("Color"), 1.0f, 1.0f, 1.0f, 1.0f},
     {SOCK_FLOAT, N_("Bright"), 0.0f, 0.0f, 0.0f, 0.0f, -100.0f, 100.0f, PROP_NONE},
@@ -42,15 +44,20 @@ static int gpu_shader_brightcontrast(GPUMaterial *mat,
   return GPU_stack_link(mat, node, "brightness_contrast", in, out);
 }
 
+}  // namespace blender::nodes::node_shader_brightness_cc
+
 void registe

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list