diff options
Diffstat (limited to 'source/blender/compositor/intern/COM_compositor.cpp')
-rw-r--r-- | source/blender/compositor/intern/COM_compositor.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/source/blender/compositor/intern/COM_compositor.cpp b/source/blender/compositor/intern/COM_compositor.cpp index daf48d65caf..6369eff3048 100644 --- a/source/blender/compositor/intern/COM_compositor.cpp +++ b/source/blender/compositor/intern/COM_compositor.cpp @@ -37,6 +37,11 @@ extern "C" { static ThreadMutex s_compositorMutex; static char is_compositorMutex_init = FALSE; +void intern_freeCompositorCaches() +{ + deintializeDistortionCache(); +} + void COM_execute(RenderData *rd, bNodeTree *editingtree, int rendering) { /* initialize mutex, TODO this mutex init is actually not thread safe and @@ -86,14 +91,22 @@ void COM_execute(RenderData *rd, bNodeTree *editingtree, int rendering) BLI_mutex_unlock(&s_compositorMutex); } +void COM_freeCaches() +{ + if (is_compositorMutex_init) + { + BLI_mutex_lock(&s_compositorMutex); + intern_freeCompositorCaches(); + BLI_mutex_unlock(&s_compositorMutex); + } +} + void COM_deinitialize() { if (is_compositorMutex_init) { BLI_mutex_lock(&s_compositorMutex); - - deintializeDistortionCache(); + intern_freeCompositorCaches(); WorkScheduler::deinitialize(); - is_compositorMutex_init = FALSE; BLI_mutex_unlock(&s_compositorMutex); BLI_mutex_end(&s_compositorMutex); |