[Bf-blender-cvs] [a2ea32a600d] master: Cleanup: inline signatures into multi-function constructors

Jacques Lucke noreply at git.blender.org
Sat Jan 7 18:00:48 CET 2023


Commit: a2ea32a600def98a1ee2d8d2eb63126e4d51fe53
Author: Jacques Lucke
Date:   Sat Jan 7 18:00:37 2023 +0100
Branches: master
https://developer.blender.org/rBa2ea32a600def98a1ee2d8d2eb63126e4d51fe53

Cleanup: inline signatures into multi-function constructors

This reduces the amount of code. Also the signature should be thought
of as being setup in the constructor, so it's good if the code is there as well.

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

M	source/blender/functions/tests/FN_multi_function_test.cc
M	source/blender/functions/tests/FN_multi_function_test_common.hh
M	source/blender/nodes/function/nodes/node_fn_align_euler_to_vector.cc
M	source/blender/nodes/function/nodes/node_fn_input_special_characters.cc
M	source/blender/nodes/function/nodes/node_fn_separate_color.cc
M	source/blender/nodes/geometry/nodes/node_geo_curve_sample.cc
M	source/blender/nodes/geometry/nodes/node_geo_image_texture.cc
M	source/blender/nodes/geometry/nodes/node_geo_proximity.cc
M	source/blender/nodes/geometry/nodes/node_geo_raycast.cc
M	source/blender/nodes/geometry/nodes/node_geo_sample_index.cc
M	source/blender/nodes/geometry/nodes/node_geo_sample_nearest.cc
M	source/blender/nodes/geometry/nodes/node_geo_sample_nearest_surface.cc
M	source/blender/nodes/geometry/nodes/node_geo_sample_uv_surface.cc
M	source/blender/nodes/shader/nodes/node_shader_color_ramp.cc
M	source/blender/nodes/shader/nodes/node_shader_curves.cc
M	source/blender/nodes/shader/nodes/node_shader_mix.cc
M	source/blender/nodes/shader/nodes/node_shader_mix_rgb.cc
M	source/blender/nodes/shader/nodes/node_shader_sepcomb_rgb.cc
M	source/blender/nodes/shader/nodes/node_shader_sepcomb_xyz.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_gradient.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_magic.cc
M	source/blender/nodes/shader/nodes/node_shader_tex_wave.cc

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

