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:
authorJacques Lucke <jacques@blender.org>2022-09-23 17:12:47 +0300
committerJacques Lucke <jacques@blender.org>2022-09-23 17:12:59 +0300
commit63bdd89108fe6557901be627b6d6ca4910648f40 (patch)
treefc601a660fca678f252cf57843930ae0a3f212ce
parenta8a454287a27d408668f8adc6fe1b3aa988de1ac (diff)
Cleanup: use depsgraph iterator settings in rna
Somehow missed this as part of rBb197cd5821f1dfaa5168d31984dd8014f5252456.
-rw-r--r--source/blender/makesrna/intern/rna_depsgraph.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/source/blender/makesrna/intern/rna_depsgraph.c b/source/blender/makesrna/intern/rna_depsgraph.c
index 239452c0572..eb39492c7dc 100644
--- a/source/blender/makesrna/intern/rna_depsgraph.c
+++ b/source/blender/makesrna/intern/rna_depsgraph.c
@@ -355,11 +355,16 @@ static void rna_Depsgraph_object_instances_begin(CollectionPropertyIterator *ite
{
RNA_Depsgraph_Instances_Iterator *di_it = iter->internal.custom = MEM_callocN(sizeof(*di_it),
__func__);
+ DEGObjectIterSettings *deg_iter_settings = MEM_callocN(sizeof(DEGObjectIterSettings), __func__);
+ deg_iter_settings->depsgraph = (Depsgraph *)ptr->data;
+ deg_iter_settings->flags = DEG_ITER_OBJECT_FLAG_LINKED_DIRECTLY |
+ DEG_ITER_OBJECT_FLAG_LINKED_VIA_SET | DEG_ITER_OBJECT_FLAG_VISIBLE |
+ DEG_ITER_OBJECT_FLAG_DUPLI;
DEGObjectIterData *data = &di_it->deg_data[0];
- data->graph = (Depsgraph *)ptr->data;
- data->flag = DEG_ITER_OBJECT_FLAG_LINKED_DIRECTLY | DEG_ITER_OBJECT_FLAG_LINKED_VIA_SET |
- DEG_ITER_OBJECT_FLAG_VISIBLE | DEG_ITER_OBJECT_FLAG_DUPLI;
+ data->settings = deg_iter_settings;
+ data->graph = deg_iter_settings->depsgraph;
+ data->flag = deg_iter_settings->flags;
di_it->iterators[0].iter.valid = true;
DEG_iterator_objects_begin(&di_it->iterators[0].iter, data);
@@ -398,6 +403,11 @@ static void rna_Depsgraph_object_instances_end(CollectionPropertyIterator *iter)
iter->internal.custom;
for (int i = 0; i < ARRAY_SIZE(di_it->iterators); i++) {
RNA_DepsgraphIterator *di = &di_it->iterators[i];
+ DEGObjectIterData *data = &di_it->deg_data[i];
+ if (i == 0) {
+ /* Is shared between both iterators. */
+ MEM_freeN(data->settings);
+ }
DEG_iterator_objects_end(&di->iter);
# ifdef WITH_PYTHON