[Bf-blender-cvs] [79475ac] compositor-2016: only calculate active viewer nodes.

Monique Dewanchand noreply at git.blender.org
Thu Jun 2 22:23:39 CEST 2016


Commit: 79475ac1c4b678cf4d3e2a505994c2a6b666e471
Author: Monique Dewanchand
Date:   Thu Jun 2 22:20:31 2016 +0200
Branches: compositor-2016
https://developer.blender.org/rB79475ac1c4b678cf4d3e2a505994c2a6b666e471

only calculate active viewer nodes.

===================================================================

M	source/blender/compositor/cmp/cmp_compositor.cpp
M	source/blender/compositor/cmp/cmp_unroll.cpp

===================================================================

diff --git a/source/blender/compositor/cmp/cmp_compositor.cpp b/source/blender/compositor/cmp/cmp_compositor.cpp
index 8b37782..b4f5c7b 100644
--- a/source/blender/compositor/cmp/cmp_compositor.cpp
+++ b/source/blender/compositor/cmp/cmp_compositor.cpp
@@ -12,6 +12,9 @@ extern "C" {
 #include "device.hpp"
 #include <iostream>
 
+#define FREE_OBJECTS  delete render_context;\
+BLI_mutex_unlock(&s_compositorMutex);
+
 static ThreadMutex s_compositorMutex;
 static bool is_compositorMutex_init = false;
 
@@ -61,11 +64,16 @@ void COM_execute(RenderData *rd, Scene *scene, bNodeTree *editingtree, int rende
   // UNROLL editingtree
   Compositor::Node* node = Compositor::unroll(editingtree, render_context);
   if (node != NULL) {
-    // SELECT DEVICE
-    Compositor::Device::Device *device = Compositor::Device::Device::create_device(node);
 
     // ALLOCATE output
     Compositor::Output output(editingtree, node, rd, viewName, viewSettings, displaySettings);
+    if (output.buffer == NULL) {
+        FREE_OBJECTS
+        return;
+    }
+
+    // SELECT DEVICE
+    Compositor::Device::Device *device = Compositor::Device::Device::create_device(node);
 
     // Generate Tiles
     Compositor::TileManager tile_manager(&output);
@@ -89,8 +97,7 @@ void COM_execute(RenderData *rd, Scene *scene, bNodeTree *editingtree, int rende
     tile_manager.delete_tiles(tiles);
   }
 
-  delete render_context;
-  BLI_mutex_unlock(&s_compositorMutex);
+  FREE_OBJECTS
 }
 
 
diff --git a/source/blender/compositor/cmp/cmp_unroll.cpp b/source/blender/compositor/cmp/cmp_unroll.cpp
index 50ea143..14ab39e 100644
--- a/source/blender/compositor/cmp/cmp_unroll.cpp
+++ b/source/blender/compositor/cmp/cmp_unroll.cpp
@@ -6,12 +6,10 @@ namespace Compositor {
 
   static bNode* find_active_viewer_node(bNodeTree* node_tree) {
     for (bNode *node = (bNode *)node_tree->nodes.first; node; node = node->next) {
-      if (node->type == CMP_NODE_VIEWER) {
-        // TODO: Active node
+      if (node->type == CMP_NODE_VIEWER && node->flag & NODE_ACTIVE) {
         return node;
-      }
+        }
     }
-
     return NULL;
   }




More information about the Bf-blender-cvs mailing list