[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