[Bf-blender-cvs] [c99cb814520] master: Cleanup: Use new node socket declaration API for some shader nodes

Hans Goudey noreply at git.blender.org
Wed Sep 22 21:39:19 CEST 2021


Commit: c99cb814520480379276192f044c673ef857447b
Author: Hans Goudey
Date:   Wed Sep 22 14:39:09 2021 -0500
Branches: master
https://developer.blender.org/rBc99cb814520480379276192f044c673ef857447b

Cleanup: Use new node socket declaration API for some shader nodes

This converts socket declarations for most shader nodes that had already
been converted to C++, but skips those that needed a special flag.

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

M	source/blender/nodes/shader/node_shader_util.h
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_map_range.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_sepcombRGB.cc
M	source/blender/nodes/shader/nodes/node_shader_sepcombXYZ.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_white_noise.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_vector_math.cc
M	source/blender/nodes/shader/nodes/node_shader_vector_rotate.cc

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

diff --git a/source/blender/nodes/shader/node_shader_util.h b/source/blender/nodes/shader/node_shader_util.h
index a75354d3381..c647b86a19a 100644
--- a/source/blender/nodes/shader/node_shader_util.h
+++ b/source/blender/nodes/shader/node_shader_util.h
@@ -73,6 +73,7 @@
 #  include "FN_multi_function_builder.hh"
 
 #  include "NOD_multi_function.hh"
+#  include "NOD_socket_declarations.hh"
 
 #  include "BLI_color.hh"
 #  include "BLI_float3.hh"
diff --git a/source/blender/nodes/shader/nodes/node_shader_clamp.cc b/source/blender/nodes/shader/nodes/node_shader_clamp.cc
index b90397e4892..31d8f8ef15c 100644
--- a/source/blender/nodes/shader/nodes/node_shader_clamp.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_clamp.cc
@@ -23,18 +23,18 @@
 
 #include "node_shader_util.h"
 
