[Bf-blender-cvs] [4c320e2639e] master: Fix T101394: Ensure all viewlayers on scene copy.

Monique Dewanchand noreply at git.blender.org
Sun Oct 16 11:24:08 CEST 2022


Commit: 4c320e2639ef41f093a71f6843b40ab64bdd021b
Author: Monique Dewanchand
Date:   Sun Oct 16 11:16:07 2022 +0200
Branches: master
https://developer.blender.org/rB4c320e2639ef41f093a71f6843b40ab64bdd021b

Fix T101394: Ensure all viewlayers on scene copy.

When a scene copy is called, all viewlayers are ensured before they are
copied. In case of multiple viewlayers, a viewlayer can be out of sync.
This triggers an assert in the BKE_view_layer_copy_data.

Reviewed By: mont29

Maniphest Tasks: T101394

Differential Revision: https://developer.blender.org/D16214

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

M	source/blender/blenkernel/intern/scene.cc

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

diff --git a/source/blender/blenkernel/intern/scene.cc b/source/blender/blenkernel/intern/scene.cc
index fc47fb71bf3..bd26075f81f 100644
--- a/source/blender/blenkernel/intern/scene.cc
+++ b/source/blender/blenkernel/intern/scene.cc
@@ -280,6 +280,9 @@ static void scene_copy_data(Main *bmain, ID *id_dst, const ID *id_src, const int
   }
 
   /* View Layers */
+  LISTBASE_FOREACH (ViewLayer *, view_layer, &scene_src->view_layers) {
+    BKE_view_layer_synced_ensure(scene_src, view_layer);
+  }
   BLI_duplicatelist(&scene_dst->view_layers, &scene_src->view_layers);
   for (ViewLayer *view_layer_src = static_cast<ViewLayer *>(scene_src->view_layers.first),
                  *view_layer_dst = static_cast<ViewLayer *>(scene_dst->view_layers.first);



More information about the Bf-blender-cvs mailing list