diff --git a/source/blender/blenkernel/intern/blendfile.cc b/source/blender/blenkernel/intern/blendfile.cc index eac853b3462..fe53891e538 100644 --- a/source/blender/blenkernel/intern/blendfile.cc +++ b/source/blender/blenkernel/intern/blendfile.cc @@ -953,9 +953,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 bc6adc22680..6ed52992d80 100644 --- a/source/blender/render/RE_pipeline.h +++ b/source/blender/render/RE_pipeline.h @@ -190,6 +190,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 5d7f8e06489..89f9a949dc0 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) {