Blender V5.0
node_composite_rgb.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2006 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
10
11#include "DNA_node_types.h"
12
13#include "COM_node_operation.hh"
14
15#include "UI_interface.hh"
17#include "UI_resources.hh"
18
20
21/* **************** RGB ******************** */
22
24
26{
27 b.add_output<decl::Color>("Color")
28 .default_value({0.5f, 0.5f, 0.5f, 1.0f})
29 .custom_draw([](CustomSocketDrawParams &params) {
30 params.layout.alignment_set(ui::LayoutAlign::Expand);
31 uiLayout &col = params.layout.column(false);
33 &col, &params.socket_ptr, "default_value", true, false, false, false);
34 col.prop(&params.socket_ptr,
35 "default_value",
37 "",
38 ICON_NONE);
39 });
40}
41
42using namespace blender::compositor;
43
45 public:
47
48 void execute() override
49 {
50 Result &result = get_result("Color");
51 result.allocate_single_value();
52
53 const bNodeSocket *socket = static_cast<const bNodeSocket *>(bnode().outputs.first);
54 float4 color = float4(static_cast<const bNodeSocketValueRGBA *>(socket->default_value)->value);
55
56 result.set_single_value(color);
57 }
58};
59
61{
62 return new RGBOperation(context, node);
63}
64
65} // namespace blender::nodes::node_composite_rgb_cc
66
68{
69 namespace file_ns = blender::nodes::node_composite_rgb_cc;
70
71 static blender::bke::bNodeType ntype;
72
73 cmp_node_type_base(&ntype, "CompositorNodeRGB", CMP_NODE_RGB);
74 ntype.ui_name = "Color";
75 ntype.ui_description = "A color picker";
76 ntype.enum_name_legacy = "RGB";
78 ntype.declare = file_ns::cmp_node_rgb_declare;
80 ntype.get_compositor_operation = file_ns::get_compositor_operation;
81
83}
#define NODE_CLASS_INPUT
Definition BKE_node.hh:447
#define CMP_NODE_RGB
#define NOD_REGISTER_NODE(REGISTER_FUNC)
void uiTemplateColorPicker(uiLayout *layout, PointerRNA *ptr, blender::StringRefNull propname, bool value_slider, bool lock, bool lock_luminosity, bool cubic)
@ UI_ITEM_R_SPLIT_EMPTY_NAME
@ UI_ITEM_R_SLIDER
NodeOperation(Context &context, DNode node)
Result & get_result(StringRef identifier)
Definition operation.cc:39
uint col
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
void node_register_type(bNodeType &ntype)
Definition node.cc:2416
void node_type_size_preset(bNodeType &ntype, eNodeSizePreset size)
Definition node.cc:5396
static void cmp_node_rgb_declare(NodeDeclarationBuilder &b)
static NodeOperation * get_compositor_operation(Context &context, DNode node)
VecBase< float, 4 > float4
static void register_node_type_cmp_rgb()
void cmp_node_type_base(blender::bke::bNodeType *ntype, std::string idname, const std::optional< int16_t > legacy_type)
void * first
void * default_value
ListBase outputs
Defines a node type.
Definition BKE_node.hh:238
std::string ui_description
Definition BKE_node.hh:244
NodeGetCompositorOperationFunction get_compositor_operation
Definition BKE_node.hh:348
const char * enum_name_legacy
Definition BKE_node.hh:247
NodeDeclareFunction declare
Definition BKE_node.hh:362