[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32860] trunk/blender/source/blender: workaround [#24392] 2d Image paint editor: no clone/smear/soften tools etc

Campbell Barton ideasman42 at gmail.com
Wed Nov 3 22:23:02 CET 2010


Revision: 32860
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32860
Author:   campbellbarton
Date:     2010-11-03 22:23:02 +0100 (Wed, 03 Nov 2010)

Log Message:
-----------
workaround [#24392] 2d Image paint editor: no clone/smear/soften tools etc
the brush system matches the brush mode with the object mode, but this doesn't work for 2D image view paint.
since the poll() function doesnt have access to the context, for now just check if no paint modes are active, default to texture paint.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/brush.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/editors/space_info/info_stats.c
    trunk/blender/source/blender/editors/transform/transform_manipulator.c
    trunk/blender/source/blender/editors/transform/transform_orientations.c
    trunk/blender/source/blender/makesdna/DNA_object_types.h
    trunk/blender/source/blender/makesrna/intern/rna_sculpt_paint.c

Modified: trunk/blender/source/blender/blenkernel/intern/brush.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/brush.c	2010-11-03 21:20:39 UTC (rev 32859)
+++ trunk/blender/source/blender/blenkernel/intern/brush.c	2010-11-03 21:23:02 UTC (rev 32860)
@@ -67,7 +67,7 @@
 	brush->blend = 0;
 	brush->flag = 0;
 
-	brush->ob_mode = (OB_MODE_SCULPT|OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT);
+	brush->ob_mode = OB_MODE_ALL_PAINT;
 
 	/* BRUSH SCULPT TOOL SETTINGS */
 	brush->size= 35; /* radius of the brush in pixels */

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2010-11-03 21:20:39 UTC (rev 32859)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2010-11-03 21:23:02 UTC (rev 32860)
@@ -11124,7 +11124,7 @@
 		Brush *br;
 		for(br= main->brush.first; br; br= br->id.next) {
 			if(br->ob_mode==0)
-				br->ob_mode= (OB_MODE_SCULPT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT|OB_MODE_VERTEX_PAINT);
+				br->ob_mode= OB_MODE_ALL_PAINT;
 		}
 		
 	}

Modified: trunk/blender/source/blender/editors/space_info/info_stats.c
===================================================================
--- trunk/blender/source/blender/editors/space_info/info_stats.c	2010-11-03 21:20:39 UTC (rev 32859)
+++ trunk/blender/source/blender/editors/space_info/info_stats.c	2010-11-03 21:23:02 UTC (rev 32860)
@@ -339,7 +339,7 @@
 		/* Pose Mode */
 		stats_object_pose(ob, &stats);
 	}
-	else if(ob && (ob->flag & (OB_MODE_SCULPT|OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT))) {
+	else if(ob && (ob->flag & OB_MODE_ALL_PAINT)) {
 		/* Sculpt and Paint Mode */
 		stats_object_paint(ob, &stats);
 	}

Modified: trunk/blender/source/blender/editors/transform/transform_manipulator.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_manipulator.c	2010-11-03 21:20:39 UTC (rev 32859)
+++ trunk/blender/source/blender/editors/transform/transform_manipulator.c	2010-11-03 21:23:02 UTC (rev 32860)
@@ -443,7 +443,7 @@
 			mul_m4_v3(ob->obmat, scene->twmax);
 		}
 	}
-	else if(ob && (ob->mode & (OB_MODE_SCULPT|OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT))) {
+	else if(ob && (ob->mode & OB_MODE_ALL_PAINT)) {
 		;
 	}
 	else if(ob && ob->mode & OB_MODE_PARTICLE_EDIT) {

Modified: trunk/blender/source/blender/editors/transform/transform_orientations.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_orientations.c	2010-11-03 21:20:39 UTC (rev 32859)
+++ trunk/blender/source/blender/editors/transform/transform_orientations.c	2010-11-03 21:23:02 UTC (rev 32860)
@@ -884,7 +884,7 @@
 			result = ORIENTATION_EDGE;
 		}
 	}
-	else if(ob && (ob->mode & (OB_MODE_SCULPT|OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT|OB_MODE_PARTICLE_EDIT)))
+	else if(ob && (ob->mode & (OB_MODE_ALL_PAINT|OB_MODE_PARTICLE_EDIT)))
 	{
 	}
 	else {

Modified: trunk/blender/source/blender/makesdna/DNA_object_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_object_types.h	2010-11-03 21:20:39 UTC (rev 32859)
+++ trunk/blender/source/blender/makesdna/DNA_object_types.h	2010-11-03 21:23:02 UTC (rev 32860)
@@ -557,6 +557,9 @@
 	OB_MODE_POSE = 64
 } ObjectMode;
 
+/* any mode where the brush system is used */
+#define OB_MODE_ALL_PAINT (OB_MODE_SCULPT|OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT)
+
 #define MAX_DUPLI_RECUR 8
 
 #ifdef __cplusplus

Modified: trunk/blender/source/blender/makesrna/intern/rna_sculpt_paint.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_sculpt_paint.c	2010-11-03 21:20:39 UTC (rev 32859)
+++ trunk/blender/source/blender/makesrna/intern/rna_sculpt_paint.c	2010-11-03 21:23:02 UTC (rev 32860)
@@ -162,8 +162,19 @@
 	Scene *scene= (Scene *)ptr->id.data;
 	Object *ob = OBACT;
 	Brush *brush= value.id.data;
-	return ob->mode & brush->ob_mode;
+	
+	/* weak, for object painting we need to check against the object mode
+	 * but for 2D view image painting we always want texture brushes 
+	 * this is not quite correct since you could be in object weightpaint
+	 * mode at the same time as the 2D image view, but for now its *good enough* */
+	if(ob->mode & OB_MODE_ALL_PAINT) {
+		return ob->mode & brush->ob_mode;
+	}
+	else {
+		return OB_MODE_TEXTURE_PAINT & brush->ob_mode;
+	}
 }
+
 #else
 
 static void rna_def_paint(BlenderRNA *brna)





More information about the Bf-blender-cvs mailing list