diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-02-28 15:41:06 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-02-28 15:41:48 +0300 |
commit | d68484a60f539339db12a7eedd0ead0f116a43d5 (patch) | |
tree | aaad274b769ff6e371ed8fca52a8dd2f512c858f /source/blender/draw/engines/workbench/workbench_data.c | |
parent | bbe5a95d05f7c9c7286e8f785ac92c2e16a114b2 (diff) |
Fix T58405: viewport drawing issues with display device set to None.
Disabling color management this way is not very useful, but as long as the
option is there it should work correct.
Diffstat (limited to 'source/blender/draw/engines/workbench/workbench_data.c')
-rw-r--r-- | source/blender/draw/engines/workbench/workbench_data.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/source/blender/draw/engines/workbench/workbench_data.c b/source/blender/draw/engines/workbench/workbench_data.c index 5fb1491d02d..38b05133487 100644 --- a/source/blender/draw/engines/workbench/workbench_data.c +++ b/source/blender/draw/engines/workbench/workbench_data.c @@ -59,6 +59,8 @@ void workbench_private_data_init(WORKBENCH_PrivateData *wpd) wpd->use_color_render_settings = false; } + wpd->use_color_management = BKE_scene_check_color_management_enabled(scene); + if (wpd->shading.light == V3D_LIGHTING_MATCAP) { wpd->studio_light = BKE_studiolight_find( wpd->shading.matcap, STUDIOLIGHT_TYPE_MATCAP); @@ -103,8 +105,14 @@ void workbench_private_data_init(WORKBENCH_PrivateData *wpd) /* XXX: Really quick conversion to avoid washed out background. * Needs to be addressed properly (color managed using ocio). */ - srgb_to_linearrgb_v3_v3(wd->background_color_high, wd->background_color_high); - srgb_to_linearrgb_v3_v3(wd->background_color_low, wd->background_color_low); + if (wpd->use_color_management) { + srgb_to_linearrgb_v3_v3(wd->background_color_high, wd->background_color_high); + srgb_to_linearrgb_v3_v3(wd->background_color_low, wd->background_color_low); + } + else { + copy_v3_v3(wd->background_color_high, wd->background_color_high); + copy_v3_v3(wd->background_color_low, wd->background_color_low); + } } else { zero_v3(wd->background_color_low); @@ -126,7 +134,12 @@ void workbench_private_data_init(WORKBENCH_PrivateData *wpd) wpd->world_clip_planes = rv3d->clip; DRW_state_clip_planes_set_from_rv3d(rv3d); UI_GetThemeColor4fv(TH_V3D_CLIPPING_BORDER, wpd->world_clip_planes_color); - srgb_to_linearrgb_v3_v3(wpd->world_clip_planes_color, wpd->world_clip_planes_color); + if (wpd->use_color_management) { + srgb_to_linearrgb_v3_v3(wpd->world_clip_planes_color, wpd->world_clip_planes_color); + } + else { + copy_v3_v3(wpd->world_clip_planes_color, wpd->world_clip_planes_color); + } } else { wpd->world_clip_planes = NULL; |