[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