[Bf-blender-cvs] [b7ee0912a77] blender2.8: Fix T57921: Crash when loading 2.7x .blend with scene without any render layer.

Bastien Montagne noreply at git.blender.org
Tue Nov 20 21:51:31 CET 2018


Commit: b7ee0912a7776f444041f25b3103c6b30f4c771a
Author: Bastien Montagne
Date:   Tue Nov 20 21:49:49 2018 +0100
Branches: blender2.8
https://developer.blender.org/rBb7ee0912a7776f444041f25b3103c6b30f4c771a

Fix T57921: Crash when loading 2.7x .blend with scene without any render layer.

We need at least one view layer, always. :)

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

M	source/blender/blenloader/intern/versioning_280.c

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

diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index 3211033c327..70c8e374096 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -454,6 +454,7 @@ static void do_version_layers_to_collections(Main *bmain, Scene *scene)
 
 	/* Handle legacy render layers. */
 	bool have_override = false;
+	const bool need_default_renderlayer = scene->r.layers.first == NULL;
 
 	for (SceneRenderLayer *srl = scene->r.layers.first; srl; srl = srl->next) {
 		ViewLayer *view_layer = BKE_view_layer_add(scene, srl->name);
@@ -541,9 +542,9 @@ static void do_version_layers_to_collections(Main *bmain, Scene *scene)
 
 	BLI_freelistN(&scene->r.layers);
 
-	/* If render layers included overrides, we also create a vanilla
-	 * viewport layer without them. */
-	if (have_override) {
+	/* If render layers included overrides, or there are no render layers,
+	 * we also create a vanilla viewport layer. */
+	if (have_override || need_default_renderlayer) {
 		ViewLayer *view_layer = BKE_view_layer_add(scene, "Viewport");
 
 		/* Make it first in the list. */



More information about the Bf-blender-cvs mailing list