diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-02-12 20:21:53 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-02-12 20:21:53 +0300 |
commit | 00e012d5644f1d9d4ebb6e20b1065bd1709a9cbd (patch) | |
tree | 9d41dc988bd0749e6fd773b79a3be610c8853f20 /source/blender/draw/engines/gpencil | |
parent | c10e05ceb89ebb52707d519e091ebab9ca62e40b (diff) |
GPencil: Fix colormanagement broken by recent refactor
This is a quick fix that should work until the GPencil refactor lands.
Diffstat (limited to 'source/blender/draw/engines/gpencil')
4 files changed, 11 insertions, 6 deletions
diff --git a/source/blender/draw/engines/gpencil/gpencil_draw_utils.c b/source/blender/draw/engines/gpencil/gpencil_draw_utils.c index f270fde0533..d44aa5764b1 100644 --- a/source/blender/draw/engines/gpencil/gpencil_draw_utils.c +++ b/source/blender/draw/engines/gpencil/gpencil_draw_utils.c @@ -343,12 +343,12 @@ static void set_wireframe_color(Object *ob, color[1] = world->horg; color[2] = world->horb; color[3] = 1.0f; - linearrgb_to_srgb_v4(stl->shgroups[id].wire_color, color); + copy_v4_v4(stl->shgroups[id].wire_color, color); } else { copy_v3_v3(color, v3d->shading.background_color); color[3] = 1.0f; - linearrgb_to_srgb_v4(stl->shgroups[id].wire_color, color); + copy_v4_v4(stl->shgroups[id].wire_color, color); } return; } @@ -363,13 +363,13 @@ static void set_wireframe_color(Object *ob, copy_v3_v3(color, v3d->shading.single_color); } color[3] = 1.0f; - linearrgb_to_srgb_v4(stl->shgroups[id].wire_color, color); + copy_v4_v4(stl->shgroups[id].wire_color, color); break; } case V3D_SHADING_OBJECT_COLOR: { copy_v4_v4(color, ob->color); color[3] = 1.0f; - linearrgb_to_srgb_v4(stl->shgroups[id].wire_color, color); + copy_v4_v4(stl->shgroups[id].wire_color, color); break; } case V3D_SHADING_RANDOM_COLOR: { diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c index ce79164a80b..d049abbade5 100644 --- a/source/blender/draw/engines/gpencil/gpencil_engine.c +++ b/source/blender/draw/engines/gpencil/gpencil_engine.c @@ -1061,7 +1061,7 @@ void GPENCIL_draw_scene(void *ved) GPU_framebuffer_clear_color_depth_stencil(fbl->temp_fb_b, clearcol, 1.0f, 0x0); stl->storage->blend_mode = array_elm->mode; stl->storage->mask_layer = (int)array_elm->mask_layer; - stl->storage->tonemapping = DRW_state_do_color_management() ? 0 : 1; + stl->storage->tonemapping = 1; DRW_draw_pass(psl->blend_pass); stl->storage->tonemapping = 0; @@ -1103,7 +1103,7 @@ void GPENCIL_draw_scene(void *ved) GPU_framebuffer_bind(fbl->main); } /* tonemapping */ - stl->storage->tonemapping = DRW_state_do_color_management() ? 0 : 1; + stl->storage->tonemapping = 1; /* active select flag and selection color */ if (!is_render) { diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_edit_point_vert.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_edit_point_vert.glsl index f75322f90e2..57908f3251b 100644 --- a/source/blender/draw/engines/gpencil/shaders/gpencil_edit_point_vert.glsl +++ b/source/blender/draw/engines/gpencil/shaders/gpencil_edit_point_vert.glsl @@ -13,4 +13,7 @@ void main() gl_Position = point_world_to_ndc((gpModelMatrix * vec4(pos, 1.0)).xyz); finalColor = color; finalThickness = size; + + /* Dirty fix waiting for new GPencil engine. */ + finalColor.rgb = pow(finalColor.rgb, vec3(2.2)); } diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_zdepth_mix_frag.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_zdepth_mix_frag.glsl index be645548402..926b11e4083 100644 --- a/source/blender/draw/engines/gpencil/shaders/gpencil_zdepth_mix_frag.glsl +++ b/source/blender/draw/engines/gpencil/shaders/gpencil_zdepth_mix_frag.glsl @@ -68,6 +68,8 @@ void main() if (check_borders(uv, 2)) { FragColor = select_color; gl_FragDepth = 0.000001; + /* Dirty fix waiting for new GPencil engine. */ + FragColor.rgb = pow(FragColor.rgb, vec3(2.2)); } } } |