[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