Blender V5.0
node_composite_common.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
9#include "DNA_node_types.h"
10
11#include "NOD_common.hh"
12#include "node_common.h"
14
15#include "BKE_node.hh"
16
17#include "RNA_access.hh"
18
20{
21 static blender::bke::bNodeType ntype;
22
23 /* NOTE: Cannot use sh_node_type_base for node group, because it would map the node type
24 * to the shared NODE_GROUP integer type id. */
26 ntype, "CompositorNodeGroup", "Group", "GROUP", NODE_CLASS_GROUP);
27 ntype.enum_name_legacy = "GROUP";
28 ntype.type_legacy = NODE_GROUP;
34 ntype.rna_ext.srna = RNA_struct_find("CompositorNodeGroup");
35 BLI_assert(ntype.rna_ext.srna != nullptr);
37
42
44}
46
47void register_node_type_cmp_custom_group(blender::bke::bNodeType *ntype)
48{
49 /* These methods can be overridden but need a default implementation otherwise. */
50 if (ntype->poll == nullptr) {
51 ntype->poll = cmp_node_poll_default;
52 }
53 if (ntype->insert_link == nullptr) {
54 ntype->insert_link = node_insert_link_default;
55 }
57}
constexpr int GROUP_NODE_MIN_WIDTH
Definition BKE_node.hh:1253
constexpr int GROUP_NODE_DEFAULT_WIDTH
Definition BKE_node.hh:1251
constexpr int GROUP_NODE_MAX_WIDTH
Definition BKE_node.hh:1252
#define NODE_GROUP
Definition BKE_node.hh:811
#define NODE_CLASS_GROUP
Definition BKE_node.hh:452
#define BLI_assert(a)
Definition BLI_assert.h:46
#define NOD_REGISTER_NODE(REGISTER_FUNC)
void node_type_size(bNodeType &ntype, int width, int minwidth, int maxwidth)
Definition node.cc:5384
void node_register_type(bNodeType &ntype)
Definition node.cc:2416
void node_type_base_custom(bNodeType &ntype, StringRefNull idname, StringRefNull name, StringRefNull enum_name, short nclass)
Definition node.cc:5129
void node_group_declare(NodeDeclarationBuilder &b)
int node_group_ui_class(const bNode *node)
void node_group_label(const bNodeTree *, const bNode *node, char *label, int label_maxncpy)
bool node_group_poll_instance(const bNode *node, const bNodeTree *nodetree, const char **r_disabled_hint)
std::string node_group_ui_description(const bNode &node)
void register_node_type_cmp_custom_group(blender::bke::bNodeType *ntype)
static void register_node_type_cmp_group()
bool cmp_node_poll_default(const blender::bke::bNodeType *, const bNodeTree *ntree, const char **r_disabled_hint)
bool node_insert_link_default(blender::bke::NodeInsertLinkParams &)
Definition node_util.cc:266
StructRNA * RNA_struct_find(const char *identifier)
void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type)
StructRNA * srna
Defines a node type.
Definition BKE_node.hh:238
int(* ui_class)(const bNode *node)
Definition BKE_node.hh:276
bool(* poll_instance)(const bNode *node, const bNodeTree *nodetree, const char **r_disabled_hint)
Definition BKE_node.hh:328
void(* labelfunc)(const bNodeTree *ntree, const bNode *node, char *label, int label_maxncpy)
Definition BKE_node.hh:270
std::string(* ui_description_fn)(const bNode &node)
Definition BKE_node.hh:278
const char * enum_name_legacy
Definition BKE_node.hh:247
bool(* insert_link)(NodeInsertLinkParams &params)
Definition BKE_node.hh:333
bool(* poll)(const bNodeType *ntype, const bNodeTree *nodetree, const char **r_disabled_hint)
Definition BKE_node.hh:321
NodeDeclareFunction declare
Definition BKE_node.hh:362