[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11808] branches/soc-2007-maike/source/ blender/src/glsl_node_util.c: Value, rgb and rgbmix nodes work

Miguel Torres Lima torreslima at gmail.com
Fri Aug 24 17:41:31 CEST 2007


Revision: 11808
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11808
Author:   maike
Date:     2007-08-24 17:41:31 +0200 (Fri, 24 Aug 2007)

Log Message:
-----------
Value, rgb and rgbmix nodes work
As node events are not set yet to reconstruct the shader it is needed to change between drawtypes to update.
Still has many memory leaks

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-24 15:39:51 UTC (rev 11807)
+++ branches/soc-2007-maike/source/blender/src/glsl_node_util.c	2007-08-24 15:41:31 UTC (rev 11808)
@@ -37,6 +37,30 @@
 
 #include "../python/api2_2x/EXPP_interface.h"
 
+
+struct GLSL_NodeFiles_
+{
+  int diffuse;
+  int specular;
+  int visibility;
+  int ramp_blend;
+  int tex_type;
+  int tex_blend;
+  int tex_blend_val;
+  int mix;
+  int invert;
+  int normal;
+  int mapping;
+  int rgbtobw;
+  int math;
+  int vectmath;
+  int squeeze;
+  
+};
+
+typedef struct GLSL_NodeFiles_ *GLSL_NodeFiles;
+
+
 /* ------------------------------------------------------------------------------- */
 
 #define DOINVAR char *var = glsl_construct_var_name(name, vars[nr], GLSL_LINK_IN); \
@@ -54,8 +78,39 @@
 static GHash *read = NULL;
 static GHash *done = NULL;
 
+static GLSL_NodeFiles files = NULL;
 
 
+static void glsl_init_nodefiles(void)
+{
+  files = MEM_mallocN(sizeof(struct GLSL_NodeFiles_), "GLSL NodeFiles");
+
+  files->diffuse = 0;
+  files->specular = 0;
+  files->visibility = 0;
+  files->ramp_blend = 0;
+  files->tex_type = 0;
+  files->tex_blend = 0;
+  files->tex_blend_val = 0;
+  files->mix = 0;
+  files->invert = 0;
+  files->normal = 0;
+  files->mapping = 0;
+  files->rgbtobw = 0;
+  files->math = 0;
+  files->vectmath = 0;
+  files->squeeze = 0;
+}
+
+
+static void glsl_free_nodefiles(void)
+{
+  MEM_freeN(files);
+  
+  files = NULL;
+}
+
+
 static void glsl_init_node_hash(void)
 {
   read = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp);
@@ -137,7 +192,7 @@
   for(sock = node->inputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_material_input_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_material_input_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -146,7 +201,7 @@
   for(sock = node->outputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_material_output_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_material_output_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -174,7 +229,7 @@
   for(sock = node->outputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_rgb_output_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_rgb_output_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -202,7 +257,7 @@
   for(sock = node->outputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_value_output_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_value_output_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -240,7 +295,7 @@
   for(sock = node->inputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_rgbmix_input_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_rgbmix_input_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -249,7 +304,7 @@
   for(sock = node->outputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_rgbmix_output_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_rgbmix_output_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -287,7 +342,7 @@
   for(sock = node->inputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_colorband_input_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_colorband_input_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -296,7 +351,7 @@
   for(sock = node->outputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_colorband_output_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_colorband_output_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -334,7 +389,7 @@
   for(sock = node->inputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_rgbtobw_input_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_rgbtobw_input_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -343,7 +398,7 @@
   for(sock = node->outputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_rgbtobw_output_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_rgbtobw_output_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -381,7 +436,7 @@
   for(sock = node->inputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_texture_input_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_texture_input_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -390,7 +445,7 @@
   for(sock = node->outputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_texture_output_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_texture_output_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -418,7 +473,7 @@
   for(sock = node->outputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_geometry_output_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_geometry_output_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -456,7 +511,7 @@
   for(sock = node->inputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_normal_input_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_normal_input_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -465,7 +520,7 @@
   for(sock = node->outputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_normal_output_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_normal_output_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -503,7 +558,7 @@
   for(sock = node->inputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_mapping_input_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_mapping_input_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -512,7 +567,7 @@
   for(sock = node->outputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_mapping_output_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_mapping_output_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -550,7 +605,7 @@
   for(sock = node->inputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_veccurves_input_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_veccurves_input_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -559,7 +614,7 @@
   for(sock = node->outputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_veccurves_output_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_veccurves_output_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -597,7 +652,7 @@
   for(sock = node->inputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_rgbcurves_input_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_rgbcurves_input_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -606,7 +661,7 @@
   for(sock = node->outputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_rgbcurves_output_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_rgbcurves_output_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -634,7 +689,7 @@
   for(sock = node->outputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_camera_output_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_camera_output_vars(name, i, sock->type, 1));
 
     i++;
   }
@@ -673,7 +728,7 @@
   for(sock = node->inputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_math_input_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_math_input_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -682,7 +737,7 @@
   for(sock = node->outputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_math_output_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_math_output_vars(name, i, sock->type, 1));
 
     i++;
   }
@@ -721,7 +776,7 @@
   for(sock = node->inputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_vectmath_input_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_vectmath_input_vars(name, i, sock->type, 1));
     i++;
   }
 
@@ -730,7 +785,7 @@
   for(sock = node->outputs.first; sock; sock = sock->next){
     stack = &sock->ns;
 
-    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_vectmath_output_vars(name, i, stack->sockettype, 1));
+    vars = glsl_string(2, GFREE, vars, GFREE, glsl_node_vectmath_output_vars(name, i, sock->type, 1));
 
     i++;
   }
@@ -769,7 +824,7 @@
   for(sock = node->inputs.first; sock; sock = sock->next){

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list