[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40962] branches/cycles/source/blender: Cycles: tag shading nodes as being compatible with the old/ new shading system,

Brecht Van Lommel brechtvanlommel at pandora.be
Wed Oct 12 17:54:54 CEST 2011


Revision: 40962
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40962
Author:   blendix
Date:     2011-10-12 15:54:53 +0000 (Wed, 12 Oct 2011)
Log Message:
-----------
Cycles: tag shading nodes as being compatible with the old/new shading system,
so they only appear in the list when needed. Old shading nodes were previously
disabled entirely, breaking internal renderer compatibility.

Modified Paths:
--------------
    branches/cycles/source/blender/blenkernel/BKE_node.h
    branches/cycles/source/blender/blenkernel/intern/node.c
    branches/cycles/source/blender/editors/space_node/node_header.c
    branches/cycles/source/blender/nodes/NOD_shader.h
    branches/cycles/source/blender/nodes/intern/node_common.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_add_shader.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_attribute.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_background.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_blend_weight.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_camera.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_common.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_curves.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_dynamic.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_emission.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_fresnel.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_geom.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_geometry.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_holdout.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_hueSatVal.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_invert.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_light_path.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_mapping.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_material.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_math.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_mixRgb.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_mix_shader.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_normal.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_output.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_output_lamp.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_output_material.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_output_texture.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_output_world.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_rgb.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_squeeze.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_tex_blend.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_tex_clouds.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_tex_coord.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_tex_environment.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_tex_image.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_tex_magic.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_tex_marble.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_tex_noise.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_tex_sky.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_tex_stucci.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_tex_wood.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_texture.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_valToRgb.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_value.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_vectMath.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_volume_isotropic.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_volume_transparent.c

Modified: branches/cycles/source/blender/blenkernel/BKE_node.h
===================================================================
--- branches/cycles/source/blender/blenkernel/BKE_node.h	2011-10-12 15:48:26 UTC (rev 40961)
+++ branches/cycles/source/blender/blenkernel/BKE_node.h	2011-10-12 15:54:53 UTC (rev 40962)
@@ -133,7 +133,7 @@
 	char name[32];
 	float width, minwidth, maxwidth;
 	float height, minheight, maxheight;
-	short nclass, flag;
+	short nclass, flag, compatibility;
 	
 	/* templates for static sockets */
 	bNodeSocketTemplate *inputs, *outputs;
@@ -236,6 +236,10 @@
 #define NODE_CLASS_SHADER 			40
 #define NODE_CLASS_LAYOUT			100
 
+/* nodetype->compatibility */
+#define NODE_OLD_SHADING	1
+#define NODE_NEW_SHADING	2
+
 /* enum values for input/output */
 #define SOCK_IN		1
 #define SOCK_OUT	2
@@ -394,6 +398,7 @@
 								   void (*newexecfunc)(void *data, int thread, struct bNode *, void *nodedata, struct bNodeStack **, struct bNodeStack **));
 void			node_type_gpu(struct bNodeType *ntype, int (*gpufunc)(struct GPUMaterial *mat, struct bNode *node, struct GPUNodeStack *in, struct GPUNodeStack *out));
 void			node_type_gpu_ext(struct bNodeType *ntype, int (*gpuextfunc)(struct GPUMaterial *mat, struct bNode *node, void *nodedata, struct GPUNodeStack *in, struct GPUNodeStack *out));
+void			node_type_compatibility(struct bNodeType *ntype, short compatibility);
 
 /* ************** COMMON NODES *************** */
 

Modified: branches/cycles/source/blender/blenkernel/intern/node.c
===================================================================
--- branches/cycles/source/blender/blenkernel/intern/node.c	2011-10-12 15:48:26 UTC (rev 40961)
+++ branches/cycles/source/blender/blenkernel/intern/node.c	2011-10-12 15:54:53 UTC (rev 40962)
@@ -1752,6 +1752,10 @@
 	ntype->gpuextfunc = gpuextfunc;
 }
 
+void node_type_compatibility(struct bNodeType *ntype, short compatibility)
+{
+	ntype->compatibility = compatibility;
+}
 
 static bNodeType *is_nodetype_registered(ListBase *typelist, int type) 
 {
@@ -1856,20 +1860,33 @@
 {
 	register_node_type_frame(ntypelist);
 
+	register_node_type_sh_group(ntypelist);
+	//register_node_type_sh_forloop(ntypelist);
+	//register_node_type_sh_whileloop(ntypelist);
+
+	register_node_type_sh_output(ntypelist);
+	register_node_type_sh_material(ntypelist);
+	register_node_type_sh_camera(ntypelist);
 	register_node_type_sh_value(ntypelist);
 	register_node_type_sh_rgb(ntypelist);
-	register_node_type_sh_math(ntypelist);
-	register_node_type_sh_vect_math(ntypelist);
-	
-	register_node_type_sh_group(ntypelist);
-//	register_node_type_sh_forloop(ntypelist);
-//	register_node_type_sh_whileloop(ntypelist);
-	
-	//register_node_type_sh_output(ntypelist);
 	register_node_type_sh_mix_rgb(ntypelist);
+	register_node_type_sh_valtorgb(ntypelist);
 	register_node_type_sh_rgbtobw(ntypelist);
+	register_node_type_sh_texture(ntypelist);
+	register_node_type_sh_normal(ntypelist);
+	register_node_type_sh_geom(ntypelist);
 	register_node_type_sh_mapping(ntypelist);
-	//register_node_type_sh_texture(ntypelist);
+	register_node_type_sh_curve_vec(ntypelist);
+	register_node_type_sh_curve_rgb(ntypelist);
+	register_node_type_sh_math(ntypelist);
+	register_node_type_sh_vect_math(ntypelist);
+	register_node_type_sh_squeeze(ntypelist);
+	//register_node_type_sh_dynamic(ntypelist);
+	register_node_type_sh_material_ext(ntypelist);
+	register_node_type_sh_invert(ntypelist);
+	register_node_type_sh_seprgb(ntypelist);
+	register_node_type_sh_combrgb(ntypelist);
+	register_node_type_sh_hue_sat(ntypelist);
 
 	register_node_type_sh_attribute(ntypelist);
 	register_node_type_sh_geometry(ntypelist);
@@ -1880,15 +1897,16 @@
 
 	register_node_type_sh_background(ntypelist);
 	register_node_type_sh_bsdf_diffuse(ntypelist);
+	register_node_type_sh_bsdf_glossy(ntypelist);
 	register_node_type_sh_bsdf_glass(ntypelist);
-	register_node_type_sh_bsdf_glossy(ntypelist);
+	//register_node_type_sh_bsdf_anisotropic(ntypelist);
 	register_node_type_sh_bsdf_translucent(ntypelist);
 	register_node_type_sh_bsdf_transparent(ntypelist);
 	register_node_type_sh_bsdf_velvet(ntypelist);
 	register_node_type_sh_emission(ntypelist);
+	register_node_type_sh_holdout(ntypelist);
 	register_node_type_sh_volume_transparent(ntypelist);
 	register_node_type_sh_volume_isotropic(ntypelist);
-	register_node_type_sh_holdout(ntypelist);
 	register_node_type_sh_mix_shader(ntypelist);
 	register_node_type_sh_add_shader(ntypelist);
 
@@ -1897,19 +1915,16 @@
 	//register_node_type_sh_output_texture(ntypelist);
 	register_node_type_sh_output_world(ntypelist);
 
-	register_node_type_sh_tex_blend(ntypelist);
-	register_node_type_sh_tex_clouds(ntypelist);
-	register_node_type_sh_tex_distnoise(ntypelist);
 	register_node_type_sh_tex_image(ntypelist);
 	register_node_type_sh_tex_environment(ntypelist);
+	register_node_type_sh_tex_sky(ntypelist);
+	register_node_type_sh_tex_voronoi(ntypelist);
+	register_node_type_sh_tex_blend(ntypelist);
 	register_node_type_sh_tex_magic(ntypelist);
 	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_musgrave(ntypelist);
-	register_node_type_sh_tex_noise(ntypelist);
-	register_node_type_sh_tex_sky(ntypelist);
-	register_node_type_sh_tex_stucci(ntypelist);
-	register_node_type_sh_tex_voronoi(ntypelist);
-	register_node_type_sh_tex_wood(ntypelist);
 }
 
 static void registerTextureNodes(ListBase *ntypelist)

Modified: branches/cycles/source/blender/editors/space_node/node_header.c
===================================================================
--- branches/cycles/source/blender/editors/space_node/node_header.c	2011-10-12 15:48:26 UTC (rev 40961)
+++ branches/cycles/source/blender/editors/space_node/node_header.c	2011-10-12 15:54:53 UTC (rev 40962)
@@ -171,10 +171,11 @@
 static void node_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclass)
 {
 	Main *bmain= CTX_data_main(C);
+	Scene *scene= CTX_data_scene(C);
 	SpaceNode *snode= CTX_wm_space_node(C);
 	bNodeTree *ntree;
 	int nodeclass= GET_INT_FROM_POINTER(arg_nodeclass);
-	int event;
+	int event, compatibility;
 	
 	ntree = snode->nodetree;
 	
@@ -182,6 +183,11 @@
 		uiItemS(layout);
 		return;
 	}
+
+	if(scene_use_new_shading_nodes(scene))
+		compatibility= NODE_NEW_SHADING;
+	else
+		compatibility= NODE_OLD_SHADING;
 	
 	if (nodeclass==NODE_CLASS_GROUP) {
 		bNodeTree *ngroup;
@@ -213,7 +219,7 @@
 		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)
