[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