diff options
author | Jeroen Bakker <j.bakker@atmind.nl> | 2019-05-21 13:00:48 +0300 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2019-05-31 13:44:18 +0300 |
commit | 23064248d7a08d01061e108972985a11997f046c (patch) | |
tree | e64356ca66a809b64b716bca535fb09e86dbaaa4 /source/blender/draw/engines | |
parent | d0fb602e2c365025131c782c1bc9b7d60013a678 (diff) |
DrawManager: Color Management
The draw manager used to determine if the view transform should be
applied by checking if the scene was not rendered to an offscreen image.
As the sequencer and texture painting needs to render to an offscreen
image with the view transform applied we need to separate the
`do_color_management` from the `is_image_render`.
Reviewed By: fclem
Maniphest Tasks: T64849
Differential Revision: https://developer.blender.org/D4909
Diffstat (limited to 'source/blender/draw/engines')
-rw-r--r-- | source/blender/draw/engines/gpencil/gpencil_engine.c | 5 | ||||
-rw-r--r-- | source/blender/draw/engines/workbench/workbench_effect_aa.c | 10 |
2 files changed, 8 insertions, 7 deletions
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c index f78f7295d24..07588467ae2 100644 --- a/source/blender/draw/engines/gpencil/gpencil_engine.c +++ b/source/blender/draw/engines/gpencil/gpencil_engine.c @@ -976,7 +976,7 @@ void GPENCIL_draw_scene(void *ved) stl->storage->blend_mode = array_elm->mode; stl->storage->clamp_layer = (int)array_elm->clamp_layer; stl->storage->blend_opacity = array_elm->blend_opacity; - stl->storage->tonemapping = stl->storage->is_render ? 1 : 0; + stl->storage->tonemapping = DRW_state_do_color_management() ? 0 : 1; DRW_draw_pass(psl->blend_pass); stl->storage->tonemapping = 0; @@ -1018,7 +1018,8 @@ void GPENCIL_draw_scene(void *ved) GPU_framebuffer_bind(fbl->main); } /* tonemapping */ - stl->storage->tonemapping = is_render ? 1 : 0; + stl->storage->tonemapping = DRW_state_do_color_management() ? 0 : 1; + /* active select flag and selection color */ if (!is_render) { UI_GetThemeColorShadeAlpha4fv( diff --git a/source/blender/draw/engines/workbench/workbench_effect_aa.c b/source/blender/draw/engines/workbench/workbench_effect_aa.c index 965f5a5ca4f..ed311db0626 100644 --- a/source/blender/draw/engines/workbench/workbench_effect_aa.c +++ b/source/blender/draw/engines/workbench/workbench_effect_aa.c @@ -55,14 +55,14 @@ void workbench_aa_create_pass(WORKBENCH_Data *vedata, GPUTexture **tx) static void workspace_aa_draw_transform(GPUTexture *tx, WORKBENCH_PrivateData *wpd) { - if (DRW_state_is_image_render()) { - /* Linear result for render. */ - DRW_transform_none(tx); - } - else { + if (DRW_state_do_color_management()) { /* Display space result for viewport. */ DRW_transform_to_display(tx, wpd->use_color_render_settings, wpd->use_color_render_settings); } + else { + /* Linear result for render. */ + DRW_transform_none(tx); + } } void workbench_aa_draw_pass(WORKBENCH_Data *vedata, GPUTexture *tx) |