DRW: Fix color management in material/rendered mode

We only do exposure/gamma if not using scene lighting
This commit is contained in:
Clément Foucault 2020-02-13 18:12:28 +01:00
parent d46273563e
commit b6572c5430
1 changed files with 13 additions and 1 deletions

View File

@ -282,8 +282,20 @@ static void drw_viewport_colormanagement_set(void)
ColorManagedViewSettings view_settings;
float dither = 0.0f;
bool use_render_settings = v3d && (v3d->shading.type == OB_RENDER);
/* TODO(fclem) This should be a render engine callback to determine if we need CM or not. */
bool use_workbench = BKE_scene_uses_blender_workbench(scene);
bool use_scene_lights = (!v3d ||
((v3d->shading.type == OB_MATERIAL) &&
(v3d->shading.flag & V3D_SHADING_SCENE_LIGHTS)) ||
((v3d->shading.type == OB_RENDER) &&
(v3d->shading.flag & V3D_SHADING_SCENE_LIGHTS_RENDER)));
bool use_scene_world =
(!v3d ||
((v3d->shading.type == OB_MATERIAL) && (v3d->shading.flag & V3D_SHADING_SCENE_WORLD)) ||
((v3d->shading.type == OB_RENDER) && (v3d->shading.flag & V3D_SHADING_SCENE_WORLD_RENDER)));
bool use_view_transform = v3d && (v3d->shading.type >= OB_MATERIAL);
bool use_render_settings = v3d && (use_workbench || use_scene_lights || use_scene_world);
if (use_render_settings) {
/* Use full render settings, for renders with scene lighting. */