[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34065] trunk/blender/source/blender: Fix #25483: Brush appearance color

Sergey Sharybin g.ulairi at gmail.com
Tue Jan 4 15:46:30 CET 2011


Revision: 34065
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=34065
Author:   nazgul
Date:     2011-01-04 15:46:29 +0100 (Tue, 04 Jan 2011)

Log Message:
-----------
Fix #25483: Brush appearance color

Set special brush flag when inversion stroke was started, not wery nice, but
we can't make better with current events system implementation.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/sculpt_paint/paint_stroke.c
    trunk/blender/source/blender/editors/sculpt_paint/sculpt.c
    trunk/blender/source/blender/makesdna/DNA_brush_types.h

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_stroke.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_stroke.c	2011-01-04 14:37:21 UTC (rev 34064)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_stroke.c	2011-01-04 14:46:29 UTC (rev 34065)
@@ -591,7 +591,7 @@
 			brush_set_size(brush, pixel_radius);
 
 		// XXX: no way currently to know state of pen flip or invert key modifier without starting a stroke
-		flip = 1;
+		flip = brush->flag & BRUSH_INVERTED ? -1 : 1;
 
 		sign = flip * ((brush->flag & BRUSH_DIR_IN)? -1 : 1);
 

Modified: trunk/blender/source/blender/editors/sculpt_paint/sculpt.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/sculpt.c	2011-01-04 14:37:21 UTC (rev 34064)
+++ trunk/blender/source/blender/editors/sculpt_paint/sculpt.c	2011-01-04 14:46:29 UTC (rev 34065)
@@ -2904,6 +2904,11 @@
 	cache->invert = mode == WM_BRUSHSTROKE_INVERT;
 	cache->alt_smooth = mode == WM_BRUSHSTROKE_SMOOTH;
 
+	/* not very nice, but with current events system implementation
+	   we can't handle brush appearance inversion hotkey separately (sergey) */
+	if(cache->invert) brush->flag |= BRUSH_INVERTED;
+	else brush->flag &= ~BRUSH_INVERTED;
+
 	/* Alt-Smooth */
 	if (ss->cache->alt_smooth) {
 		Paint *p= &sd->paint;
@@ -3452,14 +3457,17 @@
 
 	/* Finished */
 	if(ss->cache) {
+		Brush *brush= paint_brush(&sd->paint);
+		brush->flag &= ~BRUSH_INVERTED;
+
 		sculpt_stroke_modifiers_check(C, ss);
 
 		/* Alt-Smooth */
 		if (ss->cache->alt_smooth) {
 			Paint *p= &sd->paint;
-			Brush *br= (Brush *)find_id("BR", ss->cache->saved_active_brush_name);
-			if(br) {
-				paint_brush_set(p, br);
+			brush= (Brush *)find_id("BR", ss->cache->saved_active_brush_name);
+			if(brush) {
+				paint_brush_set(p, brush);
 			}
 		}
 

Modified: trunk/blender/source/blender/makesdna/DNA_brush_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_brush_types.h	2011-01-04 14:37:21 UTC (rev 34064)
+++ trunk/blender/source/blender/makesdna/DNA_brush_types.h	2011-01-04 14:46:29 UTC (rev 34065)
@@ -130,6 +130,10 @@
 #define BRUSH_FRONTFACE (1<<27)
 #define BRUSH_CUSTOM_ICON (1<<28)
 
+/* temporary flag which sets up autmatically for correct
+   brush drawing when inverted modal operator is running */
+#define BRUSH_INVERTED (1<<29)
+
 /* Brush.sculpt_tool */
 #define SCULPT_TOOL_DRAW        1
 #define SCULPT_TOOL_SMOOTH      2





More information about the Bf-blender-cvs mailing list