Blender V4.5
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"
16#include "UI_resources.hh"
17
19
20/* **************** RGB ******************** */
21
23
25{
26 b.add_output<decl::Color>("RGBA")
27 .default_value({0.5f, 0.5f, 0.5f, 1.0f})
28 .custom_draw([](CustomSocketDrawParams &params) {
30 uiLayout &col = params.layout.column(false);
32 &col, &params.socket_ptr, "default_value", true, false, false, false);
33 col.prop(&params.socket_ptr,
34 "default_value",
36 "",
37 ICON_NONE);
38 });
39}
40
41using namespace blender::compositor;
42
44 public:
46
47 void execute() override
48 {
49 Result &result = get_result("RGBA");
50 result.allocate_single_value();
51
52 const bNodeSocket *socket = static_cast<const bNodeSocket *>(bnode().outputs.first);
53 float4 color = float4(static_cast<const bNodeSocketValueRGBA *>(socket->default_value)->value);
54
55 result.set_single_value(color);
56 }
57};
58
60{
61 return new RGBOperation(context, node);
62}
63
64} // namespace blender::nodes::node_composite_rgb_cc
65
67{
68 namespace file_ns = blender::nodes::node_composite_rgb_cc;
69
70 static blender::bke::bNodeType ntype;
71
72 cmp_node_type_base(&ntype, "CompositorNodeRGB", CMP_NODE_RGB);
73 ntype.ui_name = "RGB";
74 ntype.ui_description = "A color picker";
75 ntype.enum_name_legacy = "RGB";
77 ntype.declare = file_ns::cmp_node_rgb_declare;
79 ntype.get_compositor_operation = file_ns::get_compositor_operation;
80
82}
#define NODE_CLASS_INPUT
Definition BKE_node.hh:433
#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
@ UI_LAYOUT_ALIGN_EXPAND
void uiLayoutSetAlignment(uiLayout *layout, char alignment)
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:2748
void node_type_size_preset(bNodeType &ntype, eNodeSizePreset size)
Definition node.cc:5585
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:226
std::string ui_description
Definition BKE_node.hh:232
NodeGetCompositorOperationFunction get_compositor_operation
Definition BKE_node.hh:336
const char * enum_name_legacy
Definition BKE_node.hh:235
NodeDeclareFunction declare
Definition BKE_node.hh:355