diff --git a/source/blender/editors/space_node/node_templates.c b/source/blender/editors/space_node/node_templates.c index 3d841b05632..049886b1d66 100644 --- a/source/blender/editors/space_node/node_templates.c +++ b/source/blender/editors/space_node/node_templates.c @@ -266,6 +266,8 @@ static void ui_node_link(bContext *C, void *arg_p, void *event_p) ntemp.type = arg->type; ntemp.ngroup = arg->ngroup; + ntemp.scene = CTX_data_scene(C); + ntemp.main = CTX_data_main(C); if (event == UI_NODE_LINK_DISCONNECT) node_socket_disconnect(bmain, ntree, node_to, sock_to); diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index bad993c9c72..a583b1e5959 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -578,7 +578,7 @@ static EnumPropertyItem *rna_Node_channel_itemf(bContext *UNUSED(C), PointerRNA return item; } -static bNode *rna_NodeTree_node_new(bNodeTree *ntree, bContext *UNUSED(C), ReportList *reports, +static bNode *rna_NodeTree_node_new(bNodeTree *ntree, bContext *C, ReportList *reports, int type, bNodeTree *group) { bNode *node; @@ -591,6 +591,8 @@ static bNode *rna_NodeTree_node_new(bNodeTree *ntree, bContext *UNUSED(C), Repor ntemp.type = type; ntemp.ngroup = group; + ntemp.scene = CTX_data_scene(C); + ntemp.main = CTX_data_main(C); node = nodeAddNode(ntree, &ntemp); if (node == NULL) { diff --git a/source/blender/nodes/composite/nodes/node_composite_outputFile.c b/source/blender/nodes/composite/nodes/node_composite_outputFile.c index e93c250e756..2eb68c787fb 100644 --- a/source/blender/nodes/composite/nodes/node_composite_outputFile.c +++ b/source/blender/nodes/composite/nodes/node_composite_outputFile.c @@ -90,15 +90,20 @@ int ntreeCompositOutputFileRemoveActiveSocket(bNodeTree *ntree, bNode *node) static void init_output_file(bNodeTree *ntree, bNode* node, bNodeTemplate *ntemp) { - RenderData *rd = &ntemp->scene->r; NodeImageMultiFile *nimf= MEM_callocN(sizeof(NodeImageMultiFile), "node image multi file"); + ImageFormatData *format = NULL; node->storage= nimf; - BLI_strncpy(nimf->base_path, rd->pic, sizeof(nimf->base_path)); - nimf->format = rd->im_format; + if (ntemp->scene) { + RenderData *rd = &ntemp->scene->r; + BLI_strncpy(nimf->base_path, rd->pic, sizeof(nimf->base_path)); + nimf->format = rd->im_format; + + format = &rd->im_format; + } /* add one socket by default */ - ntreeCompositOutputFileAddSocket(ntree, node, "Image", &rd->im_format); + ntreeCompositOutputFileAddSocket(ntree, node, "Image", format); } static void free_output_file(bNode *node)