diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-12-03 20:13:15 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-12-03 20:13:15 +0400 |
commit | d3f3fb89cc2f5745df2b2c1adb0b4db047a3303c (patch) | |
tree | f184d8330d2a3d7aebab509832362450dd5e4224 /source/blender/editors/sculpt_paint | |
parent | e63d5f23565a4fe426f45fec4152d55a7eafb2d8 (diff) |
Fix T37670: Paint mode + procedural map colours error
Summary:
Seems to be known TODO in the code, but no idea why it
was never solved, especially since tweak is so much easy.
It might be arguable that we need to support painting
color space, but it's still much better to convert to
sRGB space. It's gonna to cover 90% of cases anyway.
Reviewers: campbellbarton, brecht
Reviewed By: brecht
Maniphest Tasks: T37670
Differential Revision: http://developer.blender.org/D65
Diffstat (limited to 'source/blender/editors/sculpt_paint')
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_image_2d.c | 8 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_image_proj.c | 3 |
2 files changed, 10 insertions, 1 deletions
diff --git a/source/blender/editors/sculpt_paint/paint_image_2d.c b/source/blender/editors/sculpt_paint/paint_image_2d.c index 1a19341acec..5f4594703ee 100644 --- a/source/blender/editors/sculpt_paint/paint_image_2d.c +++ b/source/blender/editors/sculpt_paint/paint_image_2d.c @@ -275,6 +275,10 @@ static ImBuf *brush_painter_imbuf_new(BrushPainter *painter, int size) if (is_texbrush) { brush_imbuf_tex_co(&tex_mapping, x, y, texco); BKE_brush_sample_tex_3D(scene, brush, texco, rgba, thread, pool); + /* TODO(sergey): Support texture paint color space. */ + if (!use_float) { + linearrgb_to_srgb_v3_v3(rgba, rgba); + } mul_v3_v3(rgba, brush_rgb); } else { @@ -362,6 +366,10 @@ static void brush_painter_imbuf_update(BrushPainter *painter, ImBuf *oldtexibuf, if (is_texbrush) { brush_imbuf_tex_co(&tex_mapping, x, y, texco); BKE_brush_sample_tex_3D(scene, brush, texco, rgba, thread, pool); + /* TODO(sergey): Support texture paint color space. */ + if (!use_float) { + linearrgb_to_srgb_v3_v3(rgba, rgba); + } mul_v3_v3(rgba, brush_rgb); } else { diff --git a/source/blender/editors/sculpt_paint/paint_image_proj.c b/source/blender/editors/sculpt_paint/paint_image_proj.c index 59f398a8719..fccd9cf0a19 100644 --- a/source/blender/editors/sculpt_paint/paint_image_proj.c +++ b/source/blender/editors/sculpt_paint/paint_image_proj.c @@ -3758,8 +3758,9 @@ static void do_projectpaint_draw(ProjPaintState *ps, ProjPixel *projPixel, const copy_v3_v3(rgb, ps->brush->rgb); if (ps->is_texbrush) { - /* XXX actually should convert texrgb from linear to srgb here */ mul_v3_v3(rgb, texrgb); + /* TODO(sergey): Support texture paint color space. */ + linearrgb_to_srgb_v3_v3(rgb, rgb); } rgb_float_to_uchar(rgba_ub, rgb); |