diff options
author | Bastien Montagne <bastien@blender.org> | 2021-04-08 12:27:05 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2021-04-08 12:45:55 +0300 |
commit | e92a7800b57620df0a5d7619aead572667f27994 (patch) | |
tree | 22023baab0e8a340958391069d09bec3e526eddc /source/blender/blenkernel/BKE_lib_override.h | |
parent | c1b1ed4d5b2f90b48296055e817fded0f8ee8f38 (diff) |
LibOverride: Fix several issues with resync code.
This commit essentially touches to post-processing of collections and
objects after resync itself has been done, to ensure their proper
instantiation in the scene:
- Remove a lot of the process in resync case (resynced data are assumed
to be already instantiated in the scene, unlike override creation
case).
- For auto-resync, only do post-processing once after all overrides
have been resynced (doing it after each individual resynced was
causing a lot of instantiation glitches, with a lot of unwanted
extra objects and collections being added to the master collection).
It also deals in a much more reliable way with detection of objects
missing from the scene, by using the new `BKE_scene_objects_as_gset`
utils.
As a bonus this makes auto-resync process slightly faster (only by a few
percents, but that's always good to get).
Diffstat (limited to 'source/blender/blenkernel/BKE_lib_override.h')
-rw-r--r-- | source/blender/blenkernel/BKE_lib_override.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/source/blender/blenkernel/BKE_lib_override.h b/source/blender/blenkernel/BKE_lib_override.h index 0750a3332a8..b9a478f8227 100644 --- a/source/blender/blenkernel/BKE_lib_override.h +++ b/source/blender/blenkernel/BKE_lib_override.h @@ -84,7 +84,8 @@ bool BKE_lib_override_library_resync(struct Main *bmain, struct ViewLayer *view_layer, struct ID *id_root, struct Collection *override_resync_residual_storage, - const bool do_hierarchy_enforce); + const bool do_hierarchy_enforce, + const bool do_post_process); void BKE_lib_override_library_main_resync(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer); |