Create correct node after image file drag&drop for Blender Render

This commit is contained in:
Alexander Romanov 2017-03-22 12:00:33 +03:00
parent d0253b2ea4
commit 8563d3b254
1 changed files with 14 additions and 2 deletions

View File

@ -44,6 +44,8 @@
#include "BKE_main.h"
#include "BKE_node.h"
#include "BKE_report.h"
#include "BKE_scene.h"
#include "BKE_texture.h"
#include "ED_node.h" /* own include */
#include "ED_screen.h"
@ -312,7 +314,10 @@ static int node_add_file_exec(bContext *C, wmOperator *op)
switch (snode->nodetree->type) {
case NTREE_SHADER:
type = SH_NODE_TEX_IMAGE;
if (BKE_scene_use_new_shading_nodes(CTX_data_scene(C)))
type = SH_NODE_TEX_IMAGE;
else
type = SH_NODE_TEXTURE;
break;
case NTREE_TEXTURE:
type = TEX_NODE_IMAGE;
@ -333,7 +338,14 @@ static int node_add_file_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
node->id = (ID *)ima;
if (type == SH_NODE_TEXTURE) {
Tex *tex = BKE_texture_add(CTX_data_main(C), DATA_(ima->id.name));
tex->ima = ima;
node->id = (ID *)tex;
WM_event_add_notifier(C, NC_TEXTURE | NA_ADDED, node->id);
}
else
node->id = (ID *)ima;
/* When adding new image file via drag-drop we need to load imbuf in order
* to get proper image source.