Revision: 40964
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40964
Author: blendix
Date: 2011-10-12 16:09:35 +0000 (Wed, 12 Oct 2011)
Log Message:
-----------
Cycles: add compatibility check to node link menu.
Modified Paths:
--------------
branches/cycles/source/blender/editors/interface/interface_node.c
Modified: branches/cycles/source/blender/editors/interface/interface_node.c
===================================================================
--- branches/cycles/source/blender/editors/interface/interface_node.c
2011-10-12 16:01:37 UTC (rev 40963)
+++ branches/cycles/source/blender/editors/interface/interface_node.c
2011-10-12 16:09:35 UTC (rev 40964)
@@ -33,6 +33,7 @@
#include "MEM_guardedalloc.h"
#include "DNA_node_types.h"
+#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "BLI_listbase.h"
@@ -44,6 +45,7 @@
#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_node.h"
+#include "BKE_scene.h"
#include "RNA_access.h"
@@ -271,7 +273,7 @@
return (typeA == typeB);
}
-static void ui_node_menu_column(Main *bmain, NodeLinkArg *arg, uiLayout
*layout, const char *cname, int nclass)
+static void ui_node_menu_column(Main *bmain, NodeLinkArg *arg, uiLayout
*layout, const char *cname, int nclass, int compatibility)
{
bNodeTree *ntree = arg->ntree;
bNodeSocket *sock = arg->sock;
@@ -342,6 +344,9 @@
char name[UI_MAX_NAME_STR];
int i, j, num = 0;
+ if(!(ntype->compatibility & compatibility))
+ continue;
+
if(ntype->nclass != nclass)
continue;
@@ -392,22 +397,29 @@
static void ui_template_node_link_menu(bContext *C, uiLayout *layout, void
*but_p)
{
Main *bmain= CTX_data_main(C);
+ Scene *scene= CTX_data_scene(C);
uiBlock *block = uiLayoutGetBlock(layout);
uiBut *but = (uiBut*)but_p;
uiLayout *split, *column;
NodeLinkArg *arg = (NodeLinkArg*)but->func_argN;
bNodeSocket *sock = arg->sock;
+ int compatibility;
+
+ if(scene_use_new_shading_nodes(scene))
+ compatibility= NODE_NEW_SHADING;
+ else
+ compatibility= NODE_OLD_SHADING;
uiBlockSetCurLayout(block, layout);
split= uiLayoutSplit(layout, 0, 0);
- ui_node_menu_column(bmain, arg, split, "Input", NODE_CLASS_INPUT);
- ui_node_menu_column(bmain, arg, split, "Output", NODE_CLASS_OUTPUT);
- ui_node_menu_column(bmain, arg, split, "Shader", NODE_CLASS_SHADER);
- ui_node_menu_column(bmain, arg, split, "Texture", NODE_CLASS_TEXTURE);
- ui_node_menu_column(bmain, arg, split, "Color", NODE_CLASS_OP_COLOR);
- ui_node_menu_column(bmain, arg, split, "Vector", NODE_CLASS_OP_VECTOR);
- ui_node_menu_column(bmain, arg, split, "Convertor",
NODE_CLASS_CONVERTOR);
+ ui_node_menu_column(bmain, arg, split, "Input", NODE_CLASS_INPUT,
compatibility);
+ ui_node_menu_column(bmain, arg, split, "Output", NODE_CLASS_OUTPUT,
compatibility);
+ ui_node_menu_column(bmain, arg, split, "Shader", NODE_CLASS_SHADER,
compatibility);
+ ui_node_menu_column(bmain, arg, split, "Texture", NODE_CLASS_TEXTURE,
compatibility);
+ ui_node_menu_column(bmain, arg, split, "Color", NODE_CLASS_OP_COLOR,
compatibility);
+ ui_node_menu_column(bmain, arg, split, "Vector", NODE_CLASS_OP_VECTOR,
compatibility);
+ ui_node_menu_column(bmain, arg, split, "Convertor",
NODE_CLASS_CONVERTOR, compatibility);
column= uiLayoutColumn(split, 0);
uiBlockSetCurLayout(block, column);
@@ -426,7 +438,7 @@
uiButSetNFunc(but, ui_node_link, MEM_dupallocN(arg),
SET_INT_IN_POINTER(UI_NODE_LINK_DISCONNECT));
}
- ui_node_menu_column(bmain, arg, column, "Group", NODE_CLASS_GROUP);
+ ui_node_menu_column(bmain, arg, column, "Group", NODE_CLASS_GROUP,
compatibility);
}
void uiTemplateNodeLink(uiLayout *layout, bNodeTree *ntree, bNode *node,
bNodeSocket *sock)
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs