[Bf-blender-cvs] [e6a7fdd] master: Fix T44627, black spots with lock alpha in projection paint:

Antony Riakiotakis noreply at git.blender.org
Thu May 7 14:54:01 CEST 2015


Commit: e6a7fdd3092939d4a0a1a08459c464597970427a
Author: Antony Riakiotakis
Date:   Thu May 7 14:49:40 2015 +0200
Branches: master
https://developer.blender.org/rBe6a7fdd3092939d4a0a1a08459c464597970427a

Fix T44627, black spots with lock alpha in projection paint:

Painting would revert alpha even on unpainted pixels, where values would
contain garbage.

===================================================================

M	source/blender/editors/sculpt_paint/paint_image_proj.c

===================================================================

diff --git a/source/blender/editors/sculpt_paint/paint_image_proj.c b/source/blender/editors/sculpt_paint/paint_image_proj.c
index 6f34db4..00fac6b 100644
--- a/source/blender/editors/sculpt_paint/paint_image_proj.c
+++ b/source/blender/editors/sculpt_paint/paint_image_proj.c
@@ -4837,18 +4837,18 @@ static void *do_projectpaint_thread(void *ph_v)
 									else             do_projectpaint_draw(ps, projPixel, texrgb, mask, ps->dither, projPixel->x_px, projPixel->y_px);
 									break;
 							}
-						}
 
-						if (lock_alpha) {
-							if (is_floatbuf) {
-								/* slightly more involved case since floats are in premultiplied space we need
-								 * to make sure alpha is consistent, see T44627 */
-								float rgb_straight[4];
-								premul_to_straight_v4_v4(rgb_straight, projPixel->pixel.f_pt);
-								rgb_straight[3] = projPixel->origColor.f_pt[3];
-								straight_to_premul_v4_v4(projPixel->pixel.f_pt, rgb_straight);
+							if (lock_alpha) {
+								if (is_floatbuf) {
+									/* slightly more involved case since floats are in premultiplied space we need
+									 * to make sure alpha is consistent, see T44627 */
+									float rgb_straight[4];
+									premul_to_straight_v4_v4(rgb_straight, projPixel->pixel.f_pt);
+									rgb_straight[3] = projPixel->origColor.f_pt[3];
+									straight_to_premul_v4_v4(projPixel->pixel.f_pt, rgb_straight);
+								}
+								else projPixel->pixel.ch_pt[3] = projPixel->origColor.ch_pt[3];
 							}
-							else projPixel->pixel.ch_pt[3] = projPixel->origColor.ch_pt[3];
 						}
 
 						/* done painting */




More information about the Bf-blender-cvs mailing list