[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22583] branches/blender2.5/blender/source /blender: Slight refactor of texture nodes.

Robin Allen roblovski at gmail.com
Mon Aug 17 22:30:11 CEST 2009


Revision: 22583
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22583
Author:   kakbarnf
Date:     2009-08-17 22:30:11 +0200 (Mon, 17 Aug 2009)

Log Message:
-----------
Slight refactor of texture nodes. 

Delegates now receive a TexParams* instead of float *coords. This gives texture nodes access to dxt, dyt, cfra as well as coords. This fixes the time node and allows nice sampling to be implemented.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenkernel/BKE_node.h
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_at.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_bricks.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_checker.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_compose.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_coord.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_curves.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_decompose.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_distance.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_hueSatVal.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_image.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_invert.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_math.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_mixRgb.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_output.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_proc.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_rotate.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_scale.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_texture.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_translate.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_valToRgb.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_viewer.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_util.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_util.h
    branches/blender2.5/blender/source/blender/render/intern/source/texture.c

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_node.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_node.h	2009-08-17 20:04:28 UTC (rev 22582)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_node.h	2009-08-17 20:30:11 UTC (rev 22583)
@@ -422,7 +422,7 @@
 /* API */
 int  ntreeTexTagAnimated(struct bNodeTree *ntree);
 void ntreeTexUpdatePreviews( struct bNodeTree* nodetree );
-void ntreeTexExecTree(struct bNodeTree *ntree, struct TexResult *target, float *coord, char do_preview, short thread, struct Tex *tex, short which_output, int cfra);
+void ntreeTexExecTree(struct bNodeTree *ntree, struct TexResult *target, float *coord, float *dxt, float *dyt, char do_preview, short thread, struct Tex *tex, short which_output, int cfra);
 void ntreeTexCheckCyclics(struct bNodeTree *ntree);
 void ntreeTexAssignIndex(struct bNodeTree *ntree, struct bNode *node);
 char* ntreeTexOutputMenu(struct bNodeTree *ntree);

Modified: branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_at.c
===================================================================
--- branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_at.c	2009-08-17 20:04:28 UTC (rev 22582)
+++ branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_at.c	2009-08-17 20:30:11 UTC (rev 22583)
@@ -38,12 +38,14 @@
 	{ -1, 0, "" }
 };
 
-static void colorfn(float *out, float *coord, bNode *node, bNodeStack **in, short thread)
+static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread)
 {
+	TexParams np = *p;
 	float new_coord[3];
+	np.coord = new_coord;
 	
-	tex_input_vec(new_coord, in[1], coord, thread);
-	tex_input_rgba(out, in[0], new_coord, thread);
+	tex_input_vec(new_coord, in[1], p, thread);
+	tex_input_rgba(out, in[0], &np, thread);
 }
 
 static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out)

Modified: branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_bricks.c
===================================================================
--- branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_bricks.c	2009-08-17 20:04:28 UTC (rev 22582)
+++ branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_bricks.c	2009-08-17 20:30:11 UTC (rev 22583)
@@ -21,7 +21,7 @@
  *
  * The Original Code is: all of this file.
  *
- * Contributor(s): none yet.
+ * Contributor(s): Robin Allen
  *
  * ***** END GPL LICENSE BLOCK *****
  */
@@ -57,8 +57,10 @@
 	return 0.5f * ((float)nn / 1073741824.0f);
 }
 
-static void colorfn(float *out, float *coord, bNode *node, bNodeStack **in, short thread)
+static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread)
 {
+	float *coord = p->coord;
+	
 	float x = coord[0];
 	float y = coord[1];
 	
@@ -71,14 +73,14 @@
 	float bricks2[4];
 	float mortar[4];
 	
-	float mortar_thickness = tex_input_value(in[3], coord, thread);
-	float bias             = tex_input_value(in[4], coord, thread);
-	float brick_width      = tex_input_value(in[5], coord, thread);
-	float row_height       = tex_input_value(in[6], coord, thread);
+	float mortar_thickness = tex_input_value(in[3], p, thread);
+	float bias             = tex_input_value(in[4], p, thread);
+	float brick_width      = tex_input_value(in[5], p, thread);
+	float row_height       = tex_input_value(in[6], p, thread);
 	
-	tex_input_rgba(bricks1, in[0], coord, thread);
-	tex_input_rgba(bricks2, in[1], coord, thread);
-	tex_input_rgba(mortar,  in[2], coord, thread);
+	tex_input_rgba(bricks1, in[0], p, thread);
+	tex_input_rgba(bricks2, in[1], p, thread);
+	tex_input_rgba(mortar,  in[2], p, thread);
 	
 	rownum = (int)floor(y / row_height);
 	

Modified: branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_checker.c
===================================================================
--- branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_checker.c	2009-08-17 20:04:28 UTC (rev 22582)
+++ branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_checker.c	2009-08-17 20:30:11 UTC (rev 22583)
@@ -21,7 +21,7 @@
  *
  * The Original Code is: all of this file.
  *
- * Contributor(s): none yet.
+ * Contributor(s): Robin Allen
  *
  * ***** END GPL LICENSE BLOCK *****
  */
@@ -40,12 +40,12 @@
 	{ -1, 0, "" }
 };
 
