diff options
author | Bastien Montagne <bastien@blender.org> | 2022-01-25 18:42:31 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2022-01-25 18:44:55 +0300 |
commit | 96667e33913e37e257ae444009c5f7bea57b0d72 (patch) | |
tree | 848e321c44e3e0ea2f6de1af14d3aa01c9dc0771 /source/blender/blenkernel/BKE_layer.h | |
parent | 6c25aabddfb484980e87e2b1cb07e31350c61796 (diff) |
Fix T93058: Crash on opening old pre-2.80 .blend files.
Layer resync code would not yet fully properly deal with all possible
invalid status of ViewLayer comming from those older files.
Now put 2.80-doversion specific fixes into their own dedicated
function, so that they do not affect actual regular layer resync code
anymore. Also added some sanity-checks in main
`BKE_layer_collection_sync` code.
Diffstat (limited to 'source/blender/blenkernel/BKE_layer.h')
-rw-r--r-- | source/blender/blenkernel/BKE_layer.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h index bc2249b93b9..6460dedb736 100644 --- a/source/blender/blenkernel/BKE_layer.h +++ b/source/blender/blenkernel/BKE_layer.h @@ -157,6 +157,13 @@ int BKE_layer_collection_findindex(struct ViewLayer *view_layer, const struct La void BKE_layer_collection_resync_forbid(void); void BKE_layer_collection_resync_allow(void); +/** Helper to fix older pre-2.80 blendfiles. + * + * Ensures the given `view_layer` as a valid first-level layer collection, i.e. a single one + * matching the scene's master collection. This is a requirement for `BKE_layer_collection_sync`. + */ +void BKE_layer_collection_doversion_2_80(const struct Scene *scene, struct ViewLayer *view_layer); + void BKE_main_collection_sync(const struct Main *bmain); void BKE_scene_collection_sync(const struct Scene *scene); /** |