[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41036] branches/cycles/source/blender: Cycles: fix nodes gone missing after new/ old shading node compatibility changes.

Brecht Van Lommel brechtvanlommel at pandora.be
Sat Oct 15 18:20:42 CEST 2011


Revision: 41036
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41036
Author:   blendix
Date:     2011-10-15 16:20:41 +0000 (Sat, 15 Oct 2011)
Log Message:
-----------
Cycles: fix nodes gone missing after new/old shading node compatibility changes.

Modified Paths:
--------------
    branches/cycles/source/blender/blenkernel/intern/node.c
    branches/cycles/source/blender/editors/interface/interface_node.c
    branches/cycles/source/blender/editors/space_node/node_header.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_valToRgb.c

Modified: branches/cycles/source/blender/blenkernel/intern/node.c
===================================================================
--- branches/cycles/source/blender/blenkernel/intern/node.c	2011-10-15 14:47:37 UTC (rev 41035)
+++ branches/cycles/source/blender/blenkernel/intern/node.c	2011-10-15 16:20:41 UTC (rev 41036)
@@ -1924,6 +1924,9 @@
 	register_node_type_sh_tex_marble(ntypelist);
 	register_node_type_sh_tex_clouds(ntypelist);
 	register_node_type_sh_tex_wood(ntypelist);
+	register_node_type_sh_tex_stucci(ntypelist);
+	register_node_type_sh_tex_noise(ntypelist);
+	register_node_type_sh_tex_distnoise(ntypelist);
 	register_node_type_sh_tex_musgrave(ntypelist);
 }
 

Modified: branches/cycles/source/blender/editors/interface/interface_node.c
===================================================================
--- branches/cycles/source/blender/editors/interface/interface_node.c	2011-10-15 14:47:37 UTC (rev 41035)
+++ branches/cycles/source/blender/editors/interface/interface_node.c	2011-10-15 16:20:41 UTC (rev 41036)
@@ -344,7 +344,7 @@
 			char name[UI_MAX_NAME_STR];
 			int i, j, num = 0;
 
-			if(!(ntype->compatibility & compatibility))
+			if(compatibility && !(ntype->compatibility & compatibility))
 				continue;
 
 			if(ntype->nclass != nclass)
@@ -403,12 +403,14 @@
 	uiLayout *split, *column;
 	NodeLinkArg *arg = (NodeLinkArg*)but->func_argN;
 	bNodeSocket *sock = arg->sock;
-	int compatibility;
+	int compatibility= 0;
 
-	if(scene_use_new_shading_nodes(scene))
-		compatibility= NODE_NEW_SHADING;
-	else
-		compatibility= NODE_OLD_SHADING;
+	if(arg->ntree->type == NTREE_SHADER) {
+		if(scene_use_new_shading_nodes(scene))
+			compatibility= NODE_NEW_SHADING;
+		else
+			compatibility= NODE_OLD_SHADING;
+	}
 	
 	uiBlockSetCurLayout(block, layout);
 	split= uiLayoutSplit(layout, 0, 0);

Modified: branches/cycles/source/blender/editors/space_node/node_header.c
===================================================================
--- branches/cycles/source/blender/editors/space_node/node_header.c	2011-10-15 14:47:37 UTC (rev 41035)
+++ branches/cycles/source/blender/editors/space_node/node_header.c	2011-10-15 16:20:41 UTC (rev 41036)
@@ -175,7 +175,7 @@
 	SpaceNode *snode= CTX_wm_space_node(C);
 	bNodeTree *ntree;
 	int nodeclass= GET_INT_FROM_POINTER(arg_nodeclass);
-	int event, compatibility;
+	int event, compatibility= 0;
 	
 	ntree = snode->nodetree;
 	
@@ -184,10 +184,12 @@
 		return;
 	}
 
-	if(scene_use_new_shading_nodes(scene))
-		compatibility= NODE_NEW_SHADING;
-	else
-		compatibility= NODE_OLD_SHADING;
+	if(ntree->type == NTREE_SHADER) {
+		if(scene_use_new_shading_nodes(scene))
+			compatibility= NODE_NEW_SHADING;
+		else
+			compatibility= NODE_OLD_SHADING;
+	}
 	
 	if (nodeclass==NODE_CLASS_GROUP) {
 		bNodeTree *ngroup;
@@ -219,8 +221,9 @@
 		uiLayoutSetFunc(layout, do_node_add_static, NULL);
 		
 		for (ntype=ntreeGetType(ntree->type)->node_types.first; ntype; ntype=ntype->next) {
-			if(ntype->nclass==nodeclass && ntype->name && (ntype->compatibility&compatibility))
-				uiItemV(layout, ntype->name, 0, ntype->type);
+			if (ntype->nclass==nodeclass && ntype->name)
+				if (!compatibility || (ntype->compatibility & compatibility))
+					uiItemV(layout, ntype->name, 0, ntype->type);
 		}
 	}
 }

Modified: branches/cycles/source/blender/nodes/shader/nodes/node_shader_valToRgb.c
===================================================================
--- branches/cycles/source/blender/nodes/shader/nodes/node_shader_valToRgb.c	2011-10-15 14:47:37 UTC (rev 41035)
+++ branches/cycles/source/blender/nodes/shader/nodes/node_shader_valToRgb.c	2011-10-15 16:20:41 UTC (rev 41036)
@@ -119,7 +119,7 @@
 	static bNodeType ntype;
 
 	node_type_base(&ntype, SH_NODE_RGBTOBW, "RGB to BW", NODE_CLASS_CONVERTOR, 0);
-	node_type_compatibility(&ntype, NODE_OLD_SHADING);
+	node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING);
 	node_type_socket_templates(&ntype, sh_node_rgbtobw_in, sh_node_rgbtobw_out);
 	node_type_size(&ntype, 80, 40, 120);
 	node_type_exec(&ntype, node_shader_exec_rgbtobw);




More information about the Bf-blender-cvs mailing list