-static void colorfn(float *out, float *coord, bNode *node, bNodeStack **in, short thread)
+static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread)
 {
-	float x  = coord[0];
-	float y  = coord[1];
-	float z  = coord[2];
-	float sz = tex_input_value(in[2], coord, thread);
+	float x  = p->coord[0];
+	float y  = p->coord[1];
+	float z  = p->coord[2];
+	float sz = tex_input_value(in[2], p, thread);
 	
 	/* 0.00001  because of unit sized stuff */
 	int xi = (int)fabs(floor(0.00001 + x / sz));
@@ -53,9 +53,9 @@
 	int zi = (int)fabs(floor(0.00001 + z / sz));
 	
 	if( (xi % 2 == yi % 2) == (zi % 2) ) {
-		tex_input_rgba(out, in[0], coord, thread);
+		tex_input_rgba(out, in[0], p, thread);
 	} else {
-		tex_input_rgba(out, in[1], coord, thread);
+		tex_input_rgba(out, in[1], p, thread);
 	} 
 }
 

Modified: branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_compose.c
===================================================================
--- branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_compose.c	2009-08-17 20:04:28 UTC (rev 22582)
+++ branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_compose.c	2009-08-17 20:30:11 UTC (rev 22583)
@@ -21,7 +21,7 @@
  *
  * The Original Code is: all of this file.
  *
- * Contributor(s): none yet.
+ * Contributor(s): Robin Allen
  *
  * ***** END GPL LICENSE BLOCK *****
  */
@@ -40,11 +40,11 @@
 	{ -1, 0, "" }
 };
 
-static void colorfn(float *out, float *coord, bNode *node, bNodeStack **in, short thread)
+static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread)
 {
 	int i;
 	for(i = 0; i < 4; i++)
-		out[i] = tex_input_value(in[i], coord, thread);
+		out[i] = tex_input_value(in[i], p, thread);
 }
 
 static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out)

Modified: branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_coord.c
===================================================================
--- branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_coord.c	2009-08-17 20:04:28 UTC (rev 22582)
+++ branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_coord.c	2009-08-17 20:30:11 UTC (rev 22583)
@@ -33,11 +33,11 @@
 	{ -1, 0, "" }
 };
 
-static void vectorfn(float *out, float *coord, bNode *node, bNodeStack **in, short thread)
+static void vectorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread)
 {
-	out[0] = coord[0];
-	out[1] = coord[1];
-	out[2] = coord[2];
+	out[0] = p->coord[0];
+	out[1] = p->coord[1];
+	out[2] = p->coord[2];
 }
 
 static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out)

Modified: branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_curves.c
===================================================================
--- branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_curves.c	2009-08-17 20:04:28 UTC (rev 22582)
+++ branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_curves.c	2009-08-17 20:30:11 UTC (rev 22583)
@@ -21,7 +21,7 @@
  *
  * The Original Code is: all of this file.
  *
- * Contributor(s): none yet.
+ * Contributor(s): Robin Allen
  *
  * ***** END GPL LICENSE BLOCK *****
  */
@@ -36,14 +36,13 @@
 	{ -1, 0, "" }
 };
 
-static void time_colorfn(float *out, float *coord, bNode *node, bNodeStack **in, short thread)
+static void time_colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread)
 {
 	/* stack order output: fac */
 	float fac= 0.0f;
 	
-	// XXX SOLVE! these functions should get the TexCallData pointer
-//	if(node->custom1 < node->custom2)
-//		fac = (scene->r.cfra - node->custom1)/(float)(node->custom2-node->custom1);
+	if(node->custom1 < node->custom2)
+		fac = (p->cfra - node->custom1)/(float)(node->custom2-node->custom1);
 	
 	fac = curvemapping_evaluateF(node->storage, 0, fac);
 	out[0] = CLAMPIS(fac, 0.0f, 1.0f);
@@ -90,10 +89,10 @@
 	{	-1, 0, ""	}
 };
 
-static void rgb_colorfn(float *out, float *coord, bNode *node, bNodeStack **in, short thread)
+static void rgb_colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread)
 {
 	float cin[4];
-	tex_input_rgba(cin, in[0], coord, thread);
+	tex_input_rgba(cin, in[0], p, thread);
 	
 	curvemapping_evaluateRGBF(node->storage, out, cin);
 	out[3] = cin[3];

Modified: branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_decompose.c
===================================================================
--- branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_decompose.c	2009-08-17 20:04:28 UTC (rev 22582)
+++ branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_decompose.c	2009-08-17 20:30:11 UTC (rev 22583)
@@ -21,7 +21,7 @@
  *
  * The Original Code is: all of this file.
  *
- * Contributor(s): none yet.
+ * Contributor(s): Robin Allen
  *
  * ***** END GPL LICENSE BLOCK *****
  */
@@ -41,27 +41,27 @@
 	{ -1, 0, "" }
 };
 
-static void valuefn_r(float *out, float *coord, bNode *node, bNodeStack **in, short thread)
+static void valuefn_r(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread)
 {
-	tex_input_rgba(out, in[0], coord, thread);
+	tex_input_rgba(out, in[0], p, thread);
 	*out = out[0];
 }
 
-static void valuefn_g(float *out, float *coord, bNode *node, bNodeStack **in, short thread)
+static void valuefn_g(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread)
 {
-	tex_input_rgba(out, in[0], coord, thread);
+	tex_input_rgba(out, in[0], p, thread);
 	*out = out[1];
 }
 
-static void valuefn_b(float *out, float *coord, bNode *node, bNodeStack **in, short thread)
+static void valuefn_b(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread)
 {
-	tex_input_rgba(out, in[0], coord, thread);
+	tex_input_rgba(out, in[0], p, thread);
 	*out = out[2];
 }
 
-static void valuefn_a(float *out, float *coord, bNode *node, bNodeStack **in, short thread)
+static void valuefn_a(float *out, TexParams *p, bNode *node, bNodeStack **in, short thread)
 {

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list