Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2012-09-09 15:04:49 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-09-09 15:04:49 +0400
commitc810e417bde1dd81c8218915748b5bc55f926c6e (patch)
treefd77bae179bcde7a425b9a86f589c687af94406a /source/blender/gpu
parent521c085af80669a021020d3cdd38dfde38018925 (diff)
Fix #32513: incorrect color management in Material draw mode for Cycles.
Diffstat (limited to 'source/blender/gpu')
-rw-r--r--source/blender/gpu/GPU_material.h2
-rw-r--r--source/blender/gpu/intern/gpu_material.c15
2 files changed, 8 insertions, 9 deletions
diff --git a/source/blender/gpu/GPU_material.h b/source/blender/gpu/GPU_material.h
index 856b1f83001..baa557c3484 100644
--- a/source/blender/gpu/GPU_material.h
+++ b/source/blender/gpu/GPU_material.h
@@ -135,6 +135,8 @@ int GPU_material_bound(GPUMaterial *material);
void GPU_material_vertex_attributes(GPUMaterial *material,
struct GPUVertexAttribs *attrib);
+int GPU_material_do_color_management(GPUMaterial *mat);
+
/* Exported shading */
typedef struct GPUShadeInput {
diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c
index c831b92936f..61be4057843 100644
--- a/source/blender/gpu/intern/gpu_material.c
+++ b/source/blender/gpu/intern/gpu_material.c
@@ -387,7 +387,7 @@ void gpu_material_add_node(GPUMaterial *material, GPUNode *node)
/* Code generation */
-static int gpu_do_color_management(GPUMaterial *mat)
+int GPU_material_do_color_management(GPUMaterial *mat)
{
return ((mat->scene->r.color_mgt_flag & R_COLOR_MANAGEMENT) &&
!((mat->scene->gm.flag & GAME_GLSL_NO_COLOR_MANAGEMENT)));
@@ -1076,7 +1076,7 @@ static void do_material_tex(GPUShadeInput *shi)
}
if (tex->type==TEX_IMAGE)
- if (gpu_do_color_management(mat))
+ if (GPU_material_do_color_management(mat))
GPU_link(mat, "srgb_to_linearrgb", tcol, &tcol);
if (mtex->mapto & MAP_COL) {
@@ -1372,7 +1372,7 @@ void GPU_shadeinput_set(GPUMaterial *mat, Material *ma, GPUShadeInput *shi)
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))
+ if (GPU_material_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);
}
@@ -1516,12 +1516,9 @@ GPUMaterial *GPU_material_from_blender(Scene *scene, Material *ma)
GPU_material_output_link(mat, outlink);
}
- if (!BKE_scene_use_new_shading_nodes(scene)) {
- if (gpu_do_color_management(mat))
- if (mat->outlink)
- GPU_link(mat, "linearrgb_to_srgb", mat->outlink, &mat->outlink);
- }
-
+ if (GPU_material_do_color_management(mat))
+ if (mat->outlink)
+ GPU_link(mat, "linearrgb_to_srgb", mat->outlink, &mat->outlink);
GPU_material_construct_end(mat);