[Bf-blender-cvs] [719a0378ae8] master: Cleanup: Use NODE_STORAGE_FUNCS for compositor nodes

Omar Emara noreply at git.blender.org
Fri Sep 2 18:13:57 CEST 2022


Commit: 719a0378ae83727c0d48975eb42224db66e03182
Author: Omar Emara
Date:   Fri Sep 2 18:12:31 2022 +0200
Branches: master
https://developer.blender.org/rB719a0378ae83727c0d48975eb42224db66e03182

Cleanup: Use NODE_STORAGE_FUNCS for compositor nodes

This patches replaces the custom node storage acessor functions from the
viewport compositor code and replaces it with NODE_STORAGE_FUNCS.

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

M	source/blender/nodes/composite/nodes/node_composite_alpha_over.cc
M	source/blender/nodes/composite/nodes/node_composite_bilateralblur.cc
M	source/blender/nodes/composite/nodes/node_composite_bokehimage.cc
M	source/blender/nodes/composite/nodes/node_composite_boxmask.cc
M	source/blender/nodes/composite/nodes/node_composite_channel_matte.cc
M	source/blender/nodes/composite/nodes/node_composite_chroma_matte.cc
M	source/blender/nodes/composite/nodes/node_composite_color_matte.cc
M	source/blender/nodes/composite/nodes/node_composite_color_spill.cc
M	source/blender/nodes/composite/nodes/node_composite_colorbalance.cc
M	source/blender/nodes/composite/nodes/node_composite_colorcorrection.cc
M	source/blender/nodes/composite/nodes/node_composite_crop.cc
M	source/blender/nodes/composite/nodes/node_composite_diff_matte.cc
M	source/blender/nodes/composite/nodes/node_composite_directionalblur.cc
M	source/blender/nodes/composite/nodes/node_composite_distance_matte.cc
M	source/blender/nodes/composite/nodes/node_composite_ellipsemask.cc
M	source/blender/nodes/composite/nodes/node_composite_lensdist.cc
M	source/blender/nodes/composite/nodes/node_composite_luma_matte.cc
M	source/blender/nodes/composite/nodes/node_composite_map_value.cc
M	source/blender/nodes/composite/nodes/node_composite_movieclip.cc
M	source/blender/nodes/composite/nodes/node_composite_sepcomb_color.cc
M	source/blender/nodes/composite/nodes/node_composite_setalpha.cc
M	source/blender/nodes/composite/nodes/node_composite_translate.cc

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

