[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36443] trunk/blender/source/blender/gpu/ intern/gpu_material.c: Fix #26697: glsl color management + vertex color was not working right.

Brecht Van Lommel brechtvanlommel at pandora.be
Mon May 2 15:52:42 CEST 2011


Revision: 36443
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36443
Author:   blendix
Date:     2011-05-02 13:52:41 +0000 (Mon, 02 May 2011)
Log Message:
-----------
Fix #26697: glsl color management + vertex color was not working right.

Modified Paths:
--------------
    trunk/blender/source/blender/gpu/intern/gpu_material.c

Modified: trunk/blender/source/blender/gpu/intern/gpu_material.c
===================================================================
--- trunk/blender/source/blender/gpu/intern/gpu_material.c	2011-05-02 13:35:04 UTC (rev 36442)
+++ trunk/blender/source/blender/gpu/intern/gpu_material.c	2011-05-02 13:52:41 UTC (rev 36443)
@@ -373,6 +373,12 @@
 
 /* Code generation */
 
+static int gpu_do_color_management(GPUMaterial *mat)
+{
+	return ((mat->scene->r.color_mgt_flag & R_COLOR_MANAGEMENT) &&
+	   !((mat->scene->gm.flag & GAME_GLSL_NO_COLOR_MANAGEMENT)));
+}
+
 static GPUNodeLink *lamp_get_visibility(GPUMaterial *mat, GPULamp *lamp, GPUNodeLink **lv, GPUNodeLink **dist)
 {
 	GPUNodeLink *visifac, *inpr;
@@ -1011,8 +1017,7 @@
 				}
 
 				if(tex->type==TEX_IMAGE)
-					if((mat->scene->r.color_mgt_flag & R_COLOR_MANAGEMENT) &&
-					   !((mat->scene->gm.flag & GAME_GLSL_NO_COLOR_MANAGEMENT)))
+					if(gpu_do_color_management(mat))
 						GPU_link(mat, "srgb_to_linearrgb", tcol, &tcol);
 				
 				if(mtex->mapto & MAP_COL) {
@@ -1259,6 +1264,8 @@
 	GPU_link(mat, "set_value", GPU_uniform(&ma->amb), &shi->amb);
 	GPU_link(mat, "shade_view", GPU_builtin(GPU_VIEW_POSITION), &shi->view);
 	GPU_link(mat, "vcol_attribute", GPU_attribute(CD_MCOL, ""), &shi->vcol);
+	if(gpu_do_color_management(mat))
+		GPU_link(mat, "srgb_to_linearrgb", shi->vcol, &shi->vcol);
 	GPU_link(mat, "texco_refl", shi->vn, shi->view, &shi->ref);
 }
 
@@ -1364,8 +1371,7 @@
 		GPU_link(mat, "shade_alpha_obcolor", shr->combined, GPU_builtin(GPU_OBCOLOR), &shr->combined);
 	}
 
-	if((mat->scene->r.color_mgt_flag & R_COLOR_MANAGEMENT) &&
-	   !((mat->scene->gm.flag & GAME_GLSL_NO_COLOR_MANAGEMENT)))
+	if(gpu_do_color_management(mat))
 		GPU_link(mat, "linearrgb_to_srgb", shr->combined, &shr->combined);
 }
 




More information about the Bf-blender-cvs mailing list