[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34354] trunk/blender/source/blender/nodes /intern: Bugfix, IRC report

Ton Roosendaal ton at blender.org
Sun Jan 16 18:12:03 CET 2011


Revision: 34354
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=34354
Author:   ton
Date:     2011-01-16 17:12:02 +0000 (Sun, 16 Jan 2011)
Log Message:
-----------
Bugfix, IRC report

Texture nodes: including output node in group crashed when it got
connected. Note that this feature is not supported to do anything
else than temporarily giving an output when editing node groups.

Modified Paths:
--------------
    trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_output.c
    trunk/blender/source/blender/nodes/intern/TEX_util.c

Modified: trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_output.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_output.c	2011-01-16 16:00:06 UTC (rev 34353)
+++ trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_output.c	2011-01-16 17:12:02 UTC (rev 34354)
@@ -45,7 +45,7 @@
 		TexParams params;
 		params_from_cdata(&params, cdata);
 
-		if(in[1]->hasinput && !in[0]->hasinput)
+		if(in[1] && in[1]->hasinput && !in[0]->hasinput)
 			tex_input_rgba(&target->tr, in[1], &params, cdata->thread);
 		else
 			tex_input_rgba(&target->tr, in[0], &params, cdata->thread);
@@ -63,7 +63,7 @@
 			target->talpha = 1.0f;
 		
 			if(target->nor) {
-				if(in[1]->hasinput)
+				if(in[1] && in[1]->hasinput)
 					tex_input_vec(target->nor, in[1], &params, cdata->thread);
 				else
 					target->nor = 0;

Modified: trunk/blender/source/blender/nodes/intern/TEX_util.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/TEX_util.c	2011-01-16 16:00:06 UTC (rev 34353)
+++ trunk/blender/source/blender/nodes/intern/TEX_util.c	2011-01-16 17:12:02 UTC (rev 34354)
@@ -181,6 +181,7 @@
 	MTex *mtex
 ){
 	TexCallData data;
+	float *nor= texres->nor;
 	int retval = TEX_INT;
 
 	data.co = co;
@@ -199,6 +200,9 @@
 
 	if(texres->nor) retval |= TEX_NOR;
 	retval |= TEX_RGB;
+	/* confusing stuff; the texture output node sets this to NULL to indicate no normal socket was set
+	   however, the texture code checks this for other reasons (namely, a normal is required for material) */
+	texres->nor= nor;
 
 	return retval;
 }




More information about the Bf-blender-cvs mailing list