[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11639] branches/soc-2007-maike/source/ blender/src/glsl_uniforms.c: Uniform sending bugfix
Miguel Torres Lima
torreslima at gmail.com
Fri Aug 17 16:51:04 CEST 2007
Revision: 11639
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11639
Author: maike
Date: 2007-08-17 16:51:04 +0200 (Fri, 17 Aug 2007)
Log Message:
-----------
Uniform sending bugfix
Modified Paths:
--------------
branches/soc-2007-maike/source/blender/src/glsl_uniforms.c
Modified: branches/soc-2007-maike/source/blender/src/glsl_uniforms.c
===================================================================
--- branches/soc-2007-maike/source/blender/src/glsl_uniforms.c 2007-08-17 14:48:42 UTC (rev 11638)
+++ branches/soc-2007-maike/source/blender/src/glsl_uniforms.c 2007-08-17 14:51:04 UTC (rev 11639)
@@ -524,22 +524,22 @@
void glsl_update_texture_uniforms(GLuint program, MTex *mtex, int texindex, int matindex)
{
- char *ofs = glsl_string(5, 0, "uniform vec3 mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_ofs;\n");
- char *size = glsl_string(5, 0, "uniform vec3 mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_size;\n");
- char *colfac = glsl_string(5, 0, "uniform float mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_colfac;\n");
- char *norfac = glsl_string(5, 0, "uniform float mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_norfac;\n");
- char *varfac = glsl_string(5, 0, "uniform float mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_varfac;\n");
- char *warpfac = glsl_string(5, 0, "uniform float mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_warpfac;\n");
- char *neg = glsl_string(5, 0, "uniform float mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_neg;\n");
- char *norgb = glsl_string(5, 0, "uniform float mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_norgb;\n");
- char *norgbcol = glsl_string(5, 0, "uniform vec3 mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_norgbcol;\n");
- char *dvarfac = glsl_string(5, 0, "uniform float mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_dvarfac;\n");
+ char *ofs = glsl_string(5, 0, "mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_ofs");
+ char *size = glsl_string(5, 0, "mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_size");
+ char *colfac = glsl_string(5, 0, "mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_colfac");
+ char *norfac = glsl_string(5, 0, "mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_norfac");
+ char *varfac = glsl_string(5, 0, "mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_varfac");
+ char *warpfac = glsl_string(5, 0, "mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_warpfac");
+ char *neg = glsl_string(5, 0, "mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_neg");
+ char *norgb = glsl_string(5, 0, "mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_norgb");
+ char *norgbcol = glsl_string(5, 0, "mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_norgbcol");
+ char *dvarfac = glsl_string(5, 0, "mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_dvarfac");
Tex *tex = mtex->tex;
glUseProgram(program);
- glUniform3f(glsl_uniform_location(program, ofs), mtex->ofs[0], mtex->ofs[1], mtex->ofs[2]);
+ glUniform3fv(glsl_uniform_location(program, ofs), 1, mtex->ofs);
glUniform3f(glsl_uniform_location(program, size), mtex->size[0], mtex->size[1], mtex->size[2]);
glUniform1f(glsl_uniform_location(program, colfac), mtex->colfac);
glUniform1f(glsl_uniform_location(program, norfac), mtex->norfac);
@@ -550,7 +550,18 @@
glUniform3f(glsl_uniform_location(program, norgbcol), mtex->r, mtex->g, mtex->b);
glUniform1f(glsl_uniform_location(program, dvarfac), mtex->def_var);
-
+ MEM_freeN(ofs);
+ MEM_freeN(size);
+ MEM_freeN(colfac);
+ MEM_freeN(norfac);
+ MEM_freeN(varfac);
+ MEM_freeN(warpfac);
+ MEM_freeN(neg);
+ MEM_freeN(norgb);
+ MEM_freeN(norgbcol);
+ MEM_freeN(dvarfac);
+
+
switch(tex->type)
{
case TEX_CLOUDS:
@@ -594,18 +605,6 @@
break;
}
-
- MEM_freeN(ofs);
- MEM_freeN(size);
- MEM_freeN(colfac);
- MEM_freeN(norfac);
- MEM_freeN(varfac);
- MEM_freeN(warpfac);
- MEM_freeN(neg);
- MEM_freeN(norgb);
- MEM_freeN(norgbcol);
- MEM_freeN(dvarfac);
-
glUseProgram(0);
}
@@ -630,19 +629,20 @@
void glsl_update_texture_magic_uniforms(GLuint program, Tex *tex, int texindex, int matindex)
{
- char *color = glsl_string(5, 0, "mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_color");
+ char *texcolor = glsl_string(5, 0, "mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_color");
char *depth = glsl_string(5, 0, "mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_depth");
char *turbulence = glsl_string(5, 0, "mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_turbulence");
char *contrast = glsl_string(5, 0, "mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_contrast");
char *brightness = glsl_string(5, 0, "mat_", GINT, matindex, 0, "_tex_", GINT, texindex, 0, "_brightness");
- glUniform3f(glsl_uniform_location(program, color), tex->rfac, tex->gfac, tex->bfac);
+ glUniform3f(glsl_uniform_location(program, texcolor), tex->rfac, tex->gfac, tex->bfac);
glUniform1f(glsl_uniform_location(program, depth), tex->noisedepth);
glUniform1f(glsl_uniform_location(program, turbulence), tex->turbul);
glUniform1f(glsl_uniform_location(program, contrast), tex->contrast);
glUniform1f(glsl_uniform_location(program, brightness), tex->bright);
+
- MEM_freeN(color);
+ MEM_freeN(texcolor);
MEM_freeN(depth);
MEM_freeN(turbulence);
MEM_freeN(contrast);
More information about the Bf-blender-cvs
mailing list