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>2011-05-02 13:08:43 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2011-05-02 13:08:43 +0400
commitbee2523a41c37a43df7e4bf93dce32ec45d8f132 (patch)
treef66e0caa4122bb496e9c8997440da911d3a0d8df /source/blender
parent5aef2f1ae2aaa1f8b45b473e4b403a548855b9be (diff)
Related to bug #27004: there is now an option to disable color management for
GLSL. I've tried to find a quicker way to do it that still looks the same, but couldn't find a formula that didn't have major color shifts.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/gpu/intern/gpu_material.c6
-rw-r--r--source/blender/makesdna/DNA_scene_types.h1
-rw-r--r--source/blender/makesrna/intern/rna_scene.c5
3 files changed, 10 insertions, 2 deletions
diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c
index 4155b7a8ac0..134bffc7b8c 100644
--- a/source/blender/gpu/intern/gpu_material.c
+++ b/source/blender/gpu/intern/gpu_material.c
@@ -1011,7 +1011,8 @@ static void do_material_tex(GPUShadeInput *shi)
}
if(tex->type==TEX_IMAGE)
- if(mat->scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)
+ if((mat->scene->r.color_mgt_flag & R_COLOR_MANAGEMENT) &&
+ !((mat->scene->gm.flag & GAME_GLSL_NO_COLOR_MANAGEMENT)))
GPU_link(mat, "srgb_to_linearrgb", tcol, &tcol);
if(mtex->mapto & MAP_COL) {
@@ -1363,7 +1364,8 @@ void GPU_shaderesult_set(GPUShadeInput *shi, GPUShadeResult *shr)
GPU_link(mat, "shade_alpha_obcolor", shr->combined, GPU_builtin(GPU_OBCOLOR), &shr->combined);
}
- if(mat->scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)
+ if((mat->scene->r.color_mgt_flag & R_COLOR_MANAGEMENT) &&
+ !((mat->scene->gm.flag & GAME_GLSL_NO_COLOR_MANAGEMENT)))
GPU_link(mat, "linearrgb_to_srgb", shr->combined, &shr->combined);
}
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index b3d66e61f3d..962fc7d46c2 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -497,6 +497,7 @@ typedef struct GameData {
#define GAME_IGNORE_DEPRECATION_WARNINGS (1 << 12)
#define GAME_ENABLE_ANIMATION_RECORD (1 << 13)
#define GAME_SHOW_MOUSE (1 << 14)
+#define GAME_GLSL_NO_COLOR_MANAGEMENT (1 << 15)
/* GameData.matmode */
#define GAME_MAT_TEXFACE 0
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index acb0ffa3be2..0b4d5ccbbfc 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -1909,6 +1909,11 @@ static void rna_def_scene_game_data(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "GLSL Nodes", "Use nodes for GLSL rendering");
RNA_def_property_update(prop, NC_SCENE|NA_EDITED, "rna_Scene_glsl_update");
+ prop= RNA_def_property(srna, "use_glsl_color_management", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", GAME_GLSL_NO_COLOR_MANAGEMENT);
+ RNA_def_property_ui_text(prop, "GLSL Color Management", "Use color management for GLSL rendering");
+ RNA_def_property_update(prop, NC_SCENE|NA_EDITED, "rna_Scene_glsl_update");
+
prop= RNA_def_property(srna, "use_glsl_extra_textures", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", GAME_GLSL_NO_EXTRA_TEX);
RNA_def_property_ui_text(prop, "GLSL Extra Textures", "Use extra textures like normal or specular maps for GLSL rendering");