diff options
author | Jacques Lucke <jacques@blender.org> | 2022-09-23 13:39:56 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2022-09-23 13:41:22 +0300 |
commit | e5d4afd5bac71e29ba71ecf091feaa0d70b70260 (patch) | |
tree | bb42b190977e6bd306e969093a093fc8d4c98bae /source/blender/io | |
parent | eb54502d9d29b18cbeda22125a601f3ce0bc423e (diff) |
Depsgraph: generalize passing parameters to depsgraph object iterator
This makes it easier to pass more parameters to the iterator in the future.
Differential Revision: https://developer.blender.org/D16047
Diffstat (limited to 'source/blender/io')
3 files changed, 17 insertions, 14 deletions
diff --git a/source/blender/io/common/intern/abstract_hierarchy_iterator.cc b/source/blender/io/common/intern/abstract_hierarchy_iterator.cc index 1fbddc45964..03c1ba94d94 100644 --- a/source/blender/io/common/intern/abstract_hierarchy_iterator.cc +++ b/source/blender/io/common/intern/abstract_hierarchy_iterator.cc @@ -272,10 +272,11 @@ void AbstractHierarchyIterator::export_graph_construct() ExportGraph::key_type root_node_id = ObjectIdentifier::for_real_object(nullptr); export_graph_[root_node_id] = ExportChildren(); - DEG_OBJECT_ITER_BEGIN (depsgraph_, - object, - DEG_ITER_OBJECT_FLAG_LINKED_DIRECTLY | - DEG_ITER_OBJECT_FLAG_LINKED_VIA_SET) { + DEGObjectIterSettings deg_iter_settings{}; + deg_iter_settings.depsgraph = depsgraph_; + deg_iter_settings.flags = DEG_ITER_OBJECT_FLAG_LINKED_DIRECTLY | + DEG_ITER_OBJECT_FLAG_LINKED_VIA_SET; + DEG_OBJECT_ITER_BEGIN (°_iter_settings, object) { /* Non-instanced objects always have their object-parent as export-parent. */ const bool weak_export = mark_as_weak_export(object); visit_object(object, object->parent, weak_export); diff --git a/source/blender/io/wavefront_obj/exporter/obj_exporter.cc b/source/blender/io/wavefront_obj/exporter/obj_exporter.cc index a51c017f81d..daf2a06e112 100644 --- a/source/blender/io/wavefront_obj/exporter/obj_exporter.cc +++ b/source/blender/io/wavefront_obj/exporter/obj_exporter.cc @@ -89,11 +89,12 @@ filter_supported_objects(Depsgraph *depsgraph, const OBJExportParams &export_par { Vector<std::unique_ptr<OBJMesh>> r_exportable_meshes; Vector<std::unique_ptr<OBJCurve>> r_exportable_nurbs; - const int deg_objects_visibility_flags = DEG_ITER_OBJECT_FLAG_LINKED_DIRECTLY | - DEG_ITER_OBJECT_FLAG_LINKED_VIA_SET | - DEG_ITER_OBJECT_FLAG_VISIBLE | - DEG_ITER_OBJECT_FLAG_DUPLI; - DEG_OBJECT_ITER_BEGIN (depsgraph, object, deg_objects_visibility_flags) { + DEGObjectIterSettings deg_iter_settings{}; + deg_iter_settings.depsgraph = depsgraph; + 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; + DEG_OBJECT_ITER_BEGIN (°_iter_settings, object) { if (export_params.export_selected_objects && !(object->base_flag & BASE_SELECTED)) { continue; } diff --git a/source/blender/io/wavefront_obj/tests/obj_importer_tests.cc b/source/blender/io/wavefront_obj/tests/obj_importer_tests.cc index 99e12aed99c..e40f7db0b1f 100644 --- a/source/blender/io/wavefront_obj/tests/obj_importer_tests.cc +++ b/source/blender/io/wavefront_obj/tests/obj_importer_tests.cc @@ -72,12 +72,13 @@ class obj_importer_test : public BlendfileLoadingBaseTest { depsgraph_create(DAG_EVAL_VIEWPORT); - const int deg_objects_visibility_flags = DEG_ITER_OBJECT_FLAG_LINKED_DIRECTLY | - DEG_ITER_OBJECT_FLAG_LINKED_VIA_SET | - DEG_ITER_OBJECT_FLAG_VISIBLE | - DEG_ITER_OBJECT_FLAG_DUPLI; + DEGObjectIterSettings deg_iter_settings{}; + deg_iter_settings.depsgraph = depsgraph; + 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; size_t object_index = 0; - DEG_OBJECT_ITER_BEGIN (depsgraph, object, deg_objects_visibility_flags) { + DEG_OBJECT_ITER_BEGIN (°_iter_settings, object) { if (object_index >= expect_count) { ADD_FAILURE(); break; |