[Bf-blender-cvs] [7931716b690] temp-viewport-compositor-compiler: Viewport Compositor: Add default input acessors
Omar Emara
noreply at git.blender.org
Mon Mar 14 14:35:21 CET 2022
Commit: 7931716b69069e666666b43e8196bd7ec9f6e9c2
Author: Omar Emara
Date: Mon Mar 14 15:34:27 2022 +0200
Branches: temp-viewport-compositor-compiler
https://developer.blender.org/rB7931716b69069e666666b43e8196bd7ec9f6e9c2
Viewport Compositor: Add default input acessors
Add input accessors that returns a default values if the input is not a
single value.
===================================================================
M source/blender/nodes/NOD_compositor_execute.hh
M source/blender/nodes/composite/nodes/node_composite_transform.cc
M source/blender/nodes/intern/node_compositor_execute.cc
===================================================================
diff --git a/source/blender/nodes/NOD_compositor_execute.hh b/source/blender/nodes/NOD_compositor_execute.hh
index d9b928337da..16b8a53236a 100644
--- a/source/blender/nodes/NOD_compositor_execute.hh
+++ b/source/blender/nodes/NOD_compositor_execute.hh
@@ -298,6 +298,15 @@ class Result {
* uninitialized value is returned. */
float4 get_color_value() const;
+ /* Same as get_float_value but returns a default value if the result is not a single value. */
+ float get_float_value_default(float default_value) const;
+
+ /* Same as get_vector_value but returns a default value if the result is not a single value. */
+ float3 get_vector_value_default(const float3 &default_value) const;
+
+ /* Same as get_color_value but returns a default value if the result is not a single value. */
+ float4 get_color_value_default(const float4 &default_value) const;
+
/* If the result is a single value result of type float, set its float value and upload it to the
* texture. Otherwise, an undefined behavior is invoked. */
void set_float_value(float value);
diff --git a/source/blender/nodes/composite/nodes/node_composite_transform.cc b/source/blender/nodes/composite/nodes/node_composite_transform.cc
index 9a4fdbebca2..c8029678531 100644
--- a/source/blender/nodes/composite/nodes/node_composite_transform.cc
+++ b/source/blender/nodes/composite/nodes/node_composite_transform.cc
@@ -70,10 +70,10 @@ class TransformOperation : public NodeOperation {
void execute() override
{
- const float2 translation = float2(get_input("X").get_float_value(),
- get_input("Y").get_float_value());
- const float rotation = get_input("Angle").get_float_value();
- const float2 scale = float2(get_input("Scale").get_float_value());
+ const float2 translation = float2(get_input("X").get_float_value_default(0.0f),
+ get_input("Y").get_float_value_default(0.0f));
+ const float rotation = get_input("Angle").get_float_value_default(0.0f);
+ const float2 scale = float2(get_input("Scale").get_float_value_default(1.0f));
const Transformation2D transformation = Transformation2D::from_translation_rotation_scale(
translation, rotation, scale);
diff --git a/source/blender/nodes/intern/node_compositor_execute.cc b/source/blender/nodes/intern/node_compositor_execute.cc
index 87b25f64b1f..ad88c9a407b 100644
--- a/source/blender/nodes/intern/node_compositor_execute.cc
+++ b/source/blender/nodes/intern/node_compositor_execute.cc
@@ -231,6 +231,30 @@ float4 Result::get_color_value() const
return float4(value_);
}
+float Result::get_float_value_default(float default_value) const
+{
+ if (is_single_value()) {
+ return get_float_value();
+ }
+ return default_value;
+}
+
+float3 Result::get_vector_value_default(const float3 &default_value) const
+{
+ if (is_single_value()) {
+ return get_vector_value();
+ }
+ return default_value;
+}
+
+float4 Result::get_color_value_default(const float4 &default_value) const
+{
+ if (is_single_value()) {
+ return get_color_value();
+ }
+ return default_value;
+}
+
void Result::set_float_value(float value)
{
*value_ = value;
More information about the Bf-blender-cvs
mailing list