[Bf-blender-cvs] [de7cfdb7b68] temp-viewport-compositor-compiler: Viewport Compositor: Implement RGB node
Omar Emara
noreply at git.blender.org
Wed Mar 30 16:55:17 CEST 2022
Commit: de7cfdb7b68a2a10d62775392e02021c5332b8d0
Author: Omar Emara
Date: Wed Mar 30 16:53:41 2022 +0200
Branches: temp-viewport-compositor-compiler
https://developer.blender.org/rBde7cfdb7b68a2a10d62775392e02021c5332b8d0
Viewport Compositor: Implement RGB node
===================================================================
M source/blender/nodes/composite/nodes/node_composite_rgb.cc
===================================================================
diff --git a/source/blender/nodes/composite/nodes/node_composite_rgb.cc b/source/blender/nodes/composite/nodes/node_composite_rgb.cc
index feaa3ee8c19..ea254a06657 100644
--- a/source/blender/nodes/composite/nodes/node_composite_rgb.cc
+++ b/source/blender/nodes/composite/nodes/node_composite_rgb.cc
@@ -21,6 +21,12 @@
* \ingroup cmpnodes
*/
+#include "BLI_math_vec_types.hh"
+
+#include "DNA_node_types.h"
+
+#include "NOD_compositor_execute.hh"
+
#include "node_composite_util.hh"
/* **************** RGB ******************** */
@@ -32,6 +38,29 @@ static void cmp_node_rgb_declare(NodeDeclarationBuilder &b)
b.add_output<decl::Color>(N_("RGBA")).default_value({0.5f, 0.5f, 0.5f, 1.0f});
}
+using namespace blender::viewport_compositor;
+
+class RGBOperation : public NodeOperation {
+ public:
+ using NodeOperation::NodeOperation;
+
+ void execute() override
+ {
+ Result &result = get_result("RGBA");
+ result.allocate_single_value();
+
+ const bNodeSocket *socket = static_cast<bNodeSocket *>(node().outputs.first);
+ float4 color = float4(static_cast<bNodeSocketValueRGBA *>(socket->default_value)->value);
+
+ result.set_color_value(color);
+ }
+};
+
+static NodeOperation *get_compositor_operation(Context &context, DNode node)
+{
+ return new RGBOperation(context, node);
+}
+
} // namespace blender::nodes::node_composite_rgb_cc
void register_node_type_cmp_rgb()
@@ -43,6 +72,7 @@ void register_node_type_cmp_rgb()
cmp_node_type_base(&ntype, CMP_NODE_RGB, "RGB", NODE_CLASS_INPUT);
ntype.declare = file_ns::cmp_node_rgb_declare;
node_type_size_preset(&ntype, NODE_SIZE_SMALL);
+ ntype.get_compositor_operation = file_ns::get_compositor_operation;
nodeRegisterType(&ntype);
}
More information about the Bf-blender-cvs
mailing list