Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/nodes/intern/node_socket.cc')
-rw-r--r--source/blender/nodes/intern/node_socket.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/source/blender/nodes/intern/node_socket.cc b/source/blender/nodes/intern/node_socket.cc
index ebc70956147..fda44b3d4f2 100644
--- a/source/blender/nodes/intern/node_socket.cc
+++ b/source/blender/nodes/intern/node_socket.cc
@@ -280,6 +280,15 @@ void node_socket_init_default_value(bNodeSocket *sock)
sock->default_value = dval;
break;
}
+ case SOCK_COLLECTION: {
+ bNodeSocketValueCollection *dval = (bNodeSocketValueCollection *)MEM_callocN(
+ sizeof(bNodeSocketValueCollection), "node socket value object");
+ dval->value = nullptr;
+
+ sock->default_value = dval;
+ break;
+ break;
+ }
}
}
@@ -352,6 +361,13 @@ void node_socket_copy_default_value(bNodeSocket *to, const bNodeSocket *from)
id_us_plus(&toval->value->id);
break;
}
+ case SOCK_COLLECTION: {
+ bNodeSocketValueCollection *toval = (bNodeSocketValueCollection *)to->default_value;
+ bNodeSocketValueCollection *fromval = (bNodeSocketValueCollection *)from->default_value;
+ *toval = *fromval;
+ id_us_plus(&toval->value->id);
+ break;
+ }
}
to->flag |= (from->flag & SOCK_HIDE_VALUE);
@@ -673,6 +689,12 @@ static bNodeSocketType *make_socket_type_geometry()
return socktype;
}
+static bNodeSocketType *make_socket_type_collection()
+{
+ bNodeSocketType *socktype = make_standard_socket_type(SOCK_COLLECTION, PROP_NONE);
+ return socktype;
+}
+
void register_standard_node_socket_types(void)
{
/* draw callbacks are set in drawnode.c to avoid bad-level calls */
@@ -711,5 +733,7 @@ void register_standard_node_socket_types(void)
nodeRegisterSocketType(make_socket_type_geometry());
+ nodeRegisterSocketType(make_socket_type_collection());
+
nodeRegisterSocketType(make_socket_type_virtual());
}