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:
authorBastien Montagne <bastien@blender.org>2020-12-11 12:52:23 +0300
committerBastien Montagne <bastien@blender.org>2020-12-11 12:53:08 +0300
commitf7e5f96f56b1594c718232a9541c35389f23abab (patch)
tree302b587074659c914d19707068c357028af01f85 /source/blender
parentb62a9ef66faad1ba37dde053af3394eca9559e46 (diff)
GeometryNodes: Make properties exposed in modifier overridable.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenloader/intern/versioning_290.c15
-rw-r--r--source/blender/modifiers/intern/MOD_nodes.cc2
2 files changed, 17 insertions, 0 deletions
diff --git a/source/blender/blenloader/intern/versioning_290.c b/source/blender/blenloader/intern/versioning_290.c
index a98e7c46f10..f390f0b48d8 100644
--- a/source/blender/blenloader/intern/versioning_290.c
+++ b/source/blender/blenloader/intern/versioning_290.c
@@ -1243,5 +1243,20 @@ void blo_do_versions_290(FileData *fd, Library *UNUSED(lib), Main *bmain)
*/
{
/* Keep this block, even when empty. */
+
+ /* Make all IDProperties used as interface of geometry node trees overridable. */
+ LISTBASE_FOREACH (Object *, ob, &bmain->objects) {
+ LISTBASE_FOREACH (ModifierData *, md, &ob->modifiers) {
+ if (md->type == eModifierType_Nodes) {
+ NodesModifierData *nmd = (NodesModifierData *)md;
+ IDProperty *nmd_properties = nmd->settings.properties;
+
+ BLI_assert(nmd_properties->type == IDP_GROUP);
+ LISTBASE_FOREACH (IDProperty *, nmd_socket_idprop, &nmd_properties->data.group) {
+ nmd_socket_idprop->flag |= IDP_FLAG_OVERRIDABLE_LIBRARY;
+ }
+ }
+ }
+ }
}
}
diff --git a/source/blender/modifiers/intern/MOD_nodes.cc b/source/blender/modifiers/intern/MOD_nodes.cc
index 35cb1dc7410..29ed08f0367 100644
--- a/source/blender/modifiers/intern/MOD_nodes.cc
+++ b/source/blender/modifiers/intern/MOD_nodes.cc
@@ -439,6 +439,8 @@ static IDProperty *socket_add_property(IDProperty *settings_prop_group,
IDProperty *prop = property_type.create_prop(socket, new_prop_name);
IDP_AddToGroup(settings_prop_group, prop);
+ prop->flag |= IDP_FLAG_OVERRIDABLE_LIBRARY;
+
/* Make the group in the ui container group to hold the property's UI settings. */
IDProperty *prop_ui_group;
{