[Bf-blender-cvs] [ee2b72fd29f] master: Nodes: Convert several shader nodes to c++

Aaron Carlisle noreply at git.blender.org
Thu Dec 30 18:42:19 CET 2021


Commit: ee2b72fd29f7eddc4d18c7fd4dc02077a24d9961
Author: Aaron Carlisle
Date:   Wed Dec 29 22:37:57 2021 -0500
Branches: master
https://developer.blender.org/rBee2b72fd29f7eddc4d18c7fd4dc02077a24d9961

Nodes: Convert several shader nodes to c++

Also add file namespace

This is needed to use new node APIs

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

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

M	source/blender/nodes/shader/CMakeLists.txt
R083	source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.c	source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.cc
R083	source/blender/nodes/shader/nodes/node_shader_attribute.c	source/blender/nodes/shader/nodes/node_shader_attribute.cc
R081	source/blender/nodes/shader/nodes/node_shader_background.c	source/blender/nodes/shader/nodes/node_shader_background.cc
R083	source/blender/nodes/shader/nodes/node_shader_bevel.c	source/blender/nodes/shader/nodes/node_shader_bevel.cc
R080	source/blender/nodes/shader/nodes/node_shader_blackbody.c	source/blender/nodes/shader/nodes/node_shader_blackbody.cc
R082	source/blender/nodes/shader/nodes/node_shader_brightness.c	source/blender/nodes/shader/nodes/node_shader_brightness.cc
R083	source/blender/nodes/shader/nodes/node_shader_camera.c	source/blender/nodes/shader/nodes/node_shader_camera.cc
R085	source/blender/nodes/shader/nodes/node_shader_displacement.c	source/blender/nodes/shader/nodes/node_shader_displacement.cc
R085	source/blender/nodes/shader/nodes/node_shader_eevee_specular.c	source/blender/nodes/shader/nodes/node_shader_eevee_specular.cc
R082	source/blender/nodes/shader/nodes/node_shader_emission.c	source/blender/nodes/shader/nodes/node_shader_emission.cc
R084	source/blender/nodes/shader/nodes/node_shader_fresnel.c	source/blender/nodes/shader/nodes/node_shader_fresnel.cc
R084	source/blender/nodes/shader/nodes/node_shader_gamma.c	source/blender/nodes/shader/nodes/node_shader_gamma.cc
R091	source/blender/nodes/shader/nodes/node_shader_geometry.c	source/blender/nodes/shader/nodes/node_shader_geometry.cc
R084	source/blender/nodes/shader/nodes/node_shader_squeeze.c	source/blender/nodes/shader/nodes/node_shader_squeeze.cc
R082	source/blender/nodes/shader/nodes/node_shader_tangent.c	source/blender/nodes/shader/nodes/node_shader_tangent.cc
R082	source/blender/nodes/shader/nodes/node_shader_tex_coord.c	source/blender/nodes/shader/nodes/node_shader_tex_coord.cc
R079	source/blender/nodes/shader/nodes/node_shader_uv_along_stroke.c	source/blender/nodes/shader/nodes/node_shader_uv_along_stroke.cc
R078	source/blender/nodes/shader/nodes/node_shader_uvmap.c	source/blender/nodes/shader/nodes/node_shader_uvmap.cc
R084	source/blender/nodes/shader/nodes/node_shader_vector_displacement.c	source/blender/nodes/shader/nodes/node_shader_vector_displacement.cc
R086	source/blender/nodes/shader/nodes/node_shader_vector_transform.c	source/blender/nodes/shader/nodes/node_shader_vector_transform.cc
R080	source/blender/nodes/shader/nodes/node_shader_vertex_color.c	source/blender/nodes/shader/nodes/node_shader_vertex_color.cc
R084	source/blender/nodes/shader/nodes/node_shader_volume_info.c	source/blender/nodes/shader/nodes/node_shader_volume_info.cc
R082	source/blender/nodes/shader/nodes/node_shader_wavelength.c	source/blender/nodes/shader/nodes/node_shader_wavelength.cc
R084	source/blender/nodes/shader/nodes/node_shader_wireframe.c	source/blender/nodes/shader/nodes/node_shader_wireframe.cc

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