+			if(ntype->nclass==nodeclass && ntype->name && (ntype->compatibility&compatibility))
 				uiItemV(layout, ntype->name, 0, ntype->type);
 		}
 	}

Modified: branches/cycles/source/blender/nodes/NOD_shader.h
===================================================================
--- branches/cycles/source/blender/nodes/NOD_shader.h	2011-10-12 15:48:26 UTC (rev 40961)
+++ branches/cycles/source/blender/nodes/NOD_shader.h	2011-10-12 15:54:53 UTC (rev 40962)
@@ -49,14 +49,29 @@
 void register_node_type_sh_forloop(ListBase *lb);
 void register_node_type_sh_whileloop(ListBase *lb);
 
+void register_node_type_sh_output(ListBase *lb);
+void register_node_type_sh_material(ListBase *lb);
+void register_node_type_sh_camera(ListBase *lb);
 void register_node_type_sh_value(ListBase *lb);
 void register_node_type_sh_rgb(ListBase *lb);
-void register_node_type_sh_math(ListBase *lb);
-void register_node_type_sh_vect_math(ListBase *lb);
 void register_node_type_sh_mix_rgb(ListBase *lb);
+void register_node_type_sh_valtorgb(ListBase *lb);
 void register_node_type_sh_rgbtobw(ListBase *lb);
+void register_node_type_sh_texture(ListBase *lb);
+void register_node_type_sh_normal(ListBase *lb);
+void register_node_type_sh_geom(ListBase *lb);
 void register_node_type_sh_mapping(ListBase *lb);
-void register_node_type_sh_texture(ListBase *lb);
+void register_node_type_sh_curve_vec(ListBase *lb);
+void register_node_type_sh_curve_rgb(ListBase *lb);
+void register_node_type_sh_math(ListBase *lb);
+void register_node_type_sh_vect_math(ListBase *lb);
+void register_node_type_sh_squeeze(ListBase *lb);
+void register_node_type_sh_dynamic(ListBase *lb);
+void register_node_type_sh_material_ext(ListBase *lb);
+void register_node_type_sh_invert(ListBase *lb);
+void register_node_type_sh_seprgb(ListBase *lb);
+void register_node_type_sh_combrgb(ListBase *lb);
+void register_node_type_sh_hue_sat(ListBase *lb);
 
 void register_node_type_sh_attribute(ListBase *lb);
 void register_node_type_sh_geometry(ListBase *lb);

Modified: branches/cycles/source/blender/nodes/intern/node_common.c
===================================================================
--- branches/cycles/source/blender/nodes/intern/node_common.c	2011-10-12 15:48:26 UTC (rev 40961)
+++ branches/cycles/source/blender/nodes/intern/node_common.c	2011-10-12 15:54:53 UTC (rev 40962)
@@ -977,6 +977,7 @@
 
 	node_type_base(ntype, NODE_FRAME, "Frame", NODE_CLASS_LAYOUT, NODE_BACKGROUND);
 	node_type_size(ntype, 150, 100, 0);
+	node_type_compatibility(ntype, NODE_OLD_SHADING|NODE_NEW_SHADING);
 	
 	ntype->needs_free = 1;
 	nodeRegisterType(lb, ntype);

Modified: branches/cycles/source/blender/nodes/shader/nodes/node_shader_add_shader.c
===================================================================
--- branches/cycles/source/blender/nodes/shader/nodes/node_shader_add_shader.c	2011-10-12 15:48:26 UTC (rev 40961)
+++ branches/cycles/source/blender/nodes/shader/nodes/node_shader_add_shader.c	2011-10-12 15:54:53 UTC (rev 40962)
@@ -57,6 +57,7 @@
 	static bNodeType ntype;
 
 	node_type_base(&ntype, SH_NODE_ADD_SHADER, "Add Shader", NODE_CLASS_SHADER, 0);
+	node_type_compatibility(&ntype, NODE_NEW_SHADING);
 	node_type_socket_templates(&ntype, sh_node_add_shader_in, sh_node_add_shader_out);
 	node_type_size(&ntype, 150, 60, 200);
 	node_type_init(&ntype, NULL);

Modified: branches/cycles/source/blender/nodes/shader/nodes/node_shader_attribute.c
===================================================================
--- branches/cycles/source/blender/nodes/shader/nodes/node_shader_attribute.c	2011-10-12 15:48:26 UTC (rev 40961)
+++ branches/cycles/source/blender/nodes/shader/nodes/node_shader_attribute.c	2011-10-12 15:54:53 UTC (rev 40962)
@@ -47,6 +47,7 @@
 	static bNodeType ntype;
 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list