[Bf-blender-cvs] [f7e5f96f56b] master: GeometryNodes: Make properties exposed in modifier overridable.

Bastien Montagne noreply at git.blender.org
Fri Dec 11 10:53:19 CET 2020


Commit: f7e5f96f56b1594c718232a9541c35389f23abab
Author: Bastien Montagne
Date:   Fri Dec 11 10:52:23 2020 +0100
Branches: master
https://developer.blender.org/rBf7e5f96f56b1594c718232a9541c35389f23abab

GeometryNodes: Make properties exposed in modifier overridable.

===================================================================

M	source/blender/blenloader/intern/versioning_290.c
M	source/blender/modifiers/intern/MOD_nodes.cc

===================================================================

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;
   {



More information about the Bf-blender-cvs mailing list