-/* **************** Clamp ******************** */
-static bNodeSocketTemplate sh_node_clamp_in[] = {
-    {SOCK_FLOAT, N_("Value"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
-    {SOCK_FLOAT, N_("Min"), 0.0f, 1.0f, 1.0f, 1.0f, -10000.0f, 10000.0f, PROP_NONE},
-    {SOCK_FLOAT, N_("Max"), 1.0f, 1.0f, 1.0f, 1.0f, -10000.0f, 10000.0f, PROP_NONE},
-    {-1, ""},
-};
-static bNodeSocketTemplate sh_node_clamp_out[] = {
-    {SOCK_FLOAT, N_("Result")},
-    {-1, ""},
+namespace blender::nodes {
+
+static void sh_node_clamp_declare(NodeDeclarationBuilder &b)
+{
+  b.add_input<decl::Float>("Value").min(0.0f).max(1.0f).default_value(1.0f);
+  b.add_input<decl::Float>("Min").default_value(0.0f).min(-10000.0f).max(10000.0f);
+  b.add_input<decl::Float>("Max").default_value(1.0f).min(-10000.0f).max(10000.0f);
+  b.add_output<decl::Float>("Result");
 };
 
+}  // namespace blender::nodes
+
 static void node_shader_init_clamp(bNodeTree *UNUSED(ntree), bNode *node)
 {
   node->custom1 = NODE_CLAMP_MINMAX; /* clamp type */
@@ -79,7 +79,7 @@ void register_node_type_sh_clamp(void)
   static bNodeType ntype;
 
   sh_fn_node_type_base(&ntype, SH_NODE_CLAMP, "Clamp", NODE_CLASS_CONVERTER, 0);
-  node_type_socket_templates(&ntype, sh_node_clamp_in, sh_node_clamp_out);
+  ntype.declare = blender::nodes::sh_node_clamp_declare;
   node_type_init(&ntype, node_shader_init_clamp);
   node_type_gpu(&ntype, gpu_shader_clamp);
   ntype.build_multi_function = sh_node_clamp_build_multi_function;
diff --git a/source/blender/nodes/shader/nodes/node_shader_curves.cc b/source/blender/nodes/shader/nodes/node_shader_curves.cc
index df075d6e973..e4ada06133e 100644
--- a/source/blender/nodes/shader/nodes/node_shader_curves.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_curves.cc
@@ -23,18 +23,17 @@
 
 #include "node_shader_util.h"
 
-/* **************** CURVE VEC  ******************** */
-static bNodeSocketTemplate sh_node_curve_vec_in[] = {
-    {SOCK_FLOAT, N_("Fac"), 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, PROP_FACTOR},
-    {SOCK_VECTOR, N_("Vector"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE},
-    {-1, ""},
-};
+namespace blender::nodes {
 
-static bNodeSocketTemplate sh_node_curve_vec_out[] = {
-    {SOCK_VECTOR, N_("Vector")},
-    {-1, ""},
+static void sh_node_curve_vec_declare(NodeDeclarationBuilder &b)
+{
+  b.add_input<decl::Float>("Fac").min(0.0f).max(1.0f).default_value(1.0f).subtype(PROP_FACTOR);
+  b.add_input<decl::Vector>("Vector").min(-1.0f).max(1.0f);
+  b.add_output<decl::Vector>("Vector");
 };
 
+}  // namespace blender::nodes
+
 static void node_shader_exec_curve_vec(void *UNUSED(data),
                                        int UNUSED(thread),
                                        bNode *node,
@@ -157,7 +156,7 @@ void register_node_type_sh_curve_vec(void)
   static bNodeType ntype;
 
   sh_fn_node_type_base(&ntype, SH_NODE_CURVE_VEC, "Vector Curves", NODE_CLASS_OP_VECTOR, 0);
-  node_type_socket_templates(&ntype, sh_node_curve_vec_in, sh_node_curve_vec_out);
+  ntype.declare = blender::nodes::sh_node_curve_vec_declare;
   node_type_init(&ntype, node_shader_init_curve_vec);
   node_type_size_preset(&ntype, NODE_SIZE_LARGE);
   node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
@@ -169,17 +168,18 @@ void register_node_type_sh_curve_vec(void)
 }
 
 /* **************** CURVE RGB  ******************** */
-static bNodeSocketTemplate sh_node_curve_rgb_in[] = {
-    {SOCK_FLOAT, N_("Fac"), 1.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_FACTOR},
-    {SOCK_RGBA, N_("Color"), 0.0f, 0.0f, 0.0f, 1.0f},
-    {-1, ""},
-};
 
-static bNodeSocketTemplate sh_node_curve_rgb_out[] = {
-    {SOCK_RGBA, N_("Color")},
-    {-1, ""},
+namespace blender::nodes {
+
+static void sh_node_curve_rgb_declare(NodeDeclarationBuilder &b)
+{
+  b.add_input<decl::Float>("Fac").min(0.0f).max(1.0f).default_value(1.0f).subtype(PROP_FACTOR);
+  b.add_input<decl::Color>("Color").default_value({1.0f, 1.0f, 1.0f, 1.0f});
+  b.add_output<decl::Color>("Color");
 };
 
+}  // namespace blender::nodes
+
 static void node_shader_exec_curve_rgb(void *UNUSED(data),
                                        int UNUSED(thread),
                                        bNode *node,
@@ -332,7 +332,7 @@ void register_node_type_sh_curve_rgb(void)
   static bNodeType ntype;
 
   sh_fn_node_type_base(&ntype, SH_NODE_CURVE_RGB, "RGB Curves", NODE_CLASS_OP_COLOR, 0);
-  node_type_socket_templates(&ntype, sh_node_curve_rgb_in, sh_node_curve_rgb_out);
+  ntype.declare = blender::nodes::sh_node_curve_rgb_declare;
   node_type_init(&ntype, node_shader_init_curve_rgb);
   node_type_size_preset(&ntype, NODE_SIZE_LARGE);
   node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
diff --git a/source/blender/nodes/shader/nodes/node_shader_map_range.cc b/source/blender/nodes/shader/nodes/node_shader_map_range.cc
index f48e824ccb5..a5f9a24a728 100644
--- a/source/blender/nodes/shader/nodes/node_shader_map_range.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_map_range.cc
@@ -25,21 +25,21 @@
 
 #include "BLI_math_base_safe.h"
 
-/* **************** Map Range ******************** */
-static bNodeSocketTemplate sh_node_map_range_in[] = {
-    {SOCK_FLOAT, N_("Value"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, PROP_NONE},
-    {SOCK_FLOAT, N_("From Min"), 0.0f, 1.0f, 1.0f, 1.0f, -10000.0f, 10000.0f, PROP_NONE},
-    {SOCK_FLOAT, N_("From Max"), 1.0f, 1.0f, 1.0f, 1.0f, -10000.0f, 10000.0f, PROP_NONE},
-    {SOCK_FLOAT, N_("To Min"), 0.0f, 1.0f, 1.0f, 1.0f, -10000.0f, 10000.0f, PROP_NONE},
-    {SOCK_FLOAT, N_("To Max"), 1.0f, 1.0f, 1.0f, 1.0f, -10000.0f, 10000.0f, PROP_NONE},
-    {SOCK_FLOAT, N_("Steps"), 4.0f, 1.0f, 1.0f, 1.0f, 0.0f, 10000.0f, PROP_NONE},
-    {-1, ""},
-};
-static bNodeSocketTemplate sh_node_map_range_out[] = {
-    {SOCK_FLOAT, N_("Result")},
-    {-1, ""},
+namespace blender::nodes {
+
+static void sh_node_map_range_declare(NodeDeclarationBuilder &b)
+{
+  b.add_input<decl::Float>("Value").min(-10000.0f).max(10000.0f).default_value(1.0f);
+  b.add_input<decl::Float>("From Min").min(-10000.0f).max(10000.0f);
+  b.add_input<decl::Float>("From Max").min(-10000.0f).max(10000.0f).default_value(1.0f);
+  b.add_input<decl::Float>("To Min").min(-10000.0f).max(10000.0f);
+  b.add_input<decl::Float>("To Max").min(-10000.0f).max(10000.0f).default_value(1.0f);
+  b.add_input<decl::Float>("Steps").min(-10000.0f).max(10000.0f).default_value(4.0f);
+  b.add_output<decl::Float>("Result");
 };
 
+}  // namespace blender::nodes
+
 static void node_shader_update_map_range(bNodeTree *UNUSED(ntree), bNode *node)
 {
   bNodeSocket *sockSteps = nodeFindSocket(node, SOCK_IN, "Steps");
@@ -311,7 +311,7 @@ void register_node_type_sh_map_range(void)
   static bNodeType ntype;
 
   sh_fn_node_type_base(&ntype, SH_NODE_MAP_RANGE, "Map Range", NODE_CLASS_CONVERTER, 0);
-  node_type_socket_templates(&ntype, sh_node_map_range_in, sh_node_map_range_out);
+  ntype.declare = blender::nodes::sh_node_map_range_declare;
   node_type_init(&ntype, node_shader_init_map_range);
   node_type_update(&ntype, node_shader_update_map_range);
   node_type_gpu(&ntype, gpu_shader_map_range);
diff --git a/source/blender/nodes/shader/nodes/node_shader_math.cc b/source/blender/nodes/shader/nodes/node_shader_math.cc
index 66c50b6de46..80a27b8e6a1 100644
--- a/source/blender/nodes/shader/nodes/node_shader_math.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_math.cc
@@ -26,13 +26,18 @@
 #include "NOD_math_functions.hh"
 
 /* **************** SCALAR MATH ******************** */
-static bNodeSocketTemplate sh_node_math_in[] = {
-    {SOCK_FLOAT, N_("Value"), 0.5f, 0.5f, 0.5f, 1.0f, -10000.0f, 10000.0f, PROP_NONE},
-    {SOCK_FLOAT, N_("Value"), 0.5f, 0.5f, 0.5f, 1.0f, -10000.0f, 10000.0f, PROP_NONE},
-    {SOCK_FLOAT, N_("Value"), 0.0f, 0.5f, 0.5f, 1.0f, -10000.0f, 10000.0f, PROP_NONE},
-    {-1, ""}};
 
-static bNodeSocketTemplate sh_node_math_out[] = {{SOCK_FLOAT, N_("Value")}, {-1, ""}};
+namespace blender::nodes {
+
+static void sh_node_math_declare(NodeDeclarationBuilder &b)
+{
+  b.add_input<decl::Float>("Value").default_value(0.5f).min(-10000.0f).max(10000.0f);
+  b.add_input<decl::Float>("Value", "Value_001").default_value(0.5f).min(-10000.0f).max(10000.0f);
+  b.add_input<decl::Float>("Value", "Value_002").default_value(0.5f).min(-10000.0f).max(10000.0f);
+  b.add_output<decl::Float>("Value");
+};
+
+}  // namespace blender::nodes
 
 static const char *gpu_shader_get_name(int mode)
 {
@@ -153,7 +158,7 @@ void register_node_type_sh_math(void)
   static bNodeType ntype;
 
   sh_fn_node_type_base(&ntype, SH_NODE_MATH, "Math", NODE_CLASS_CONVERTER, 0);
-  node_type_socket_templates(&ntype, sh_node_math_in, sh_node_math_out);
+  ntype.declare = blender::nodes::sh_node_math_declare;
   node_type_label(&ntype, node_math_label);
   node_type_gpu(&ntype, gpu_shader_math);
   node_type_update(&ntype, node_math_update);
diff --git a/source/blender/nodes/shader/nodes/node_shader_mixRgb.cc b/source/blender/nodes/shader/nodes/node_shader_mixRgb.cc
index ade35a40366..860cc260d5d 100644
--- a/source/blender/nodes/shader/nodes/node_shader_mixRgb.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_mixRgb.cc
@@ -23,18 +23,18 @@
 
 #include "node_shader_util.h"
 
-/* **************** MIX RGB ******************** */
-static bNodeSocketTemplate sh_node_mix_rgb_in[] = {
-    {SOCK_FLOAT, N_("Fac"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_F

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list