diff options
author | Jeroen Bakker <j.bakker@atmind.nl> | 2012-06-21 21:58:12 +0400 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2012-06-21 21:58:12 +0400 |
commit | 7a8d60ec7d89db838429985fd7793317c89cbf1c (patch) | |
tree | 29782c17ad84253521cd8b438ea182aabfbaf443 /source/blender/compositor/intern/COM_compositor.cpp | |
parent | d406e274e0856ee7a3f1c2a161952d61b501adfe (diff) |
* make it possible to composite without an compositor node [#31878]
Tiles Compositor: Fails without 'Compositor' output node. Regression.
Diffstat (limited to 'source/blender/compositor/intern/COM_compositor.cpp')
-rw-r--r-- | source/blender/compositor/intern/COM_compositor.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/source/blender/compositor/intern/COM_compositor.cpp b/source/blender/compositor/intern/COM_compositor.cpp index 2bbfd18e7c5..cfae8f5f481 100644 --- a/source/blender/compositor/intern/COM_compositor.cpp +++ b/source/blender/compositor/intern/COM_compositor.cpp @@ -25,6 +25,8 @@ extern "C" { #include "BLI_threads.h" } +#include "BKE_main.h" +#include "BKE_global.h" #include "COM_compositor.h" #include "COM_ExecutionSystem.h" @@ -32,7 +34,7 @@ extern "C" { #include "OCL_opencl.h" static ThreadMutex *compositorMutex; -void COM_execute(bNodeTree *editingtree, int rendering) +void COM_execute(RenderData *rd, bNodeTree *editingtree, int rendering) { if (compositorMutex == NULL) { /// TODO: move to blender startup phase compositorMutex = new ThreadMutex(); @@ -41,7 +43,7 @@ void COM_execute(bNodeTree *editingtree, int rendering) WorkScheduler::initialize(); ///TODO: call workscheduler.deinitialize somewhere } BLI_mutex_lock(compositorMutex); - if (editingtree->test_break && editingtree->test_break(editingtree->tbh)) { + if (editingtree->test_break(editingtree->tbh)) { // during editing multiple calls to this method can be triggered. // make sure one the last one will be doing the work. BLI_mutex_unlock(compositorMutex); @@ -49,13 +51,20 @@ void COM_execute(bNodeTree *editingtree, int rendering) } + /* set progress bar to 0% and status to init compositing*/ editingtree->progress(editingtree->prh, 0.0); /* initialize execution system */ - ExecutionSystem *system = new ExecutionSystem(editingtree, rendering); - system->execute(); - delete system; + Scene *scene; + for (scene = (Scene*)G.main->scene.first; scene != NULL ; scene = (Scene*)scene->id.next) { + if (&scene->r == rd) { + ExecutionSystem *system = new ExecutionSystem(scene, editingtree, rendering); + system->execute(); + delete system; + break; + } + } BLI_mutex_unlock(compositorMutex); } |