[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11836] branches/soc-2007-maike/source/ blender/src/glsl_node_util.c: Fixed rgba|vector to value conversion

Miguel Torres Lima torreslima at gmail.com
Sun Aug 26 17:51:38 CEST 2007


Revision: 11836
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11836
Author:   maike
Date:     2007-08-26 17:51:37 +0200 (Sun, 26 Aug 2007)

Log Message:
-----------
Fixed rgba|vector to value conversion
Math and invert nodes don't use average, just the first value

Modified Paths:
--------------
    branches/soc-2007-maike/source/blender/src/glsl_node_util.c

Modified: branches/soc-2007-maike/source/blender/src/glsl_node_util.c
===================================================================
--- branches/soc-2007-maike/source/blender/src/glsl_node_util.c	2007-08-26 01:36:00 UTC (rev 11835)
+++ branches/soc-2007-maike/source/blender/src/glsl_node_util.c	2007-08-26 15:51:37 UTC (rev 11836)
@@ -1633,7 +1633,7 @@
 }
 
 
-static char *glsl_convert_socket_type(char *code, short intype, short outtype, char *tovar, char *fromvar)
+static char *glsl_convert_socket_type(bNode *node, char *code, short intype, short outtype, char *tovar, char *fromvar)
 {
   char *rslt = NULL;
 
@@ -1642,8 +1642,10 @@
   }
   else{
     if(intype == SOCK_VALUE){
-      rslt = glsl_string(5, GFREE, code, GFREE, tovar, 0, " = ", GFREE, fromvar, 0, ".x;\n");
-      /*rslt = glsl_string(9, GFREE, code, GFREE, tovar, 0, " = 0.33333333 * (", 0, fromvar, 0, ".x + ", 0, fromvar, 0, ".y + ", GFREE, fromvar, 0, ".z);\n");*/
+      if(node->type == SH_NODE_MATH || node->type == SH_NODE_INVERT)
+	rslt = glsl_string(5, GFREE, code, GFREE, tovar, 0, " = ", GFREE, fromvar, 0, ".x;\n");
+      else
+	rslt = glsl_string(9, GFREE, code, GFREE, tovar, 0, " = 0.33333333 * (", 0, fromvar, 0, ".x + ", 0, fromvar, 0, ".y + ", GFREE, fromvar, 0, ".z);\n");
     }
     else if(intype == SOCK_VECTOR){
       if(outtype == SOCK_VALUE){
@@ -2290,7 +2292,7 @@
 
       if(BLI_ghash_lookup(read, fromnode)){
 	if(BLI_ghash_lookup(done, fromnode)){
-	  code = glsl_convert_socket_type(code, sock->type, fromsock->type, tovar, fromvar);
+	  code = glsl_convert_socket_type(node, code, sock->type, fromsock->type, tovar, fromvar);
 	}
 	else{
 	  if(fromnode->type == SH_NODE_MATERIAL){
@@ -2329,7 +2331,7 @@
 
 	glsl_exec_nodetree(nodetree, fromnode, nodecode);
 
-	code = glsl_convert_socket_type(code, sock->type, fromsock->type, tovar, fromvar);
+	code = glsl_convert_socket_type(node, code, sock->type, fromsock->type, tovar, fromvar);
       }
       
       fromnode = NULL;





More information about the Bf-blender-cvs mailing list