Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c3
-rw-r--r--source/blender/src/drawnode.c5
-rw-r--r--source/blender/src/header_node.c24
3 files changed, 32 insertions, 0 deletions
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c b/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c
index c198e73a3bf..9c15877e478 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c
@@ -570,6 +570,9 @@ static void node_dynamic_exec_cb(void *data, bNode *node, bNodeStack **in, bNode
if (!node->id)
return;
+ if (G.scene->r.threads > 1)
+ return;
+
if (BTST2(node->custom1, NODE_DYNAMIC_NEW, NODE_DYNAMIC_REPARSE)) {
node_dynamic_setup(node);
return;
diff --git a/source/blender/src/drawnode.c b/source/blender/src/drawnode.c
index d85e3199fb3..54475eb362e 100644
--- a/source/blender/src/drawnode.c
+++ b/source/blender/src/drawnode.c
@@ -798,6 +798,11 @@ static int node_shader_buts_dynamic(uiBlock *block, bNodeTree *ntree, bNode *nod
ui_rasterpos_safe(butr->xmin + xoff, butr->ymin + 5, snode->aspect);
snode_drawstring(snode, "Error! Check console...", butr->xmax - butr->xmin);
}
+ else if (G.scene->r.threads > 1) {
+ BIF_ThemeColor(TH_REDALERT);
+ ui_rasterpos_safe(butr->xmin + xoff, butr->ymin + 5, snode->aspect);
+ snode_drawstring(snode, "Set threads to 1", butr->xmax - butr->xmin);
+ }
}
}
return 20+19;
diff --git a/source/blender/src/header_node.c b/source/blender/src/header_node.c
index c9313c0edeb..3573f69898a 100644
--- a/source/blender/src/header_node.c
+++ b/source/blender/src/header_node.c
@@ -273,10 +273,17 @@ static void node_make_addmenu(SpaceNode *snode, int nodeclass, uiBlock *block)
}
else {
bNodeType *type;
+ int script=0;
for(a=0, type= ntree->alltypes.first; type; type=type->next) {
if( type->nclass == nodeclass ) {
+ if(type->type == NODE_DYNAMIC) {
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, type->name, 0,
+ yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, NODE_DYNAMIC_MENU+script, "");
+ script++;
+ } else {
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, type->name, 0,
yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, type->type, "");
+ }
a++;
}
}
@@ -423,6 +430,22 @@ static uiBlock *node_add_groupmenu(void *arg_unused)
return block;
}
+static uiBlock *node_add_dynamicmenu(void *arg_unused)
+{
+ SpaceNode *snode= curarea->spacedata.first;
+ uiBlock *block;
+
+ block= uiNewBlock(&curarea->uiblocks, "node_add_dynamicmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
+ uiBlockSetButmFunc(block, do_node_addmenu, NULL);
+
+ node_make_addmenu(snode, NODE_CLASS_OP_DYNAMIC, block);
+
+ uiBlockSetDirection(block, UI_RIGHT);
+ uiTextBoundsBlock(block, 60);
+
+ return block;
+}
+
static uiBlock *node_addmenu(void *arg_unused)
{
SpaceNode *snode= curarea->spacedata.first;
@@ -440,6 +463,7 @@ static uiBlock *node_addmenu(void *arg_unused)
uiDefIconTextBlockBut(block, node_add_vectormenu, NULL, ICON_RIGHTARROW_THIN, "Vector", 0, yco-=20, 120, 19, "");
uiDefIconTextBlockBut(block, node_add_convertermenu, NULL, ICON_RIGHTARROW_THIN, "Convertor", 0, yco-=20, 120, 19, "");
uiDefIconTextBlockBut(block, node_add_groupmenu, NULL, ICON_RIGHTARROW_THIN, "Group", 0, yco-=20, 120, 19, "");
+ uiDefIconTextBlockBut(block, node_add_dynamicmenu, NULL, ICON_RIGHTARROW_THIN, "Dynamic", 0, yco-=20, 120, 19, "");
}
else if(snode->treetype==NTREE_COMPOSIT) {
uiDefIconTextBlockBut(block, node_add_inputmenu, NULL, ICON_RIGHTARROW_THIN, "Input", 0, yco-=20, 120, 19, "");