[Bf-blender-cvs] [26b428186a5] master: Fix T78295: reload scripts disables Cycles render passes in the compositor

Brecht Van Lommel noreply at git.blender.org
Fri Jun 26 16:18:56 CEST 2020


Commit: 26b428186a51413dc2f0a338674a415cb510994a
Author: Brecht Van Lommel
Date:   Fri Jun 26 16:12:47 2020 +0200
Branches: master
https://developer.blender.org/rB26b428186a51413dc2f0a338674a415cb510994a

Fix T78295: reload scripts disables Cycles render passes in the compositor

Don't auto update render passes in nodes when unregistering render passes or
quitting Blender, this should only happen on explicit user action to change the
engine or passes.

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

M	source/blender/editors/include/ED_render.h
M	source/blender/editors/render/render_update.c
M	source/blender/editors/scene/scene_edit.c
M	source/blender/makesrna/intern/rna_render.c
M	source/blender/makesrna/intern/rna_scene.c

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

diff --git a/source/blender/editors/include/ED_render.h b/source/blender/editors/include/ED_render.h
index f03739c74c4..ba70abcc055 100644
--- a/source/blender/editors/include/ED_render.h
+++ b/source/blender/editors/include/ED_render.h
@@ -47,7 +47,7 @@ void ED_operatortypes_render(void);
 
 /* render_update.c */
 
-void ED_render_engine_changed(struct Main *bmain);
+void ED_render_engine_changed(struct Main *bmain, const bool update_scene_data);
 void ED_render_engine_area_exit(struct Main *bmain, struct ScrArea *area);
 void ED_render_view_layer_changed(struct Main *bmain, struct bScreen *screen);
 
diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c
index 10f69f3fe9d..7d0ad42c703 100644
--- a/source/blender/editors/render/render_update.c
+++ b/source/blender/editors/render/render_update.c
@@ -178,7 +178,7 @@ void ED_render_engine_area_exit(Main *bmain, ScrArea *area)
   }
 }
 
-void ED_render_engine_changed(Main *bmain)
+void ED_render_engine_changed(Main *bmain, const bool update_scene_data)
 {
   /* on changing the render engine type, clear all running render engines */
   for (bScreen *screen = bmain->screens.first; screen; screen = screen->id.next) {
@@ -198,7 +198,7 @@ void ED_render_engine_changed(Main *bmain)
       update_ctx.view_layer = view_layer;
       ED_render_id_flush_update(&update_ctx, &scene->id);
     }
-    if (scene->nodetree) {
+    if (scene->nodetree && update_scene_data) {
       ntreeCompositUpdateRLayers(scene->nodetree);
     }
   }
diff --git a/source/blender/editors/scene/scene_edit.c b/source/blender/editors/scene/scene_edit.c
index c32bb69db4e..a1fa5e2d655 100644
--- a/source/blender/editors/scene/scene_edit.c
+++ b/source/blender/editors/scene/scene_edit.c
@@ -122,7 +122,7 @@ void ED_scene_change_update(Main *bmain, Scene *scene, ViewLayer *layer)
   DEG_graph_relations_update(depsgraph, bmain, scene, layer);
   DEG_on_visible_update(bmain, false);
 
-  ED_render_engine_changed(bmain);
+  ED_render_engine_changed(bmain, false);
   ED_update_for_newframe(bmain, depsgraph);
 }
 
diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c
index 6af031eb7b0..a41abb1a1dd 100644
--- a/source/blender/makesrna/intern/rna_render.c
+++ b/source/blender/makesrna/intern/rna_render.c
@@ -299,7 +299,7 @@ static void rna_RenderEngine_unregister(Main *bmain, StructRNA *type)
   BLI_freelinkN(&R_engines, et);
 
   /* Stop all renders in case we were using this one. */
-  ED_render_engine_changed(bmain);
+  ED_render_engine_changed(bmain, false);
 }
 
 static StructRNA *rna_RenderEngine_register(Main *bmain,
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index f0c4bd94c6a..2fc4ec2d626 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -1662,7 +1662,7 @@ static void rna_RenderSettings_engine_update(Main *bmain,
                                              Scene *UNUSED(unused),
                                              PointerRNA *UNUSED(ptr))
 {
-  ED_render_engine_changed(bmain);
+  ED_render_engine_changed(bmain, true);
 }
 
 static bool rna_RenderSettings_multiple_engines_get(PointerRNA *UNUSED(ptr))



More information about the Bf-blender-cvs mailing list