diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-05-06 18:47:22 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-05-07 12:12:41 +0300 |
commit | 1a57c94c0974dd41ae9926faf640a09413c1ac5b (patch) | |
tree | 2d5c12a65013ed0aedb7648b8b2ab5ecd442a766 /source/blender/render | |
parent | 1bb740f95c956d3f71b9769a82c2076d342f634b (diff) |
Cleanup: Make Render finalization function more generic
Allows to extend that code more easily.
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/extern/include/RE_pipeline.h | 3 | ||||
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 12 |
2 files changed, 11 insertions, 4 deletions
diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index 805235e6c6a..db051d58d6c 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -307,6 +307,9 @@ void RE_RenderFreestyleStrokes(struct Render *re, void RE_RenderFreestyleExternal(struct Render *re); #endif +/* Free memory and clear runtime data which is only needed during rendering. */ +void RE_CleanAfterRender(struct Render *re); + void RE_SetActiveRenderView(struct Render *re, const char *viewname); const char *RE_GetActiveRenderView(struct Render *re); diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 044b0d5ad87..893c38aa989 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2126,8 +2126,7 @@ void RE_RenderFrame(Render *re, BLI_callback_exec( re->main, (ID *)scene, G.is_break ? BLI_CB_EVT_RENDER_CANCEL : BLI_CB_EVT_RENDER_COMPLETE); - /* Destroy the opengl context in the correct thread. */ - RE_gl_context_destroy(re); + RE_CleanAfterRender(re); /* UGLY WARNING */ G.is_rendering = false; @@ -2713,8 +2712,7 @@ void RE_RenderAnim(Render *re, re->main, (ID *)scene, G.is_break ? BLI_CB_EVT_RENDER_CANCEL : BLI_CB_EVT_RENDER_COMPLETE); BKE_sound_reset_scene_specs(scene); - /* Destroy the opengl context in the correct thread. */ - RE_gl_context_destroy(re); + RE_CleanAfterRender(re); /* UGLY WARNING */ G.is_rendering = false; @@ -2739,6 +2737,12 @@ void RE_PreviewRender(Render *re, Main *bmain, Scene *sce) do_render_3d(re); } +void RE_CleanAfterRender(Render *re) +{ + /* Destroy the opengl context in the correct thread. */ + RE_gl_context_destroy(re); +} + /* note; repeated win/disprect calc... solve that nicer, also in compo */ /* only the temp file! */ |