diff --git a/source/blender/nodes/composite/nodes/node_composite_alpha_over.cc b/source/blender/nodes/composite/nodes/node_composite_alpha_over.cc
index 282d3365fa5..12f81da3d1c 100644
--- a/source/blender/nodes/composite/nodes/node_composite_alpha_over.cc
+++ b/source/blender/nodes/composite/nodes/node_composite_alpha_over.cc
@@ -18,6 +18,8 @@
 
 namespace blender::nodes::node_composite_alpha_over_cc {
 
+NODE_STORAGE_FUNCS(NodeTwoFloats)
+
 static void cmp_node_alphaover_declare(NodeDeclarationBuilder &b)
 {
   b.add_input<decl::Float>(N_("Fac"))
@@ -86,7 +88,7 @@ class AlphaOverShaderNode : public ShaderNode {
 
   float get_premultiply_factor()
   {
-    return ((const NodeTwoFloats *)bnode().storage)->x;
+    return node_storage(bnode()).x;
   }
 };
 
diff --git a/source/blender/nodes/composite/nodes/node_composite_bilateralblur.cc b/source/blender/nodes/composite/nodes/node_composite_bilateralblur.cc
index 571415e75d8..ac9a6c89aa4 100644
--- a/source/blender/nodes/composite/nodes/node_composite_bilateralblur.cc
+++ b/source/blender/nodes/composite/nodes/node_composite_bilateralblur.cc
@@ -21,6 +21,8 @@
 
 namespace blender::nodes::node_composite_bilateralblur_cc {
 
+NODE_STORAGE_FUNCS(NodeBilateralBlurData)
+
 static void cmp_node_bilateralblur_declare(NodeDeclarationBuilder &b)
 {
   b.add_input<decl::Color>(N_("Image"))
@@ -94,18 +96,12 @@ class BilateralBlurOperation : public NodeOperation {
 
   int get_blur_radius()
   {
-    return math::ceil(get_node_bilateral_blur_data().iter +
-                      get_node_bilateral_blur_data().sigma_space);
+    return math::ceil(node_storage(bnode()).iter + node_storage(bnode()).sigma_space);
   }
 
   float get_threshold()
   {
-    return get_node_bilateral_blur_data().sigma_color;
-  }
-
-  const NodeBilateralBlurData &get_node_bilateral_blur_data()
-  {
-    return *static_cast<const NodeBilateralBlurData *>(bnode().storage);
+    return node_storage(bnode()).sigma_color;
   }
 };
 
diff --git a/source/blender/nodes/composite/nodes/node_composite_bokehimage.cc b/source/blender/nodes/composite/nodes/node_composite_bokehimage.cc
index 42dd17230b1..81cc8990d35 100644
--- a/source/blender/nodes/composite/nodes/node_composite_bokehimage.cc
+++ b/source/blender/nodes/composite/nodes/node_composite_bokehimage.cc
@@ -22,6 +22,8 @@
 
 namespace blender::nodes::node_composite_bokehimage_cc {
 
+NODE_STORAGE_FUNCS(NodeBokehImage)
+
 static void cmp_node_bokehimage_declare(NodeDeclarationBuilder &b)
 {
   b.add_output<decl::Color>(N_("Image"));
@@ -66,9 +68,9 @@ class BokehImageOperation : public NodeOperation {
 
     GPU_shader_uniform_1f(shader, "exterior_angle", get_exterior_angle());
     GPU_shader_uniform_1f(shader, "rotation", get_rotation());
-    GPU_shader_uniform_1f(shader, "roundness", get_node_bokeh_image().rounding);
-    GPU_shader_uniform_1f(shader, "catadioptric", get_node_bokeh_image().catadioptric);
-    GPU_shader_uniform_1f(shader, "lens_shift", get_node_bokeh_image().lensshift);
+    GPU_shader_uniform_1f(shader, "roundness", node_storage(bnode()).rounding);
+    GPU_shader_uniform_1f(shader, "catadioptric", node_storage(bnode()).catadioptric);
+    GPU_shader_uniform_1f(shader, "lens_shift", node_storage(bnode()).lensshift);
 
     Result &output = get_result("Image");
     const Domain domain = compute_domain();
@@ -86,16 +88,11 @@ class BokehImageOperation : public NodeOperation {
     return Domain(int2(512));
   }
 
-  const NodeBokehImage &get_node_bokeh_image()
-  {
-    return *static_cast<const NodeBokehImage *>(bnode().storage);
-  }
-
   /* The exterior angle is the angle between each two consecutive vertices of the regular polygon
    * from its center. */
   float get_exterior_angle()
   {
-    return (M_PI * 2.0f) / get_node_bokeh_image().flaps;
+    return (M_PI * 2.0f) / node_storage(bnode()).flaps;
   }
 
   float get_rotation()
@@ -104,7 +101,7 @@ class BokehImageOperation : public NodeOperation {
      * y axis, which is 90 degrees minus the angle that it makes with the positive x axis assuming
      * the first vertex lies on the positive x axis. */
     const float offset = M_PI_2 - get_exterior_angle();
-    return get_node_bokeh_image().angle - offset;
+    return node_storage(bnode()).angle - offset;
   }
 };
 
diff --git a/source/blender/nodes/composite/nodes/node_composite_boxmask.cc b/source/blender/nodes/composite/nodes/node_composite_boxmask.cc
index 2b27b382b03..3cf0932e1b3 100644
--- a/source/blender/nodes/composite/nodes/node_composite_boxmask.cc
+++ b/source/blender/nodes/composite/nodes/node_composite_boxmask.cc
@@ -23,6 +23,8 @@
 
 namespace blender::nodes::node_composite_boxmask_cc {
 
+NODE_STORAGE_FUNCS(NodeBoxMask)
+
 static void cmp_node_boxmask_declare(NodeDeclarationBuilder &b)
 {
   b.add_input<decl::Float>(N_("Mask")).default_value(0.0f).min(0.0f).max(1.0f);
@@ -123,24 +125,19 @@ class BoxMaskOperation : public NodeOperation {
     }
   }
 
-  const NodeBoxMask &get_node_box_mask()
-  {
-    return *static_cast<const NodeBoxMask *>(bnode().storage);
-  }
-
   float2 get_location()
   {
-    return float2(get_node_box_mask().x, get_node_box_mask().y);
+    return float2(node_storage(bnode()).x, node_storage(bnode()).y);
   }
 
   float2 get_size()
   {
-    return float2(get_node_box_mask().width, get_node_box_mask().height);
+    return float2(node_storage(bnode()).width, node_storage(bnode()).height);
   }
 
   float get_angle()
   {
-    return get_node_box_mask().rotation;
+    return node_storage(bnode()).rotation;
   }
 };
 
diff --git a/source/blender/nodes/composite/nodes/node_composite_channel_matte.cc b/source/blender/nodes/composite/nodes/node_composite_channel_matte.cc
index a588a17d6c1..3b825017da8 100644
--- a/source/blender/nodes/composite/nodes/node_composite_channel_matte.cc
+++ b/source/blender/nodes/composite/nodes/node_composite_channel_matte.cc
@@ -20,6 +20,8 @@
 
 namespace blender::nodes::node_composite_channel_matte_cc {
 
+NODE_STORAGE_FUNCS(NodeChroma)
+
 static void cmp_node_channel_matte_declare(NodeDeclarationBuilder &b)
 {
   b.add_input<decl::Color>(N_("Image"))
@@ -130,15 +132,10 @@ class ChannelMatteShaderNode : public ShaderNode {
     return bnode().custom2 - 1;
   }
 
-  const NodeChroma *get_node_chroma()
-  {
-    return static_cast<const NodeChroma *>(bnode().storage);
-  }
-
   /* Get the index of the channel used to compute the limit value. */
   int get_limit_channel()
   {
-    return get_node_chroma()->channel - 1;
+    return node_storage(bnode()).channel - 1;
   }
 
   /* Get the indices of the channels used to compute the limit value. We always assume the limit
@@ -146,7 +143,7 @@ class ChannelMatteShaderNode : public ShaderNode {
    * the maximum of two identical values is the same value. */
   void get_limit_channels(float limit_channels[2])
   {
-    if (get_node_chroma()->algorithm == CMP_NODE_CHANNEL_MATTE_LIMIT_ALGORITHM_MAX) {
+    if (node_storage(bnode()).algorithm == CMP_NODE_CHANNEL_MATTE_LIMIT_ALGORITHM_MAX) {
       /* If the algorithm is Max, store the indices of the other two channels other than the matte
        * channel. */
       limit_channels[0] = (get_matte_channel() + 1) % 3;
@@ -161,12 +158,12 @@ class ChannelMatteShaderNode : public ShaderNode {
 
   float get_max_limit()
   {
-    return get_node_chroma()->t1;
+    return node_storage(bnode()).t1;
   }
 
   float get_min_limit()
   {
-    return get_node_chroma()->t2;
+    return node_storage(bnode()).t2;
   }
 };
 
diff --git a/source/blender/nodes/composite/nodes/node_composite_chroma_matte.cc b/source/blender/nodes/composite/nodes/node_composite_chroma_matte.cc
index 2ea83340c2b..e5ce87169d4 100644
--- a/source/blender/nodes/composite/nodes/node_composite_chroma_matte.cc
+++ b/source/blender/nodes/composite/nodes/node_composite_chroma_matte.cc
@@ -22,6 +22,8 @@
 
 namespace blender::nodes::node_composite_chroma_matte_cc {
 
+NODE_STORAGE_FUNCS(NodeChroma)
+
 static void cmp_node_chroma_matte_declare(NodeDeclarationBuilder &b)
 {
   b.add_input<decl::Color>(N_("Image"))
@@ -86,24 +88,19 @@ class ChromaMatteShaderNode : public ShaderNode {
                    GPU_uniform(&falloff));
   }
 
-  const NodeChroma *get_node_chroma()
-  {
-    return static_cast<const NodeChroma *>(bnode().storage);
-  }
-
   float get_acceptance()
   {
-    return std::tan(get_node_chroma()->t1) / 2.0f;
+    return std::tan(node_storage(bnode()).t1) / 2.0f;
   }
 
   float get_cutoff()
   {
-    return get_node_chroma()->t2;
+    return node_storage(bnode()).t2;
   }
 
   float get_falloff()
   {
-    return get_node_chroma()->fstrength;
+    return node_storage(bnode()).fstrength;
   }
 };
 
diff --git a/source/blender/nodes/composite/nodes/node_composite_color_matte.cc b/source/blender/nodes/composite/nodes/node_composite_color_matte.cc
index ec572c54fd7..08329601f14 100644
--- a/source/blender/nodes/composite/nodes/node_composite_color_matte.cc
+++ b/source/blender/nodes/composite/nodes/node_composite_color_matte.cc
@@ -18,6 +18,8 @@
 
 namespace blender::nodes::node_composite_color_matte_cc {
 
+NODE_STORAGE_FUNCS(NodeChroma)
+
 static void cmp_node_color_matte_declare(NodeDeclarationBuilder &b)
 {
   b.add_input<decl::Color>(N_("Image"))
@@ -83,25 +85,20 @@ class ColorMatteShaderNode : public ShaderNode {
                    GPU_uniform(&value_epsilon));
   }
 
-  const NodeChroma *get_node_chroma()
-  {
-    return static_cast<const NodeChroma *>(bnode().storage);
-  }
-
   float get_hue_epsilon()
   {
     /* Divide by 2 because the hue wraps around. */
-    return get_node_chroma()->t1 / 2.0f;
+    return node_storage(bnode()).t1 / 2.0f;
   }
 
   float get_saturation_epsilon()
   {
-    return get_node_chroma()->t2;
+    return node_storage(bnode()).t2;
   }
 
   float get_value_epsilon()
   {
-    return get_node_chroma()->t3;
+    return node_storage(bnode()).t3;
   }
 };
 
diff --git a/source/blender/nodes/composite/nodes/node_composite_color_spill.cc b/source/blender/nodes/composite/nodes/node_composite_color_spill.cc
index 1ddf0df8ea7..29401d7b20f 100644
--- a/source/blender/nodes/composite/nodes/node_composite_color_spill.cc
+++ b/source/blender/nodes/composite/nodes/node_composite_color_spill.cc
@@ -20,6 +20,8 @@
 
 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list