[Bf-blender-cvs] [deff0d3] soc-2016-pbvh-painting: Forgot to update smudge and blur callbacks.

Nathan Vollmer noreply at git.blender.org
Sat Sep 3 11:41:34 CEST 2016


Commit: deff0d3ddb996ae69adca2e745ced9f2a02190fb
Author: Nathan Vollmer
Date:   Sat Sep 3 03:41:24 2016 -0600
Branches: soc-2016-pbvh-painting
https://developer.blender.org/rBdeff0d3ddb996ae69adca2e745ced9f2a02190fb

Forgot to update smudge and blur callbacks.

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

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

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

diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c
index 09512e3..7c2e2cd 100644
--- a/source/blender/editors/sculpt_paint/paint_vertex.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex.c
@@ -3287,7 +3287,6 @@ static void do_vpaint_brush_draw_task_cb_ex(
   StrokeCache *cache = ss->cache;
   const float bstrength = cache->bstrength;
   unsigned int *lcol = data->lcol;
-  unsigned int *lcolorig = data->vp->vpaint_prev;
   Scene *scene = CTX_data_scene(data->C);
   const float brush_size_pressure = 
     BKE_brush_size_get(scene, brush) * (BKE_brush_use_size_pressure(scene, brush) ? ss->cache->pressure : 1.0f);
@@ -3342,7 +3341,6 @@ static void do_vpaint_brush_blur_task_cb_ex(
 	StrokeCache *cache = ss->cache;
 	const float bstrength = cache->bstrength;
 	unsigned int *lcol = data->lcol;
-	unsigned int *lcolorig = data->vp->vpaint_prev;
 	int totalHitLoops;
 	unsigned long blend[4] = { 0 };
 	char *col;
@@ -3393,8 +3391,14 @@ static void do_vpaint_brush_blur_task_cb_ex(
 					//if a vertex is within the brush region, then paint each loop that vertex owns.
 					for (int j = 0; j < ss->vert_to_loop[vertexIndex].count; ++j) {
 						int loopIndex = ss->vert_to_loop[vertexIndex].indices[j];
+
+						//Previous color logic
+						if (ss->previousColor[loopIndex] == 0) {
+							ss->previousColor[loopIndex] = lcol[loopIndex];
+						}
+
 						//Mix the new color with the original based on the brush strength and the curve.
-						lcol[loopIndex] = vpaint_blend(data->vp, lcol[loopIndex], lcolorig[loopIndex], *((unsigned int*)col), 255.0 * fade * bstrength * dot, 255.0);
+						lcol[loopIndex] = vpaint_blend(data->vp, lcol[loopIndex], ss->previousColor[loopIndex], *((unsigned int*)col), 255.0 * fade * bstrength * dot, 255.0);
 					}
 				}
 			}
@@ -3413,7 +3417,6 @@ static void do_vpaint_brush_smudge_task_cb_ex(
 	const float bstrength = cache->bstrength;
 	bool shouldColor = false;
 	unsigned int *lcol = data->lcol;
-	unsigned int *lcolorig = data->vp->vpaint_prev;
 	unsigned int finalColor;
 	float brushDirection[3];
 	sub_v3_v3v3(brushDirection, cache->location, cache->last_location);
@@ -3468,8 +3471,14 @@ static void do_vpaint_brush_smudge_task_cb_ex(
 						//if a vertex is within the brush region, then paint each loop that vertex owns.
 						for (int j = 0; j < ss->vert_to_loop[vertexIndex].count; ++j) {
 							int loopIndex = ss->vert_to_loop[vertexIndex].indices[j];
+
+							//Previous color logic
+							if (ss->previousColor[loopIndex] == 0) {
+								ss->previousColor[loopIndex] = lcol[loopIndex];
+							}
+
 							//Mix the new color with the original based on the brush strength and the curve.
-							lcol[loopIndex] = vpaint_blend(data->vp, lcol[loopIndex], lcolorig[loopIndex], finalColor, 255.0 * fade * bstrength * dot, 255.0);
+							lcol[loopIndex] = vpaint_blend(data->vp, lcol[loopIndex], ss->previousColor[loopIndex], finalColor, 255.0 * fade * bstrength * dot, 255.0);
 						}
 					}
 				}




More information about the Bf-blender-cvs mailing list