23 {
SOCK_FLOAT,
"VALUE", ICON_NODE_SOCKET_FLOAT,
"Value",
""},
24 {
SOCK_INT,
"INT", ICON_NODE_SOCKET_INT,
"Integer",
""},
25 {
SOCK_BOOLEAN,
"BOOLEAN", ICON_NODE_SOCKET_BOOLEAN,
"Boolean",
""},
26 {
SOCK_VECTOR,
"VECTOR", ICON_NODE_SOCKET_VECTOR,
"Vector",
""},
27 {
SOCK_ROTATION,
"ROTATION", ICON_NODE_SOCKET_ROTATION,
"Rotation",
""},
28 {
SOCK_MATRIX,
"MATRIX", ICON_NODE_SOCKET_MATRIX,
"Matrix",
""},
29 {
SOCK_STRING,
"STRING", ICON_NODE_SOCKET_STRING,
"String",
""},
30 {
SOCK_RGBA,
"RGBA", ICON_NODE_SOCKET_RGBA,
"RGBA",
""},
31 {
SOCK_SHADER,
"SHADER", ICON_NODE_SOCKET_SHADER,
"Shader",
""},
32 {
SOCK_OBJECT,
"OBJECT", ICON_NODE_SOCKET_OBJECT,
"Object",
""},
33 {
SOCK_IMAGE,
"IMAGE", ICON_NODE_SOCKET_IMAGE,
"Image",
""},
34 {
SOCK_GEOMETRY,
"GEOMETRY", ICON_NODE_SOCKET_GEOMETRY,
"Geometry",
""},
35 {
SOCK_COLLECTION,
"COLLECTION", ICON_NODE_SOCKET_COLLECTION,
"Collection",
""},
36 {
SOCK_TEXTURE,
"TEXTURE", ICON_NODE_SOCKET_TEXTURE,
"Texture",
""},
37 {
SOCK_MATERIAL,
"MATERIAL", ICON_NODE_SOCKET_MATERIAL,
"Material",
""},
38 {
SOCK_MENU,
"MENU", ICON_NODE_SOCKET_MENU,
"Menu",
""},
39 {
SOCK_BUNDLE,
"BUNDLE", ICON_NODE_SOCKET_BUNDLE,
"Bundle",
""},
40 {
SOCK_CLOSURE,
"CLOSURE", ICON_NODE_SOCKET_CLOSURE,
"Closure",
""},
41 {0,
nullptr, 0,
nullptr,
nullptr},
46# include <fmt/format.h>
67extern FunctionRNA rna_NodeSocket_draw_color_simple_func;
71static void rna_NodeSocket_draw(
bContext *
C,
81 func = &rna_NodeSocket_draw_func;
87 const std::string text_str = text;
88 const char *text_c_str = text_str.c_str();
95static void rna_NodeSocket_draw_color(
bContext *
C,
105 func = &rna_NodeSocket_draw_color_func;
125 func = &rna_NodeSocket_draw_color_simple_func;
139static bool rna_NodeSocket_unregister(
Main *bmain,
StructRNA *type)
161 const char *identifier,
168 bool have_function[3];
178 if (validate(&dummy_sock_ptr,
data, have_function) != 0) {
182 if (strlen(identifier) >=
sizeof(dummy_sock.
idname)) {
185 "Registering node socket class: '%s' is too long, maximum length is %d",
187 int(
sizeof(dummy_sock.
idname)));
195 st = MEM_new<blender::bke::bNodeSocketType>(__func__, dummy_st);
216 st->
draw = (have_function[0]) ? rna_NodeSocket_draw :
nullptr;
230 if (sock->
typeinfo->ext_socket.srna) {
231 return sock->
typeinfo->ext_socket.srna;
234 return &RNA_NodeSocket;
238static std::optional<std::string> rna_NodeSocket_path(
const PointerRNA *
ptr)
247 char name_esc[
sizeof(node.
name) * 2];
251 return fmt::format(
"nodes[\"{}\"].inputs[{}]", name_esc, socketindex);
253 return fmt::format(
"nodes[\"{}\"].outputs[{}]", name_esc, socketindex);
270static void rna_NodeSocket_type_set(
PointerRNA *
ptr,
int value)
282static int rna_NodeSocket_inferred_structure_type_get(
PointerRNA *
ptr)
285 return int(socket->
runtime->inferred_structure_type);
288static void rna_NodeSocket_bl_idname_get(
PointerRNA *
ptr,
char *value)
299 return ntype->
idname.size();
302static void rna_NodeSocket_bl_idname_set(
PointerRNA *
ptr,
const char *value)
309static void rna_NodeSocket_bl_label_get(
PointerRNA *
ptr,
char *value)
320 return ntype->
label.size();
323static void rna_NodeSocket_bl_label_set(
PointerRNA *
ptr,
const char *value)
327 ntype->
label = value;
330static void rna_NodeSocket_bl_subtype_label_get(
PointerRNA *
ptr,
char *value)
337static int rna_NodeSocket_bl_subtype_label_length(
PointerRNA *
ptr)
344static void rna_NodeSocket_bl_subtype_label_set(
PointerRNA *
ptr,
const char *value)
355 ntree->ensure_topology_cache();
356 return sock->is_directly_linked();
363 ntree->ensure_topology_cache();
364 return sock->is_inactive();
367static bool rna_NodeSocket_is_icon_visible_get(
PointerRNA *
ptr)
371 ntree->ensure_topology_cache();
372 return sock->is_icon_visible();
412static void rna_NodeSocket_link_limit_set(
PointerRNA *
ptr,
int value)
415 sock->
limit = (value == 0 ? 0xFFF : value);
418static void rna_NodeSocket_hide_set(
PointerRNA *
ptr,
bool value)
431 if (node.is_reroute()) {
445static void rna_NodeSocketStandard_draw(
ID *
id,
456static void rna_NodeSocketStandard_draw_color(
463static void rna_NodeSocketStandard_draw_color_simple(
StructRNA *type,
float r_color[4])
470static const char *rna_NodeSocketStandard_name_func(
const PointerRNA *
ptr,
472 const bool do_translate)
483void rna_NodeSocketStandard_float_range(
488 int subtype = sock->
typeinfo->subtype;
490 if (dval->
max < dval->
min) {
496 *softmin = dval->
min;
497 *softmax = dval->
max;
500void rna_NodeSocketStandard_int_range(
505 int subtype = sock->
typeinfo->subtype;
507 if (dval->
max < dval->
min) {
513 *softmin = dval->
min;
514 *softmax = dval->
max;
517void rna_NodeSocketStandard_vector_range(
523 if (dval->
max < dval->
min) {
529 *softmin = dval->
min;
530 *softmax = dval->
max;
536 if (!sock->
runtime->declaration) {
546 if (!sock->
runtime->declaration) {
556 if (!sock->
runtime->declaration) {
568 if (!sock->
runtime->declaration) {
570 std::fill_n(r_values, dimensions, 0.0f);
574 std::copy_n(&decl->default_value[0], decl->dimensions, r_values);
580 if (!sock->
runtime->declaration) {
581 std::fill_n(r_values, 4, 0.0f);
586# if defined(__GNUC__) && !defined(__clang__)
587# pragma GCC diagnostic push
588# pragma GCC diagnostic ignored "-Warray-bounds"
591 std::copy_n(&decl->default_value[0], 4, r_values);
593# if defined(__GNUC__) && !defined(__clang__)
594# pragma GCC diagnostic pop
601 if (!sock->
runtime->declaration) {
617 rna_NodeSocketStandard_value_update(
C,
ptr);
636 tmp.
icon = ICON_NONE;
665 if (!
data->enum_items) {
674std::optional<std::string> rna_NodeSocketString_filepath_filter(
const bContext * ,
683 return decl->path_filter;
697 static const EnumPropertyItem rna_enum_node_socket_display_shape_items[] = {
704 {0,
nullptr, 0,
nullptr,
nullptr}};
706 static const float default_draw_color[] = {0.0f, 0.0f, 0.0f, 1.0f};
715 srna,
"rna_NodeSocket_register",
"rna_NodeSocket_unregister",
nullptr);
762 prop,
"rna_NodeSocket_link_limit_get",
"rna_NodeSocket_link_limit_set",
nullptr);
781 prop,
"Multi Input",
"True if the socket can accept multiple ordered input links");
795 "Socket is grayed out because it has been detected to not have any effect on the output");
801 prop,
"Icon Visible",
"Socket is drawn as interactive icon in the node editor");
812 prop,
"Pin Gizmo",
"Keep gizmo visible even when the node is not selected");
847 prop,
"rna_NodeSocket_inferred_structure_type_get",
nullptr,
nullptr);
849 "Inferred Structure Type",
850 "Best known structure type of the socket. This may not match the "
851 "socket shape, e.g. for unlinked input sockets");
856 "rna_NodeSocket_bl_idname_get",
857 "rna_NodeSocket_bl_idname_length",
858 "rna_NodeSocket_bl_idname_set");
864 "rna_NodeSocket_bl_label_get",
865 "rna_NodeSocket_bl_label_length",
866 "rna_NodeSocket_bl_label_set");
872 "rna_NodeSocket_bl_subtype_label_get",
873 "rna_NodeSocket_bl_subtype_label_length",
874 "rna_NodeSocket_bl_subtype_label_set");
877 prop,
"Subtype Label",
"Label to display for the socket subtype in the UI");
908 func,
"color", 4, default_draw_color, 0.0f, 1.0f,
"Color",
"", 0.0f, 1.0f);
914 "Color of the socket icon. Used to draw sockets in places where the socket does not belong "
915 "to a node, like the node interface panel. Also used to draw node sockets if draw_color is "
919 func,
"color", 4, default_draw_color, 0.0f, 1.0f,
"Color",
"", 0.0f, 1.0f);
937 static const float default_draw_color[] = {0.0f, 0.0f, 0.0f, 1.0f};
961 func =
RNA_def_function(srna,
"draw_color",
"rna_NodeSocketStandard_draw_color");
971 func,
"color", 4, default_draw_color, 0.0f, 1.0f,
"Color",
"", 0.0f, 1.0f);
974 func =
RNA_def_function(srna,
"draw_color_simple",
"rna_NodeSocketStandard_draw_color_simple");
978 func,
"color", 4, default_draw_color, 0.0f, 1.0f,
"Color",
"", 0.0f, 1.0f);
992 func =
RNA_def_function(srna,
"draw",
"rna_NodeTreeInterfaceSocket_draw_builtin");
1002 func =
RNA_def_function(srna,
"init_socket",
"rna_NodeTreeInterfaceSocket_init_socket_builtin");
1005 parm =
RNA_def_pointer(func,
"node",
"Node",
"Node",
"Node of the socket to initialize");
1007 parm =
RNA_def_pointer(func,
"socket",
"NodeSocket",
"Socket",
"Socket to initialize");
1010 func,
"data_path",
nullptr, 0,
"Data Path",
"Path to specialized socket data");
1013 func =
RNA_def_function(srna,
"from_socket",
"rna_NodeTreeInterfaceSocket_from_socket_builtin");
1016 parm =
RNA_def_pointer(func,
"node",
"Node",
"Node",
"Node of the original socket");
1018 parm =
RNA_def_pointer(func,
"socket",
"NodeSocket",
"Socket",
"Original socket");
1023 const char *identifier,
1049 const char *identifier,
1054 float value_default;
1059 value_default = 1.0f;
1062 value_default = 100.0f;
1065 value_default = 0.0f;
1069 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1071 srna,
"Float Node Socket Interface",
"Floating-point number socket of a node");
1080 prop,
nullptr,
nullptr,
"rna_NodeTreeInterfaceSocketFloat_subtype_itemf");
1091 prop,
nullptr,
nullptr,
"rna_NodeTreeInterfaceSocketFloat_default_value_range");
1113 const char *identifier,
1126 value_default = 100;
1154 const char *identifier,
1160 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1170 prop,
nullptr,
nullptr,
"rna_NodeTreeInterfaceSocketInt_subtype_itemf");
1180 prop,
nullptr,
nullptr,
"rna_NodeTreeInterfaceSocketInt_default_value_range");
1229 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1274 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1276 srna,
"Rotation Node Socket Interface",
"Rotation value socket of a node");
1308 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1318 const char *identifier,
1346 const char *identifier,
1353 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1363 prop,
nullptr,
nullptr,
"rna_NodeTreeInterfaceSocketVector_subtype_itemf");
1375 prop,
NC_NODE |
NA_EDITED,
"rna_NodeTreeInterfaceSocketVector_dimensions_update");
1382 prop,
nullptr,
nullptr,
"rna_NodeTreeInterfaceSocketVector_default_value_range");
1431 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1449 const char *identifier,
1478 const char *identifier,
1484 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1494 prop,
nullptr,
nullptr,
"rna_NodeTreeInterfaceSocketString_subtype_itemf");
1543 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1576 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1601 prop,
NC_NODE |
NA_EDITED,
"rna_NodeSocketStandard_value_and_relation_update");
1611 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1646 prop,
NC_NODE |
NA_EDITED,
"rna_NodeSocketStandard_value_and_relation_update");
1656 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1687 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1708 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1729 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1754 prop,
NC_NODE |
NA_EDITED,
"rna_NodeSocketStandard_value_and_relation_update");
1764 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1799 prop,
NC_NODE |
NA_EDITED,
"rna_NodeSocketStandard_value_and_relation_update");
1809 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1844 prop,
NC_NODE |
NA_EDITED,
"rna_NodeSocketStandard_value_and_relation_update");
1854 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1864 prop,
nullptr,
nullptr,
nullptr,
"rna_NodeTreeInterfaceSocketMaterial_default_value_poll");
1897 {
"NodeSocketFloatPercentage",
1898 "NodeTreeInterfaceSocketFloatPercentage",
1904 {
"NodeSocketFloatTimeAbsolute",
1905 "NodeTreeInterfaceSocketFloatTimeAbsolute",
1909 {
"NodeSocketFloatWavelength",
1910 "NodeTreeInterfaceSocketFloatWavelength",
1913 {
"NodeSocketFloatColorTemperature",
1914 "NodeTreeInterfaceSocketFloatColorTemperature",
1917 {
"NodeSocketFloatFrequency",
1918 "NodeTreeInterfaceSocketFloatFrequency",
1929 {
"NodeSocketVectorPercentage",
1930 "NodeTreeInterfaceSocketVectorPercentage",
1933 {
"NodeSocketVectorTranslation",
1934 "NodeTreeInterfaceSocketVectorTranslation",
1937 {
"NodeSocketVectorDirection",
1938 "NodeTreeInterfaceSocketVectorDirection",
1941 {
"NodeSocketVectorVelocity",
1942 "NodeTreeInterfaceSocketVectorVelocity",
1945 {
"NodeSocketVectorAcceleration",
1946 "NodeTreeInterfaceSocketVectorAcceleration",
1953 {
"NodeSocketVectorFactor2D",
1954 "NodeTreeInterfaceSocketVectorFactor2D",
1957 {
"NodeSocketVectorPercentage2D",
1958 "NodeTreeInterfaceSocketVectorPercentage2D",
1961 {
"NodeSocketVectorTranslation2D",
1962 "NodeTreeInterfaceSocketVectorTranslation2D",
1965 {
"NodeSocketVectorDirection2D",
1966 "NodeTreeInterfaceSocketVectorDirection2D",
1969 {
"NodeSocketVectorVelocity2D",
1970 "NodeTreeInterfaceSocketVectorVelocity2D",
1973 {
"NodeSocketVectorAcceleration2D",
1974 "NodeTreeInterfaceSocketVectorAcceleration2D",
1981 {
"NodeSocketVectorFactor4D",
1982 "NodeTreeInterfaceSocketVectorFactor4D",
1985 {
"NodeSocketVectorPercentage4D",
1986 "NodeTreeInterfaceSocketVectorPercentage4D",
1989 {
"NodeSocketVectorTranslation4D",
1990 "NodeTreeInterfaceSocketVectorTranslation4D",
1993 {
"NodeSocketVectorDirection4D",
1994 "NodeTreeInterfaceSocketVectorDirection4D",
1997 {
"NodeSocketVectorVelocity4D",
1998 "NodeTreeInterfaceSocketVectorVelocity4D",
2001 {
"NodeSocketVectorAcceleration4D",
2002 "NodeTreeInterfaceSocketVectorAcceleration4D",
2013 {
"NodeSocketStringFilePath",
2014 "NodeTreeInterfaceSocketStringFilePath",
2032 const char *identifier = info.socket_identifier;
2034 switch (info.type) {
2113 const char *identifier = info.interface_identifier;
2115 switch (info.type) {
Scene * CTX_data_scene(const bContext *C)
Main * CTX_data_main(const bContext *C)
void BKE_main_ensure_invariants(Main &bmain, std::optional< blender::Span< ID * > > modified_ids=std::nullopt)
void BKE_ntree_update_tag_socket_property(bNodeTree *ntree, bNodeSocket *socket)
void BKE_ntree_update_tag_socket_availability(bNodeTree *ntree, bNodeSocket *socket)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BLI_kdtree_nd_ free(KDTree *tree)
int BLI_findindex(const ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
MINLINE void copy_v4_v4(float r[4], const float a[4])
size_t BLI_str_escape(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL(1
#define BLT_I18NCONTEXT_UNIT
void DEG_relations_tag_update(Main *bmain)
@ SOCK_DISPLAY_SHAPE_CIRCLE_DOT
@ SOCK_DISPLAY_SHAPE_CIRCLE
@ SOCK_DISPLAY_SHAPE_SQUARE_DOT
@ SOCK_DISPLAY_SHAPE_SQUARE
@ SOCK_DISPLAY_SHAPE_DIAMOND
@ SOCK_DISPLAY_SHAPE_DIAMOND_DOT
void ED_init_custom_node_socket_type(blender::bke::bNodeSocketType *stype)
const EnumPropertyItem * RNA_node_enum_definition_itemf(const blender::bke::RuntimeNodeEnumItems &enum_items, bool *r_free)
int(*)(PointerRNA *ptr, void *data, bool *have_function) StructValidateFunc
int(*)(bContext *C, PointerRNA *ptr, FunctionRNA *func, ParameterList *list) StructCallbackFunc
void(*)(void *data) StructFreeFunc
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
@ PROPOVERRIDE_NO_COMPARISON
@ PROP_PATH_SUPPORTS_BLEND_RELATIVE
BMesh const char void * data
void copy_unsafe(char *dst) const
void node_unregister_socket_type(bNodeSocketType &stype)
void node_modify_socket_type_static(bNodeTree *ntree, bNode *node, bNodeSocket *sock, int type, int subtype)
const char * node_socket_translation_context(const bNodeSocket &sock)
void node_register_socket_type(bNodeSocketType &stype)
bNode & node_find_node(bNodeTree &ntree, bNodeSocket &socket)
bNodeSocketType * node_socket_type_find(StringRef idname)
int node_socket_link_limit(const bNodeSocket &sock)
const char * node_socket_get_label(const bNodeSocket *socket, const char *panel_label=nullptr)
static blender::bke::bNodeSocketTemplate outputs[]
void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type)
void * RNA_struct_blender_type_get(StructRNA *srna)
void RNA_parameter_list_free(ParameterList *parms)
void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value)
ParameterList * RNA_parameter_list_create(ParameterList *parms, PointerRNA *, FunctionRNA *func)
PointerRNA RNA_pointer_create_discrete(ID *id, StructRNA *type, void *data)
void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **r_value)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_struct_name_property(StructRNA *srna, PropertyRNA *prop)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, const int maxlen, const char *ui_name, const char *ui_description)
void RNA_def_struct_refine_func(StructRNA *srna, const char *refine)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_path_func(StructRNA *srna, const char *path)
void RNA_def_property_ui_name_func(PropertyRNA *prop, const char *name_func)
void RNA_def_struct_system_idprops_func(StructRNA *srna, const char *system_idproperties)
void RNA_def_property_string_funcs(PropertyRNA *prop, const char *get, const char *length, const char *set)
void RNA_def_property_float_default(PropertyRNA *prop, float value)
void RNA_def_property_enum_default(PropertyRNA *prop, int value)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_boolean_default_func(PropertyRNA *prop, const char *get_default)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char *unreg, const char *instance)
void RNA_def_property_int_default(PropertyRNA *prop, int value)
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_float_default_func(PropertyRNA *prop, const char *get_default)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_struct_sdna_from(StructRNA *srna, const char *structname, const char *propname)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_property_enum_funcs(PropertyRNA *prop, const char *get, const char *set, const char *item)
StructRNA * RNA_def_struct_ptr(BlenderRNA *brna, const char *identifier, StructRNA *srnafrom)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_enum_item_end(EnumPropertyItem **items, int *totitem)
void RNA_def_function_flag(FunctionRNA *func, int flag)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_struct_free_extension(StructRNA *srna, ExtensionRNA *rna_ext)
void RNA_def_property_enum_default_func(PropertyRNA *prop, const char *get_default)
void RNA_def_property_pointer_funcs(PropertyRNA *prop, const char *get, const char *set, const char *type_fn, const char *poll)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
PropertyRNA * RNA_def_float_array(StructOrFunctionRNA *cont_, const char *identifier, const int len, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
void RNA_enum_item_add(EnumPropertyItem **items, int *totitem, const EnumPropertyItem *item)
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
void RNA_struct_free(BlenderRNA *brna, StructRNA *srna)
void RNA_def_property_translation_context(PropertyRNA *prop, const char *context)
void RNA_def_function_output(FunctionRNA *, PropertyRNA *ret)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_string_filepath_filter_func(PropertyRNA *prop, const char *filter)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_int_default_func(PropertyRNA *prop, const char *get_default)
void RNA_def_property_boolean_negative_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_property_override_flag(PropertyRNA *prop, PropertyOverrideFlag flag)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
static void rna_def_node_socket_interface_bundle(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_interface_bool(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_virtual(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_object(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_interface_int(BlenderRNA *brna, const char *identifier, PropertySubType subtype)
static void rna_def_node_socket_matrix(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_interface_matrix(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_bundle(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_string(BlenderRNA *brna, const char *identifier, PropertySubType subtype)
static void rna_def_node_socket_interface_object(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_texture(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_interface_rotation(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_vector(BlenderRNA *brna, const char *identifier, PropertySubType subtype, int dimensions)
static void rna_def_node_socket_geometry(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_int(BlenderRNA *brna, const char *identifier, PropertySubType subtype)
static void rna_def_node_socket_interface_material(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_interface_texture(BlenderRNA *brna, const char *identifier)
void rna_def_node_socket_interface_subtypes(BlenderRNA *brna)
void RNA_def_node_socket_subtypes(BlenderRNA *brna)
static void rna_def_node_socket_standard(BlenderRNA *brna)
static void rna_def_node_socket_bool(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket(BlenderRNA *brna)
static void rna_def_node_socket_subtypes(BlenderRNA *brna)
static void rna_def_node_socket_interface_float(BlenderRNA *brna, const char *identifier, PropertySubType subtype)
static void rna_def_node_socket_shader(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_color(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_interface_geometry(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_interface_color(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_interface_string(BlenderRNA *brna, const char *identifier, PropertySubType subtype)
static const bNodeSocketStaticTypeInfo node_socket_subtypes[]
static void rna_def_node_socket_interface_menu(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_interface_vector(BlenderRNA *brna, const char *identifier, PropertySubType subtype, int dimensions)
static void rna_def_node_socket_interface_closure(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_image(BlenderRNA *brna, const char *identifier)
static void rna_def_node_tree_interface_socket_builtin(StructRNA *srna)
static void rna_def_node_socket_rotation(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_menu(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_material(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_interface_shader(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_float(BlenderRNA *brna, const char *identifier, PropertySubType subtype)
const EnumPropertyItem rna_enum_node_socket_type_items[]
static void rna_def_node_socket_interface_image(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_collection(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_interface_collection(BlenderRNA *brna, const char *identifier)
static void rna_def_node_socket_closure(BlenderRNA *brna, const char *identifier)
const EnumPropertyItem rna_enum_node_socket_structure_type_items[]
const EnumPropertyItem rna_enum_dummy_NULL_items[]
const EnumPropertyItem rna_enum_dummy_DEFAULT_items[]
const char * socket_identifier
const char * interface_identifier
bNodeSocketRuntimeHandle * runtime
bNodeSocketTypeHandle * typeinfo
Vector< RuntimeNodeEnumItem > items
std::string subtype_label
void(* draw_color)(bContext *C, PointerRNA *ptr, PointerRNA *node_ptr, float *r_color)
void(* free_self)(bNodeSocketType *stype)
void(* draw_color_simple)(const bNodeSocketType *socket_type, float *r_color)
void(* draw)(bContext *C, uiLayout *layout, PointerRNA *ptr, PointerRNA *node_ptr, StringRef text)
void WM_main_add_notifier(uint type, void *reference)