[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