diff options
-rw-r--r-- | release/scripts/startup/bl_ui/properties_game.py | 1 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_material.c | 6 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_scene_types.h | 1 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_scene.c | 5 |
4 files changed, 11 insertions, 2 deletions
diff --git a/release/scripts/startup/bl_ui/properties_game.py b/release/scripts/startup/bl_ui/properties_game.py index a151234e184..0c07451b3b2 100644 --- a/release/scripts/startup/bl_ui/properties_game.py +++ b/release/scripts/startup/bl_ui/properties_game.py @@ -323,6 +323,7 @@ class RENDER_PT_game_shading(RenderButtonsPanel, bpy.types.Panel): col.prop(gs, "use_glsl_lights", text="Lights") col.prop(gs, "use_glsl_shaders", text="Shaders") col.prop(gs, "use_glsl_shadows", text="Shadows") + col.prop(gs, "use_glsl_color_management", text="Color Management") col = split.column() col.prop(gs, "use_glsl_ramps", text="Ramps") 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"); |