[Bf-blender-cvs] [80e03e77099] blender2.8: Depsgraph: Support changing scene's render engine

Sergey Sharybin noreply at git.blender.org
Tue Jul 25 15:12:08 CEST 2017


Commit: 80e03e77099ba963cbc08545f0f28fe02e885110
Author: Sergey Sharybin
Date:   Tue Jul 25 15:11:51 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB80e03e77099ba963cbc08545f0f28fe02e885110

Depsgraph: Support changing scene's render engine

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

M	source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
M	source/blender/makesrna/intern/rna_scene.c

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

diff --git a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
index b0e8760174a..7d8db60f9ba 100644
--- a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
+++ b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
@@ -547,9 +547,11 @@ void update_copy_on_write_scene(const Depsgraph *depsgraph,
 	else {
 		scene_cow->obedit = NULL;
 	}
-	// TODO(sergey): Things which are still missing here:
-	// - Active render engine.
-	// - Something else?
+	/* Synchronize active render engine. */
+	BLI_strncpy_utf8(scene_cow->r.engine,
+	                 scene_orig->r.engine,
+	                 sizeof(scene_cow->r.engine));
+	/* TODO(sergey): What else do we need here? */
 }
 
 /* Update copy-on-write version of armature object from original scene. */
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index b2c1ea73f8a..2c0ffd6af05 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -1569,9 +1569,12 @@ static void rna_RenderSettings_engine_set(PointerRNA *ptr, int value)
 {
 	RenderData *rd = (RenderData *)ptr->data;
 	RenderEngineType *type = BLI_findlink(&R_engines, value);
+	Scene *scene = (Scene *)ptr->id.data;
 
 	if (type)
 		BLI_strncpy_utf8(rd->engine, type->idname, sizeof(rd->engine));
+
+	DEG_id_tag_update(&scene->id, DEG_TAG_COPY_ON_WRITE);
 }
 
 static EnumPropertyItem *rna_RenderSettings_engine_itemf(




More information about the Bf-blender-cvs mailing list