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;
93static void rna_NodeSocket_draw_color(
bContext *
C,
103 func = &rna_NodeSocket_draw_color_func;
123 func = &rna_NodeSocket_draw_color_simple_func;
137static bool rna_NodeSocket_unregister(
Main *bmain,
StructRNA *type)
159 const char *identifier,
166 bool have_function[3];
176 if (validate(&dummy_sock_ptr,
data, have_function) != 0) {
180 if (strlen(identifier) >=
sizeof(dummy_sock.
idname)) {
183 "Registering node socket class: '%s' is too long, maximum length is %d",
185 int(
sizeof(dummy_sock.
idname)));
193 st = MEM_new<blender::bke::bNodeSocketType>(__func__, dummy_st);
214 st->
draw = (have_function[0]) ? rna_NodeSocket_draw :
nullptr;
228 if (sock->
typeinfo->ext_socket.srna) {
229 return sock->
typeinfo->ext_socket.srna;
232 return &RNA_NodeSocket;
236static std::optional<std::string> rna_NodeSocket_path(
const PointerRNA *
ptr)
245 char name_esc[
sizeof(node.
name) * 2];
249 return fmt::format(
"nodes[\"{}\"].inputs[{}]", name_esc, socketindex);
251 return fmt::format(
"nodes[\"{}\"].outputs[{}]", name_esc, socketindex);
268static void rna_NodeSocket_type_set(
PointerRNA *
ptr,
int value)
280static void rna_NodeSocket_bl_idname_get(
PointerRNA *
ptr,
char *value)
291 return ntype->
idname.size();
294static void rna_NodeSocket_bl_idname_set(
PointerRNA *
ptr,
const char *value)
301static void rna_NodeSocket_bl_label_get(
PointerRNA *
ptr,
char *value)
312 return ntype->
label.size();
315static void rna_NodeSocket_bl_label_set(
PointerRNA *
ptr,
const char *value)
319 ntype->
label = value;
322static void rna_NodeSocket_bl_subtype_label_get(
PointerRNA *
ptr,
char *value)
329static int rna_NodeSocket_bl_subtype_label_length(
PointerRNA *
ptr)
336static void rna_NodeSocket_bl_subtype_label_set(
PointerRNA *
ptr,
const char *value)
347 ntree->ensure_topology_cache();
348 return sock->is_directly_linked();
355 ntree->ensure_topology_cache();
356 return sock->is_inactive();
359static bool rna_NodeSocket_is_icon_visible_get(
PointerRNA *
ptr)
363 ntree->ensure_topology_cache();
364 return sock->is_icon_visible();
404static void rna_NodeSocket_link_limit_set(
PointerRNA *
ptr,
int value)
407 sock->
limit = (value == 0 ? 0xFFF : value);
410static void rna_NodeSocket_hide_set(
PointerRNA *
ptr,
bool value)
423 if (node.is_reroute()) {
437static void rna_NodeSocketStandard_draw(
ID *
id,
448static void rna_NodeSocketStandard_draw_color(
455static void rna_NodeSocketStandard_draw_color_simple(
StructRNA *type,
float r_color[4])
464void rna_NodeSocketStandard_float_range(
469 int subtype = sock->
typeinfo->subtype;
471 if (dval->
max < dval->
min) {
477 *softmin = dval->
min;
478 *softmax = dval->
max;
481void rna_NodeSocketStandard_int_range(
486 int subtype = sock->
typeinfo->subtype;
488 if (dval->
max < dval->
min) {
494 *softmin = dval->
min;
495 *softmax = dval->
max;
498void rna_NodeSocketStandard_vector_range(
504 if (dval->
max < dval->
min) {
510 *softmin = dval->
min;
511 *softmax = dval->
max;
517 if (!sock->
runtime->declaration) {
527 if (!sock->
runtime->declaration) {
537 if (!sock->
runtime->declaration) {
549 if (!sock->
runtime->declaration) {
551 std::fill_n(r_values, dimensions, 0.0f);
555 std::copy_n(&decl->default_value.x, decl->dimensions, r_values);
561 if (!sock->
runtime->declaration) {
562 std::fill_n(r_values, 4, 0.0f);
566 std::copy_n(&decl->default_value.r, 4, r_values);
572 if (!sock->
runtime->declaration) {
588 rna_NodeSocketStandard_value_update(
C,
ptr);
607 tmp.
icon = ICON_NONE;
636 if (!
data->enum_items) {
643std::optional<std::string> rna_NodeSocketString_filepath_filter(
const bContext * ,
652 return decl->path_filter;
666 static const EnumPropertyItem rna_enum_node_socket_display_shape_items[] = {
673 {0,
nullptr, 0,
nullptr,
nullptr}};
675 static const float default_draw_color[] = {0.0f, 0.0f, 0.0f, 1.0f};
684 srna,
"rna_NodeSocket_register",
"rna_NodeSocket_unregister",
nullptr);
731 prop,
"rna_NodeSocket_link_limit_get",
"rna_NodeSocket_link_limit_set",
nullptr);
750 prop,
"Multi Input",
"True if the socket can accept multiple ordered input links");
764 "Socket is grayed out because it has been detected to not have any effect on the output");
770 prop,
"Icon Visible",
"Socket is drawn as interactive icon in the node editor");
781 prop,
"Pin Gizmo",
"Keep gizmo visible even when the node is not selected");
815 "rna_NodeSocket_bl_idname_get",
816 "rna_NodeSocket_bl_idname_length",
817 "rna_NodeSocket_bl_idname_set");
823 "rna_NodeSocket_bl_label_get",
824 "rna_NodeSocket_bl_label_length",
825 "rna_NodeSocket_bl_label_set");
831 "rna_NodeSocket_bl_subtype_label_get",
832 "rna_NodeSocket_bl_subtype_label_length",
833 "rna_NodeSocket_bl_subtype_label_set");
836 prop,
"Subtype Label",
"Label to display for the socket subtype in the UI");
867 func,
"color", 4, default_draw_color, 0.0f, 1.0f,
"Color",
"", 0.0f, 1.0f);
873 "Color of the socket icon. Used to draw sockets in places where the socket does not belong "
874 "to a node, like the node interface panel. Also used to draw node sockets if draw_color is "
878 func,
"color", 4, default_draw_color, 0.0f, 1.0f,
"Color",
"", 0.0f, 1.0f);
896 static const float default_draw_color[] = {0.0f, 0.0f, 0.0f, 1.0f};
920 func =
RNA_def_function(srna,
"draw_color",
"rna_NodeSocketStandard_draw_color");
930 func,
"color", 4, default_draw_color, 0.0f, 1.0f,
"Color",
"", 0.0f, 1.0f);
933 func =
RNA_def_function(srna,
"draw_color_simple",
"rna_NodeSocketStandard_draw_color_simple");
937 func,
"color", 4, default_draw_color, 0.0f, 1.0f,
"Color",
"", 0.0f, 1.0f);
951 func =
RNA_def_function(srna,
"draw",
"rna_NodeTreeInterfaceSocket_draw_builtin");
961 func =
RNA_def_function(srna,
"init_socket",
"rna_NodeTreeInterfaceSocket_init_socket_builtin");
964 parm =
RNA_def_pointer(func,
"node",
"Node",
"Node",
"Node of the socket to initialize");
966 parm =
RNA_def_pointer(func,
"socket",
"NodeSocket",
"Socket",
"Socket to initialize");
969 func,
"data_path",
nullptr, 0,
"Data Path",
"Path to specialized socket data");
972 func =
RNA_def_function(srna,
"from_socket",
"rna_NodeTreeInterfaceSocket_from_socket_builtin");
975 parm =
RNA_def_pointer(func,
"node",
"Node",
"Node",
"Node of the original socket");
977 parm =
RNA_def_pointer(func,
"socket",
"NodeSocket",
"Socket",
"Original socket");
982 const char *identifier,
1007 const char *identifier,
1012 float value_default;
1017 value_default = 1.0f;
1020 value_default = 100.0f;
1023 value_default = 0.0f;
1027 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1029 srna,
"Float Node Socket Interface",
"Floating-point number socket of a node");
1038 prop,
nullptr,
nullptr,
"rna_NodeTreeInterfaceSocketFloat_subtype_itemf");
1049 prop,
nullptr,
nullptr,
"rna_NodeTreeInterfaceSocketFloat_default_value_range");
1071 const char *identifier,
1084 value_default = 100;
1111 const char *identifier,
1117 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1127 prop,
nullptr,
nullptr,
"rna_NodeTreeInterfaceSocketInt_subtype_itemf");
1137 prop,
nullptr,
nullptr,
"rna_NodeTreeInterfaceSocketInt_default_value_range");
1185 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1229 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1231 srna,
"Rotation Node Socket Interface",
"Rotation value socket of a node");
1263 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1273 const char *identifier,
1300 const char *identifier,
1307 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1317 prop,
nullptr,
nullptr,
"rna_NodeTreeInterfaceSocketVector_subtype_itemf");
1329 prop,
NC_NODE |
NA_EDITED,
"rna_NodeTreeInterfaceSocketVector_dimensions_update");
1336 prop,
nullptr,
nullptr,
"rna_NodeTreeInterfaceSocketVector_default_value_range");
1384 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1402 const char *identifier,
1430 const char *identifier,
1436 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1446 prop,
nullptr,
nullptr,
"rna_NodeTreeInterfaceSocketString_subtype_itemf");
1493 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1526 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1550 prop,
NC_NODE |
NA_EDITED,
"rna_NodeSocketStandard_value_and_relation_update");
1560 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1594 prop,
NC_NODE |
NA_EDITED,
"rna_NodeSocketStandard_value_and_relation_update");
1604 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1635 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1656 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1677 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1701 prop,
NC_NODE |
NA_EDITED,
"rna_NodeSocketStandard_value_and_relation_update");
1711 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1745 prop,
NC_NODE |
NA_EDITED,
"rna_NodeSocketStandard_value_and_relation_update");
1755 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1789 prop,
NC_NODE |
NA_EDITED,
"rna_NodeSocketStandard_value_and_relation_update");
1799 srna =
RNA_def_struct(brna, identifier,
"NodeTreeInterfaceSocket");
1809 prop,
nullptr,
nullptr,
nullptr,
"rna_NodeTreeInterfaceSocketMaterial_default_value_poll");
1842 {
"NodeSocketFloatPercentage",
1843 "NodeTreeInterfaceSocketFloatPercentage",
1849 {
"NodeSocketFloatTimeAbsolute",
1850 "NodeTreeInterfaceSocketFloatTimeAbsolute",
1854 {
"NodeSocketFloatWavelength",
1855 "NodeTreeInterfaceSocketFloatWavelength",
1858 {
"NodeSocketFloatColorTemperature",
1859 "NodeTreeInterfaceSocketFloatColorTemperature",
1862 {
"NodeSocketFloatFrequency",
1863 "NodeTreeInterfaceSocketFloatFrequency",
1876 {
"NodeSocketVectorPercentage",
1877 "NodeTreeInterfaceSocketVectorPercentage",
1880 {
"NodeSocketVectorTranslation",
1881 "NodeTreeInterfaceSocketVectorTranslation",
1884 {
"NodeSocketVectorDirection",
1885 "NodeTreeInterfaceSocketVectorDirection",
1888 {
"NodeSocketVectorVelocity",
1889 "NodeTreeInterfaceSocketVectorVelocity",
1892 {
"NodeSocketVectorAcceleration",
1893 "NodeTreeInterfaceSocketVectorAcceleration",
1900 {
"NodeSocketVectorFactor2D",
1901 "NodeTreeInterfaceSocketVectorFactor2D",
1904 {
"NodeSocketVectorPercentage2D",
1905 "NodeTreeInterfaceSocketVectorPercentage2D",
1908 {
"NodeSocketVectorTranslation2D",
1909 "NodeTreeInterfaceSocketVectorTranslation2D",
1912 {
"NodeSocketVectorDirection2D",
1913 "NodeTreeInterfaceSocketVectorDirection2D",
1916 {
"NodeSocketVectorVelocity2D",
1917 "NodeTreeInterfaceSocketVectorVelocity2D",
1920 {
"NodeSocketVectorAcceleration2D",
1921 "NodeTreeInterfaceSocketVectorAcceleration2D",
1928 {
"NodeSocketVectorFactor4D",
1929 "NodeTreeInterfaceSocketVectorFactor4D",
1932 {
"NodeSocketVectorPercentage4D",
1933 "NodeTreeInterfaceSocketVectorPercentage4D",
1936 {
"NodeSocketVectorTranslation4D",
1937 "NodeTreeInterfaceSocketVectorTranslation4D",
1940 {
"NodeSocketVectorDirection4D",
1941 "NodeTreeInterfaceSocketVectorDirection4D",
1944 {
"NodeSocketVectorVelocity4D",
1945 "NodeTreeInterfaceSocketVectorVelocity4D",
1948 {
"NodeSocketVectorAcceleration4D",
1949 "NodeTreeInterfaceSocketVectorAcceleration4D",
1957 {
"NodeSocketStringFilePath",
1958 "NodeTreeInterfaceSocketStringFilePath",
1976 const char *identifier = info.socket_identifier;
1978 switch (info.type) {
2057 const char *identifier = info.interface_identifier;
2059 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
void(*)(void *data) StructFreeFunc
int(*)(bContext *C, PointerRNA *ptr, FunctionRNA *func, ParameterList *list) StructCallbackFunc
@ 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)
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)
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_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_struct_idprops_func(StructRNA *srna, const char *idproperties)
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_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, StringRefNull text)
void WM_main_add_notifier(uint type, void *reference)