diff --git a/source/blender/functions/tests/FN_multi_function_test.cc b/source/blender/functions/tests/FN_multi_function_test.cc
index f0db195960c..9be5e224f09 100644
--- a/source/blender/functions/tests/FN_multi_function_test.cc
+++ b/source/blender/functions/tests/FN_multi_function_test.cc
@@ -13,20 +13,17 @@ class AddFunction : public MultiFunction {
  public:
   AddFunction()
   {
-    static Signature signature = create_signature();
+    static Signature signature = []() {
+      Signature signature;
+      SignatureBuilder builder("Add", signature);
+      builder.single_input<int>("A");
+      builder.single_input<int>("B");
+      builder.single_output<int>("Result");
+      return signature;
+    }();
     this->set_signature(&signature);
   }
 
-  static Signature create_signature()
-  {
-    Signature signature;
-    SignatureBuilder builder("Add", signature);
-    builder.single_input<int>("A");
-    builder.single_input<int>("B");
-    builder.single_output<int>("Result");
-    return signature;
-  }
-
   void call(IndexMask mask, MFParams params, Context /*context*/) const override
   {
     const VArray<int> &a = params.readonly_single_input<int>(0, "A");
diff --git a/source/blender/functions/tests/FN_multi_function_test_common.hh b/source/blender/functions/tests/FN_multi_function_test_common.hh
index 2014e4fc74e..adf70498fa6 100644
--- a/source/blender/functions/tests/FN_multi_function_test_common.hh
+++ b/source/blender/functions/tests/FN_multi_function_test_common.hh
@@ -8,19 +8,16 @@ class AddPrefixFunction : public MultiFunction {
  public:
   AddPrefixFunction()
   {
-    static Signature signature = create_signature();
+    static const Signature signature = []() {
+      Signature signature;
+      SignatureBuilder builder{"Add Prefix", signature};
+      builder.single_input<std::string>("Prefix");
+      builder.single_mutable<std::string>("Strings");
+      return signature;
+    }();
     this->set_signature(&signature);
   }
 
-  static Signature create_signature()
-  {
-    Signature signature;
-    SignatureBuilder builder{"Add Prefix", signature};
-    builder.single_input<std::string>("Prefix");
-    builder.single_mutable<std::string>("Strings");
-    return signature;
-  }
-
   void call(IndexMask mask, MFParams params, Context /*context*/) const override
   {
     const VArray<std::string> &prefixes = params.readonly_single_input<std::string>(0, "Prefix");
@@ -36,19 +33,16 @@ class CreateRangeFunction : public MultiFunction {
  public:
   CreateRangeFunction()
   {
-    static Signature signature = create_signature();
+    static const Signature signature = []() {
+      Signature signature;
+      SignatureBuilder builder{"Create Range", signature};
+      builder.single_input<int>("Size");
+      builder.vector_output<int>("Range");
+      return signature;
+    }();
     this->set_signature(&signature);
   }
 
-  static Signature create_signature()
-  {
-    Signature signature;
-    SignatureBuilder builder{"Create Range", signature};
-    builder.single_input<int>("Size");
-    builder.vector_output<int>("Range");
-    return signature;
-  }
-
   void call(IndexMask mask, MFParams params, Context /*context*/) const override
   {
     const VArray<int> &sizes = params.readonly_single_input<int>(0, "Size");
@@ -94,19 +88,16 @@ class ConcatVectorsFunction : public MultiFunction {
  public:
   ConcatVectorsFunction()
   {
-    static Signature signature = create_signature();
+    static const Signature signature = []() {
+      Signature signature;
+      SignatureBuilder builder{"Concat Vectors", signature};
+      builder.vector_mutable<int>("A");
+      builder.vector_input<int>("B");
+      return signature;
+    }();
     this->set_signature(&signature);
   }
 
-  static Signature create_signature()
-  {
-    Signature signature;
-    SignatureBuilder builder{"Concat Vectors", signature};
-    builder.vector_mutable<int>("A");
-    builder.vector_input<int>("B");
-    return signature;
-  }
-
   void call(IndexMask mask, MFParams params, Context /*context*/) const override
   {
     GVectorArray &a = params.vector_mutable(0);
@@ -119,19 +110,16 @@ class AppendFunction : public MultiFunction {
  public:
   AppendFunction()
   {
-    static Signature signature = create_signature();
+    static const Signature signature = []() {
+      Signature signature;
+      SignatureBuilder builder{"Append", signature};
+      builder.vector_mutable<int>("Vector");
+      builder.single_input<int>("Value");
+      return signature;
+    }();
     this->set_signature(&signature);
   }
 
-  static Signature create_signature()
-  {
-    Signature signature;
-    SignatureBuilder builder{"Append", signature};
-    builder.vector_mutable<int>("Vector");
-    builder.single_input<int>("Value");
-    return signature;
-  }
-
   void call(IndexMask mask, MFParams params, Context /*context*/) const override
   {
     GVectorArray_TypedMutableRef<int> vectors = params.vector_mutable<int>(0);
@@ -147,19 +135,16 @@ class SumVectorFunction : public MultiFunction {
  public:
   SumVectorFunction()
   {
-    static Signature signature = create_signature();
+    static const Signature signature = []() {
+      Signature signature;
+      SignatureBuilder builder{"Sum Vectors", signature};
+      builder.vector_input<int>("Vector");
+      builder.single_output<int>("Sum");
+      return signature;
+    }();
     this->set_signature(&signature);
   }
 
-  static Signature create_signature()
-  {
-    Signature signature;
-    SignatureBuilder builder{"Sum Vectors", signature};
-    builder.vector_input<int>("Vector");
-    builder.single_output<int>("Sum");
-    return signature;
-  }
-
   void call(IndexMask mask, MFParams params, Context /*context*/) const override
   {
     const VVectorArray<int> &vectors = params.readonly_vector_input<int>(0);
@@ -179,19 +164,16 @@ class OptionalOutputsFunction : public MultiFunction {
  public:
   OptionalOutputsFunction()
   {
-    static Signature signature = create_signature();
+    static const Signature signature = []() {
+      Signature signature;
+      SignatureBuilder builder{"Optional Outputs", signature};
+      builder.single_output<int>("Out 1");
+      builder.single_output<std::string>("Out 2");
+      return signature;
+    }();
     this->set_signature(&signature);
   }
 
-  static Signature create_signature()
-  {
-    Signature signature;
-    SignatureBuilder builder{"Optional Outputs", signature};
-    builder.single_output<int>("Out 1");
-    builder.single_output<std::string>("Out 2");
-    return signature;
-  }
-
   void call(IndexMask mask, MFParams params, Context /*context*/) const override
   {
     if (params.single_output_is_required(0, "Out 1")) {
diff --git a/source/blender/nodes/function/nodes/node_fn_align_euler_to_vector.cc b/source/blender/nodes/function/nodes/node_fn_align_euler_to_vector.cc
index 21e60f127ce..efea88088cf 100644
--- a/source/blender/nodes/function/nodes/node_fn_align_euler_to_vector.cc
+++ b/source/blender/nodes/function/nodes/node_fn_align_euler_to_vector.cc
@@ -142,22 +142,18 @@ class MF_AlignEulerToVector : public mf::MultiFunction {
   MF_AlignEulerToVector(int main_axis_mode, int pivot_axis_mode)
       : main_axis_mode_(main_axis_mode), pivot_axis_mode_(pivot_axis_mode)
   {
-    static mf::Signature signature = create_signature();
+    static const mf::Signature signature = []() {
+      mf::Signature signature;
+      mf::SignatureBuilder builder{"Align Euler to Vector", signature};
+      builder.single_input<float3>("Rotation");
+      builder.single_input<float>("Factor");
+      builder.single_input<float3>("Vector");
+      builder.single_output<float3>("Rotation");
+      return signature;
+    }();
     this->set_signature(&signature);
   }
 
-  static mf::Signature create_signature()
-  {
-    mf::Signature signature;
-    mf::SignatureBuilder builder{"Align Euler to Vector", signature};
-    builder.single_input<float3>("Rotation");
-    builder.single_input<float>("Factor");
-    builder.single_input<float3>("Vector");
-
-    builder.single_output<float3>("Rotation");
-    return signature;
-  }
-
   void call(IndexMask mask, mf::MFParams params, mf::Context /*context*/) const override
   {
     const VArray<float3> &input_rotations = params.readonly_single_input<float3>(0, "Rotation");
diff --git a/source/blender/nodes/function/nodes/node_fn_input_special_characters.cc b/source/blender/nodes/function/nodes/node_fn_input_special_characters.cc
index 7ccd6f3d87f..1392a923136 100644
--- a/source/blender/nodes/function/nodes/node_fn_input_special_characters.cc
+++ b/source/blender/nodes/function/nodes/node_fn_input_special_characters.cc
@@ -14,19 +14,16 @@ class MF_SpecialCharacters : public mf::MultiFunction {
  public:
   MF_SpecialCharacters()
   {
-    static mf::Signature signature = create_signature();
+    static const mf::Signature signature = []() {
+      mf::Signature signature;
+      mf::SignatureBuilder builder{"Special Characters", signature};
+      builder.single_output<std::string>("Line Break");
+      builder.single_output<std::string>("Tab");
+      return signature;
+    }();
     this->set_signature(&signature);
   }
 
-  static mf::Signature create_signature()
-  {
-    mf::Signature signature;
-    mf::SignatureBuilder builder{"Special Characters", signature};
-    builder.single_output<std::string>("Line Break");
-    builder.single_output<std::string>("Tab");
-    return signature;
-  }
-
   void call(IndexMask mask, mf::MFParams params, mf::Context /*context*/) const override
   {
     MutableSpan<std::string> lb = params.uninitialized_single_output<std::string>(0, "Line Break");
diff --git a/source/blender/nodes/function/nodes/node_fn_separate_color.cc b/source/blender/nodes/function/nodes/node_fn_separate_color.cc
index c717a9de080..fae7c275f5d 100644
--- a/source/blender/nodes/function/nodes/node_fn_separate_color.cc
+++ b/source/blender/nodes/function/nodes/node_fn_separate_color.cc
@@ -41,22 +41,19 @@ class SeparateRGBAFunction : public mf::MultiFunction {
  public:
   SeparateRGBAFunction()
   {
-    static mf::Signature signature = create_signature();
+    static const mf::Signature signature

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list