[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14084] trunk/blender/source/blender/nodes /intern:

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Mar 13 12:26:25 CET 2008


Revision: 14084
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14084
Author:   blendix
Date:     2008-03-13 12:26:18 +0100 (Thu, 13 Mar 2008)

Log Message:
-----------

Fix for bug #8385: vector inputs of texture node in the compositor did
not work correct, it should use bNodeStack inputs like other nodes.

Modified Paths:
--------------
    trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_texture.c
    trunk/blender/source/blender/nodes/intern/CMP_util.h

Modified: trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_texture.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_texture.c	2008-03-13 10:58:36 UTC (rev 14083)
+++ trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_texture.c	2008-03-13 11:26:18 UTC (rev 14084)
@@ -45,16 +45,15 @@
 static void texture_procedural(CompBuf *cbuf, float *col, float xco, float yco)
 {
 	bNode *node= cbuf->node;
-	bNodeSocket *sock= node->inputs.first;
 	TexResult texres= {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, NULL};
 	float vec[3], *size, nor[3]={0.0f, 0.0f, 0.0f};
 	int retval, type= cbuf->type;
 	
-	size= sock->next->ns.vec;
+	size= cbuf->procedural_size;
 	
-	vec[0]= size[0]*(xco + sock->ns.vec[0]);
-	vec[1]= size[1]*(yco + sock->ns.vec[1]);
-	vec[2]= size[2]*sock->ns.vec[2];
+	vec[0]= size[0]*(xco + cbuf->procedural_offset[0]);
+	vec[1]= size[1]*(yco + cbuf->procedural_offset[1]);
+	vec[2]= size[2]*cbuf->procedural_offset[2];
 	
 	retval= multitex_ext((Tex *)node->id, vec, NULL, NULL, 0, &texres);
 	
@@ -106,6 +105,8 @@
 		
 		prevbuf->rect_procedural= texture_procedural;
 		prevbuf->node= node;
+		VECCOPY(prevbuf->procedural_offset, in[0]->vec);
+		VECCOPY(prevbuf->procedural_size, in[1]->vec);
 		composit1_pixel_processor(node, prevbuf, prevbuf, out[0]->vec, do_copy_rgba, CB_RGBA);
 		generate_preview(node, prevbuf);
 		free_compbuf(prevbuf);
@@ -115,6 +116,8 @@
 			
 			stackbuf->rect_procedural= texture_procedural;
 			stackbuf->node= node;
+			VECCOPY(stackbuf->procedural_offset, in[0]->vec);
+			VECCOPY(stackbuf->procedural_size, in[1]->vec);
 			
 			out[0]->data= stackbuf; 
 		}
@@ -123,6 +126,8 @@
 			
 			stackbuf->rect_procedural= texture_procedural;
 			stackbuf->node= node;
+			VECCOPY(stackbuf->procedural_offset, in[0]->vec);
+			VECCOPY(stackbuf->procedural_size, in[1]->vec);
 			
 			out[1]->data= stackbuf;
 		}

Modified: trunk/blender/source/blender/nodes/intern/CMP_util.h
===================================================================
--- trunk/blender/source/blender/nodes/intern/CMP_util.h	2008-03-13 10:58:36 UTC (rev 14083)
+++ trunk/blender/source/blender/nodes/intern/CMP_util.h	2008-03-13 11:26:18 UTC (rev 14084)
@@ -107,6 +107,7 @@
 	int xof, yof;		/* relative to center of target image */
 	
 	void (*rect_procedural)(struct CompBuf *, float *, float, float);
+	float procedural_size[3], procedural_offset[3];
 	bNode *node;		/* only in use for procedural bufs */
 	
 	struct CompBuf *next, *prev;	/* for pass-on, works nicer than reference counting */





More information about the Bf-blender-cvs mailing list