[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46195] trunk/blender/source/blender: Fix wrong unified weight paint value version patch, was doing incorrect version check.

Brecht Van Lommel brechtvanlommel at pandora.be
Wed May 2 18:05:26 CEST 2012


Revision: 46195
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46195
Author:   blendix
Date:     2012-05-02 16:05:25 +0000 (Wed, 02 May 2012)
Log Message:
-----------
Fix wrong unified weight paint value version patch, was doing incorrect version check.
Fix #31209: weight paint sample & fill not using correct brush/unified value.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_blender.h
    trunk/blender/source/blender/blenkernel/BKE_brush.h
    trunk/blender/source/blender/blenkernel/intern/brush.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c

Modified: trunk/blender/source/blender/blenkernel/BKE_blender.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_blender.h	2012-05-02 15:47:15 UTC (rev 46194)
+++ trunk/blender/source/blender/blenkernel/BKE_blender.h	2012-05-02 16:05:25 UTC (rev 46195)
@@ -42,7 +42,7 @@
  * and keep comment above the defines.
  * Use STRINGIFY() rather than defining with quotes */
 #define BLENDER_VERSION			263
-#define BLENDER_SUBVERSION		2
+#define BLENDER_SUBVERSION		3
 
 #define BLENDER_MINVERSION		250
 #define BLENDER_MINSUBVERSION	0

Modified: trunk/blender/source/blender/blenkernel/BKE_brush.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_brush.h	2012-05-02 15:47:15 UTC (rev 46194)
+++ trunk/blender/source/blender/blenkernel/BKE_brush.h	2012-05-02 16:05:25 UTC (rev 46195)
@@ -100,6 +100,7 @@
 
 float brush_alpha(const struct Scene *scene, struct Brush *brush);
 float brush_weight(const Scene *scene, struct Brush *brush);
+void brush_set_weight(const Scene *scene, struct Brush *brush, float value);
 
 int  brush_use_locked_size(const struct Scene *scene, struct Brush *brush);
 int  brush_use_alpha_pressure(const struct Scene *scene, struct Brush *brush);

Modified: trunk/blender/source/blender/blenkernel/intern/brush.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/brush.c	2012-05-02 15:47:15 UTC (rev 46194)
+++ trunk/blender/source/blender/blenkernel/intern/brush.c	2012-05-02 16:05:25 UTC (rev 46195)
@@ -718,6 +718,16 @@
 	return (ups->flag & UNIFIED_PAINT_WEIGHT) ? ups->weight : brush->weight;
 }
 
+void brush_set_weight(const Scene *scene, Brush *brush, float value)
+{
+	UnifiedPaintSettings *ups = &scene->toolsettings->unified_paint_settings;
+
+	if(ups->flag & UNIFIED_PAINT_WEIGHT)
+		ups->weight = value;
+	else
+		brush->weight = value;
+}
+
 /* scale unprojected radius to reflect a change in the brush's 2D size */
 void brush_scale_unprojected_radius(float *unprojected_radius,
 									int new_brush_size,

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2012-05-02 15:47:15 UTC (rev 46194)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2012-05-02 16:05:25 UTC (rev 46195)
@@ -13318,7 +13318,7 @@
 		}
 	}
 
-	if (main->versionfile <= 263 && main->subversionfile == 0) {
+	if (main->versionfile < 263 || (main->versionfile == 263 && main->subversionfile < 3)) {
 		Scene *scene;
 		Brush *brush;
 

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c	2012-05-02 15:47:15 UTC (rev 46194)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c	2012-05-02 16:05:25 UTC (rev 46195)
@@ -1025,7 +1025,9 @@
 			else {
 				MPoly *mp = ((MPoly *)me->mpoly) + (index - 1);
 				const int vgroup_active = vc.obact->actdef - 1;
+				Scene *scene = vc.scene;
 				ToolSettings *ts = vc.scene->toolsettings;
+				Brush *brush = paint_brush(&ts->wpaint->paint);
 				float mval_f[2];
 				int v_idx_best = -1;
 				int fidx;
@@ -1048,7 +1050,8 @@
 				} while (fidx--);
 
 				if (v_idx_best != -1) { /* should always be valid */
-					ts->vgroup_weight = defvert_find_weight(&me->dvert[v_idx_best], vgroup_active);
+					float vgroup_weight = defvert_find_weight(&me->dvert[v_idx_best], vgroup_active);
+					brush_set_weight(scene, brush, vgroup_weight);
 					change = TRUE;
 				}
 			}
@@ -2505,8 +2508,11 @@
 {
 	struct Scene *scene = CTX_data_scene(C);
 	Object *obact = CTX_data_active_object(C);
+	ToolSettings *ts = CTX_data_tool_settings(C);
+	Brush *brush = paint_brush(&ts->wpaint->paint);
+	float vgroup_weight = brush_weight(scene, brush);
 
-	wpaint_fill(scene->toolsettings->wpaint, obact, scene->toolsettings->vgroup_weight);
+	wpaint_fill(scene->toolsettings->wpaint, obact, vgroup_weight);
 	ED_region_tag_redraw(CTX_wm_region(C)); /* XXX - should redraw all 3D views */
 	return OPERATOR_FINISHED;
 }




More information about the Bf-blender-cvs mailing list