[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