diff --git a/source/blender/nodes/shader/CMakeLists.txt b/source/blender/nodes/shader/CMakeLists.txt
index 0ba8c52e453..3e514b8635c 100644
--- a/source/blender/nodes/shader/CMakeLists.txt
+++ b/source/blender/nodes/shader/CMakeLists.txt
@@ -41,12 +41,12 @@ set(INC
 
 set(SRC
   nodes/node_shader_add_shader.cc
-  nodes/node_shader_ambient_occlusion.c
-  nodes/node_shader_attribute.c
-  nodes/node_shader_background.c
-  nodes/node_shader_bevel.c
-  nodes/node_shader_blackbody.c
-  nodes/node_shader_brightness.c
+  nodes/node_shader_ambient_occlusion.cc
+  nodes/node_shader_attribute.cc
+  nodes/node_shader_background.cc
+  nodes/node_shader_bevel.cc
+  nodes/node_shader_blackbody.cc
+  nodes/node_shader_brightness.cc
   nodes/node_shader_bsdf_anisotropic.cc
   nodes/node_shader_bsdf_diffuse.cc
   nodes/node_shader_bsdf_glass.cc
@@ -60,17 +60,17 @@ set(SRC
   nodes/node_shader_bsdf_transparent.cc
   nodes/node_shader_bsdf_velvet.cc
   nodes/node_shader_bump.cc
-  nodes/node_shader_camera.c
+  nodes/node_shader_camera.cc
   nodes/node_shader_clamp.cc
   nodes/node_shader_color_ramp.cc
   nodes/node_shader_common.c
   nodes/node_shader_curves.cc
-  nodes/node_shader_displacement.c
-  nodes/node_shader_eevee_specular.c
-  nodes/node_shader_emission.c
-  nodes/node_shader_fresnel.c
-  nodes/node_shader_gamma.c
-  nodes/node_shader_geometry.c
+  nodes/node_shader_displacement.cc
+  nodes/node_shader_eevee_specular.cc
+  nodes/node_shader_emission.cc
+  nodes/node_shader_fresnel.cc
+  nodes/node_shader_gamma.cc
+  nodes/node_shader_geometry.cc
   nodes/node_shader_hair_info.c
   nodes/node_shader_holdout.c
   nodes/node_shader_hueSatVal.c
@@ -100,12 +100,12 @@ set(SRC
   nodes/node_shader_sepcomb_rgb.cc
   nodes/node_shader_sepcomb_xyz.cc
   nodes/node_shader_shader_to_rgb.cc
-  nodes/node_shader_squeeze.c
+  nodes/node_shader_squeeze.cc
   nodes/node_shader_subsurface_scattering.cc
-  nodes/node_shader_tangent.c
+  nodes/node_shader_tangent.cc
   nodes/node_shader_tex_brick.cc
   nodes/node_shader_tex_checker.cc
-  nodes/node_shader_tex_coord.c
+  nodes/node_shader_tex_coord.cc
   nodes/node_shader_tex_environment.cc
   nodes/node_shader_tex_gradient.cc
   nodes/node_shader_tex_image.cc
@@ -117,20 +117,20 @@ set(SRC
   nodes/node_shader_tex_voronoi.cc
   nodes/node_shader_tex_wave.cc
   nodes/node_shader_tex_white_noise.cc
-  nodes/node_shader_uv_along_stroke.c
-  nodes/node_shader_uvmap.c
+  nodes/node_shader_uv_along_stroke.cc
+  nodes/node_shader_uvmap.cc
   nodes/node_shader_value.cc
-  nodes/node_shader_vector_displacement.c
+  nodes/node_shader_vector_displacement.cc
   nodes/node_shader_vector_math.cc
   nodes/node_shader_vector_rotate.cc
-  nodes/node_shader_vector_transform.c
-  nodes/node_shader_vertex_color.c
+  nodes/node_shader_vector_transform.cc
+  nodes/node_shader_vertex_color.cc
   nodes/node_shader_volume_absorption.cc
-  nodes/node_shader_volume_info.c
+  nodes/node_shader_volume_info.cc
   nodes/node_shader_volume_principled.cc
   nodes/node_shader_volume_scatter.cc
-  nodes/node_shader_wavelength.c
-  nodes/node_shader_wireframe.c
+  nodes/node_shader_wavelength.cc
+  nodes/node_shader_wireframe.cc
 
   node_shader_tree.c
   node_shader_util.cc
diff --git a/source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.c b/source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.cc
similarity index 83%
rename from source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.c
rename to source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.cc
index 2561d6cb398..b4ad3d56d25 100644
--- a/source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.c
+++ b/source/blender/nodes/shader/nodes/node_shader_ambient_occlusion.cc
@@ -19,6 +19,8 @@
 
 #include "../node_shader_util.h"
 
+namespace blender::nodes::node_shader_ambient_occlusion_cc {
+
 /* **************** OUTPUT ******************** */
 
 static bNodeSocketTemplate sh_node_ambient_occlusion_in[] = {
@@ -64,15 +66,20 @@ 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(void)
+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_gpu(&ntype, node_shader_gpu_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_gpu(&ntype, file_ns::node_shader_gpu_ambient_occlusion);
 
   nodeRegisterType(&ntype);
 }
diff --git a/source/blender/nodes/shader/nodes/node_shader_attribute.c b/source/blender/nodes/shader/nodes/node_shader_attribute.cc
similarity index 83%
rename from source/blender/nodes/shader/nodes/node_shader_attribute.c
rename to source/blender/nodes/shader/nodes/node_shader_attribute.cc
index 9b3122e38e0..f0965e3a476 100644
--- a/source/blender/nodes/shader/nodes/node_shader_attribute.c
+++ b/source/blender/nodes/shader/nodes/node_shader_attribute.cc
@@ -19,6 +19,8 @@
 
 #include "../node_shader_util.h"
 
+namespace blender::nodes::node_shader_attribute_cc {
+
 /* **************** OUTPUT ******************** */
 
 static bNodeSocketTemplate sh_node_attribute_out[] = {
@@ -31,7 +33,7 @@ static bNodeSocketTemplate sh_node_attribute_out[] = {
 
 static void node_shader_init_attribute(bNodeTree *UNUSED(ntree), bNode *node)
 {
-  NodeShaderAttribute *attr = MEM_callocN(sizeof(NodeShaderAttribute), "NodeShaderAttribute");
+  NodeShaderAttribute *attr = MEM_cnew<NodeShaderAttribute>("NodeShaderAttribute");
   node->storage = attr;
 }
 
@@ -41,7 +43,7 @@ static int node_shader_gpu_attribute(GPUMaterial *mat,
                                      GPUNodeStack *in,
                                      GPUNodeStack *out)
 {
-  NodeShaderAttribute *attr = node->storage;
+  NodeShaderAttribute *attr = static_cast<NodeShaderAttribute *>(node->storage);
   bool is_varying = attr->type == SHD_ATTRIBUTE_GEOMETRY;
 
   if (GPU_material_is_volume_shader(mat) && is_varying) {
@@ -81,17 +83,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(void)
+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, NULL, 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.c b/source/blender/nodes/shader/nodes/node_shader_background.cc
similarity index 81%
rename from source/blender/nodes/shader/nodes/node_shader_background.c
rename to source/blender/nodes/shader/nodes/node_shader_background.cc
index 5fc9232ba85..b6ac0e06472 100644
--- a/source/blender/nodes/shader/nodes/node_shader_background.c
+++ b/source/blender/nodes/shader/nodes/node_shader_background.cc
@@ -19,6 +19,8 @@
 
 #include "../node_shader_util.h"
 
+namespace blender::nodes::node_shader_background_cc {
+
 /* **************** OUTPUT ******************** */
 
 static bNodeSocketTemplate sh_node_background_in[] = {
@@ -41,14 +43,19 @@ 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(void)
+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_gpu(&ntype, node_shader_gpu_background);
+  node_type_socket_templates(
+      &ntype, file_ns::sh_node_background_in, file_ns::sh_node_background_out);
+  node_type_gpu(&ntype, file_ns::node_shader_gpu_background);
 
   nodeRegisterType(&ntype);
 }
diff --git a/source/blender/nodes/shader/nodes/node_shader_bevel.c b/source/blender/nodes/shader/nodes/node_shader_bevel.cc
similarity index 83%
rename from source/blender/nodes/shader/nodes/node_shader_bevel.c
rename to source/blender/nodes/shader/nodes/node_shader_bevel.cc
index 6988563a76c..5c97d66c345 100644
--- a/source/blender/nodes/shader/nodes/node_shader_bevel.c
+++ b/source/blender/nodes/shader/nodes/node_shader_bevel.cc
@@ -19,6 +19,8 @@
 
 #include "../node_shader_util.h"
 
+namespace blender::nodes::node_shader_bevel_cc {
+
 /* **************** OUTPUT ******************** */
 
 static bNodeSocketTemplate sh_node_bevel_in[] = {
@@ -54,15 +56,19 @@ 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(void)
+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, no

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list