diff options
Diffstat (limited to 'source/blender/nodes/composite')
4 files changed, 23 insertions, 7 deletions
diff --git a/source/blender/nodes/composite/node_composite_tree.c b/source/blender/nodes/composite/node_composite_tree.c index 200e5341868..841dde3302b 100644 --- a/source/blender/nodes/composite/node_composite_tree.c +++ b/source/blender/nodes/composite/node_composite_tree.c @@ -162,8 +162,9 @@ static void localize(bNodeTree *localtree, bNodeTree *ntree) } } -static void local_sync(bNodeTree *UNUSED(localtree), bNodeTree *UNUSED(ntree)) +static void local_sync(bNodeTree *localtree, bNodeTree *ntree) { + BKE_node_preview_sync_tree(ntree, localtree); } static void local_merge(bNodeTree *localtree, bNodeTree *ntree) @@ -172,6 +173,8 @@ static void local_merge(bNodeTree *localtree, bNodeTree *ntree) bNodeSocket *lsock; /* move over the compbufs and previews */ + BKE_node_preview_merge_tree(ntree, localtree, true); + for (lnode= localtree->nodes.first; lnode; lnode= lnode->next) { if (ntreeNodeExists(ntree, lnode->new_node)) { if (ELEM(lnode->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) { diff --git a/source/blender/nodes/composite/node_composite_util.c b/source/blender/nodes/composite/node_composite_util.c index 6209ca6aa4f..02a5f410d83 100644 --- a/source/blender/nodes/composite/node_composite_util.c +++ b/source/blender/nodes/composite/node_composite_util.c @@ -41,7 +41,7 @@ void cmp_node_update_default(bNodeTree *UNUSED(ntree), bNode *node) { bNodeSocket *sock; for (sock= node->outputs.first; sock; sock= sock->next) { - if(sock->cache) { + if (sock->cache) { //free_compbuf(sock->cache); //sock->cache= NULL; } diff --git a/source/blender/nodes/composite/nodes/node_composite_image.c b/source/blender/nodes/composite/nodes/node_composite_image.c index aa218252472..c09903ad6c5 100644 --- a/source/blender/nodes/composite/nodes/node_composite_image.c +++ b/source/blender/nodes/composite/nodes/node_composite_image.c @@ -31,6 +31,9 @@ #include "node_composite_util.h" +#include "BKE_global.h" +#include "BKE_main.h" + /* **************** IMAGE (and RenderResult, multilayer image) ******************** */ static bNodeSocketTemplate cmp_node_rlayers_out[] = { @@ -333,11 +336,20 @@ void register_node_type_cmp_image(void) static int node_composit_poll_rlayers(bNodeType *UNUSED(ntype), bNodeTree *ntree) { - PointerRNA ptr; - - /* render layers node can only be used in local scene->nodetree, since it directly links to the scene */ - RNA_id_pointer_create((ID *)ntree, &ptr); - return (strcmp(ntree->idname, "CompositorNodeTree")==0 && RNA_boolean_get(&ptr, "is_local_tree")); + if (strcmp(ntree->idname, "CompositorNodeTree")==0) { + Scene *scene; + + /* XXX ugly: check if ntree is a local scene node tree. + * Render layers node can only be used in local scene->nodetree, + * since it directly links to the scene. + */ + for (scene = G.main->scene.first; scene; scene = scene->id.next) + if (scene->nodetree == ntree) + break; + + return (scene != NULL); + } + return false; } void register_node_type_cmp_rlayers(void) diff --git a/source/blender/nodes/composite/nodes/node_composite_movieclip.c b/source/blender/nodes/composite/nodes/node_composite_movieclip.c index 34d7eeb570d..2369bf221e6 100644 --- a/source/blender/nodes/composite/nodes/node_composite_movieclip.c +++ b/source/blender/nodes/composite/nodes/node_composite_movieclip.c @@ -35,6 +35,7 @@ static bNodeSocketTemplate cmp_node_movieclip_out[] = { { SOCK_RGBA, 0, N_("Image")}, + { SOCK_FLOAT, 0, N_("Alpha")}, { SOCK_FLOAT, 1, N_("Offset X")}, { SOCK_FLOAT, 1, N_("Offset Y")}, { SOCK_FLOAT, 1, N_("Scale")}, |