diff --git a/source/blender/blenkernel/intern/blendfile.cc b/source/blender/blenkernel/intern/blendfile.cc index 60c9cbef624..07de8703a2d 100644 --- a/source/blender/blenkernel/intern/blendfile.cc +++ b/source/blender/blenkernel/intern/blendfile.cc @@ -929,9 +929,11 @@ static void setup_app_data(bContext *C, mode = LOAD_UI; } - /* Free all render results, without this stale data gets displayed after loading files */ + /* Free all render results and interactive compositor renders, without this stale data gets + * displayed after loading files */ if (mode != LOAD_UNDO) { RE_FreeAllRenderResults(); + RE_FreeInteractiveCompositorRenders(); } /* Only make file-paths compatible when loading for real (not undo). */ diff --git a/source/blender/render/RE_pipeline.h b/source/blender/render/RE_pipeline.h index bbe14b4e225..4e688e920a2 100644 --- a/source/blender/render/RE_pipeline.h +++ b/source/blender/render/RE_pipeline.h @@ -194,6 +194,11 @@ void RE_FreeViewRender(struct ViewRender *view_render); */ void RE_FreeAllRender(void); +/** + * On file load, free all interactive compositor renders. + */ +void RE_FreeInteractiveCompositorRenders(void); + /** * On file load, free render results. */ diff --git a/source/blender/render/intern/pipeline.cc b/source/blender/render/intern/pipeline.cc index e48c22eb07c..519b3ade548 100644 --- a/source/blender/render/intern/pipeline.cc +++ b/source/blender/render/intern/pipeline.cc @@ -613,10 +613,7 @@ void RE_FreeAllRender() RE_FreeRender(static_cast(RenderGlobal.render_list.front())); } - for (Render *render : RenderGlobal.interactive_compositor_renders.values()) { - RE_FreeRender(render); - } - RenderGlobal.interactive_compositor_renders.clear(); + RE_FreeInteractiveCompositorRenders(); #ifdef WITH_FREESTYLE /* finalize Freestyle */ @@ -624,6 +621,14 @@ void RE_FreeAllRender() #endif } +void RE_FreeInteractiveCompositorRenders() +{ + for (Render *render : RenderGlobal.interactive_compositor_renders.values()) { + RE_FreeRender(render); + } + RenderGlobal.interactive_compositor_renders.clear(); +} + void RE_FreeAllRenderResults() { for (Render *re : RenderGlobal.render_list) {