[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56231] trunk/blender: Allow hiding separate hiding of overlays on stroke.

Antony Riakiotakis kalast at gmail.com
Tue Apr 23 02:32:54 CEST 2013


Revision: 56231
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56231
Author:   psy-fi
Date:     2013-04-23 00:32:51 +0000 (Tue, 23 Apr 2013)
Log Message:
-----------
Allow hiding separate hiding of overlays on stroke.

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_ui/space_view3d_toolbar.py
    trunk/blender/source/blender/blenkernel/BKE_paint.h
    trunk/blender/source/blender/blenkernel/intern/brush.c
    trunk/blender/source/blender/blenkernel/intern/paint.c
    trunk/blender/source/blender/editors/sculpt_paint/paint_cursor.c
    trunk/blender/source/blender/editors/sculpt_paint/paint_stroke.c
    trunk/blender/source/blender/makesdna/DNA_brush_types.h
    trunk/blender/source/blender/makesrna/intern/rna_brush.c

Modified: trunk/blender/release/scripts/startup/bl_ui/space_view3d_toolbar.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_view3d_toolbar.py	2013-04-23 00:06:22 UTC (rev 56230)
+++ trunk/blender/release/scripts/startup/bl_ui/space_view3d_toolbar.py	2013-04-23 00:32:51 UTC (rev 56231)
@@ -814,7 +814,7 @@
         
         sub = row.row()
         sub.prop(brush, "texture_overlay_alpha", text="Alpha")
-        sub.prop(brush, "cursor_overlay_override", toggle=True, text="", icon='BRUSH_DATA')
+        sub.prop(brush, "primary_overlay_override", toggle=True, text="", icon='BRUSH_DATA')
 
 
 class VIEW3D_PT_tools_mask_texture(View3DPanel, Panel):
@@ -852,7 +852,7 @@
         
         sub = row.row()
         sub.prop(brush, "mask_overlay_alpha", text="Alpha")
-        sub.prop(brush, "cursor_overlay_override", toggle=True, text="", icon='BRUSH_DATA')
+        sub.prop(brush, "secondary_overlay_override", toggle=True, text="", icon='BRUSH_DATA')
 
 
 class VIEW3D_PT_tools_brush_stroke(Panel, View3DPaintPanel):

Modified: trunk/blender/source/blender/blenkernel/BKE_paint.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_paint.h	2013-04-23 00:06:22 UTC (rev 56230)
+++ trunk/blender/source/blender/blenkernel/BKE_paint.h	2013-04-23 00:32:51 UTC (rev 56231)
@@ -52,6 +52,8 @@
 struct ImagePool;
 struct UnifiedPaintSettings;
 
+enum OverlayFlags;
+
 extern const char PAINT_CURSOR_SCULPT[3];
 extern const char PAINT_CURSOR_VERTEX_PAINT[3];
 extern const char PAINT_CURSOR_WEIGHT_PAINT[3];
@@ -72,18 +74,22 @@
 	PAINT_INVALID_OVERLAY_TEXTURE_PRIMARY = 1,
 	PAINT_INVALID_OVERLAY_TEXTURE_SECONDARY = (1 << 2),
 	PAINT_INVALID_OVERLAY_CURVE = (1 << 3),
-	PAINT_OVERLAY_OVERRIDE = (1 << 4)
+	PAINT_OVERLAY_OVERRIDE_CURSOR = (1 << 4),
+	PAINT_OVERLAY_OVERRIDE_PRIMARY = (1 << 5),
+	PAINT_OVERLAY_OVERRIDE_SECONDARY = (1 << 6)
 } OverlayControlFlags;
 
+#define PAINT_OVERRIDE_MASK (PAINT_OVERLAY_OVERRIDE_SECONDARY | \
+						     PAINT_OVERLAY_OVERRIDE_PRIMARY | \
+						     PAINT_OVERLAY_OVERRIDE_CURSOR)
+
 void BKE_paint_invalidate_overlay_tex(struct Scene *scene, const struct Tex *tex);
 void BKE_paint_invalidate_cursor_overlay(struct Scene *scene, struct CurveMapping *curve);
 void BKE_paint_invalidate_overlay_all(void);
 OverlayControlFlags BKE_paint_get_overlay_flags(void);
 void BKE_paint_reset_overlay_invalid(OverlayControlFlags flag);
-void BKE_paint_set_overlay_override(bool flag);
-bool BKE_paint_get_overlay_override(void);
+void BKE_paint_set_overlay_override(enum OverlayFlags flag);
 
-
 void BKE_paint_init(struct Paint *p, const char col[3]);
 void BKE_paint_free(struct Paint *p);
 void BKE_paint_copy(struct Paint *src, struct Paint *tar);

Modified: trunk/blender/source/blender/blenkernel/intern/brush.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/brush.c	2013-04-23 00:06:22 UTC (rev 56230)
+++ trunk/blender/source/blender/blenkernel/intern/brush.c	2013-04-23 00:32:51 UTC (rev 56231)
@@ -320,7 +320,9 @@
 	BR_TEST_FLAG_OVERLAY(BRUSH_OVERLAY_CURSOR);
 	BR_TEST_FLAG_OVERLAY(BRUSH_OVERLAY_PRIMARY);
 	BR_TEST_FLAG_OVERLAY(BRUSH_OVERLAY_SECONDARY);
-	BR_TEST_FLAG_OVERLAY(BRUSH_OVERLAY_OVERRIDE_ON_STROKE);
+	BR_TEST_FLAG_OVERLAY(BRUSH_OVERLAY_CURSOR_OVERRIDE_ON_STROKE);
+	BR_TEST_FLAG_OVERLAY(BRUSH_OVERLAY_PRIMARY_OVERRIDE_ON_STROKE);
+	BR_TEST_FLAG_OVERLAY(BRUSH_OVERLAY_SECONDARY_OVERRIDE_ON_STROKE);
 
 	BR_TEST(jitter, f);
 	BR_TEST(spacing, d);

Modified: trunk/blender/source/blender/blenkernel/intern/paint.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/paint.c	2013-04-23 00:06:22 UTC (rev 56230)
+++ trunk/blender/source/blender/blenkernel/intern/paint.c	2013-04-23 00:32:51 UTC (rev 56231)
@@ -94,20 +94,21 @@
 	return overlay_flags;
 }
 
-void BKE_paint_set_overlay_override(bool flag)
+void BKE_paint_set_overlay_override(OverlayFlags flags)
 {
-	if (flag)
-		overlay_flags |= PAINT_OVERLAY_OVERRIDE;
-	else
-		overlay_flags &= ~PAINT_OVERLAY_OVERRIDE;
+	if (flags & BRUSH_OVERLAY_OVERRIDE_MASK) {
+		if (flags & BRUSH_OVERLAY_CURSOR_OVERRIDE_ON_STROKE)
+			overlay_flags |= PAINT_OVERLAY_OVERRIDE_CURSOR;
+		if (flags & BRUSH_OVERLAY_PRIMARY_OVERRIDE_ON_STROKE)
+			overlay_flags |= PAINT_OVERLAY_OVERRIDE_PRIMARY;
+		if (flags & BRUSH_OVERLAY_SECONDARY_OVERRIDE_ON_STROKE)
+			overlay_flags |= PAINT_OVERLAY_OVERRIDE_SECONDARY;
+	}
+	else {
+		overlay_flags &= ~(PAINT_OVERRIDE_MASK);
+	}
 }
 
-bool BKE_paint_get_overlay_override(void)
-{
-	return ((overlay_flags & PAINT_OVERLAY_OVERRIDE) != 0 );
-}
-
-
 void BKE_paint_reset_overlay_invalid(OverlayControlFlags flag)
 {
 	overlay_flags &= ~(flag);

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_cursor.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_cursor.c	2013-04-23 00:06:22 UTC (rev 56230)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_cursor.c	2013-04-23 00:32:51 UTC (rev 56231)
@@ -706,7 +706,7 @@
 {
 	/* color means that primary brush texture is colured and secondary is used for alpha/mask control */
 	bool col = ELEM3(mode, PAINT_TEXTURE_PROJECTIVE, PAINT_TEXTURE_2D, PAINT_VERTEX) ? true: false;
-
+	OverlayControlFlags flags = BKE_paint_get_overlay_flags();
 	/* save lots of GL state
 	 * TODO: check on whether all of these are needed? */
 	glPushAttrib(GL_COLOR_BUFFER_BIT |
@@ -723,12 +723,17 @@
 
 	/* coloured overlay should be drawn separately */
 	if (col) {
-		paint_draw_tex_overlay(ups, brush, vc, x, y, zoom, true, true);
-		paint_draw_tex_overlay(ups, brush, vc, x, y, zoom, false, false);
-		paint_draw_cursor_overlay(ups, brush, vc, x, y, zoom);
+		if (!(flags & PAINT_OVERLAY_OVERRIDE_PRIMARY))
+			paint_draw_tex_overlay(ups, brush, vc, x, y, zoom, true, true);
+		if (!(flags & PAINT_OVERLAY_OVERRIDE_SECONDARY))
+			paint_draw_tex_overlay(ups, brush, vc, x, y, zoom, false, false);
+		if (!(flags & PAINT_OVERLAY_OVERRIDE_CURSOR))
+			paint_draw_cursor_overlay(ups, brush, vc, x, y, zoom);
 	} else {
-		paint_draw_tex_overlay(ups, brush, vc, x, y, zoom, false, true);
-		paint_draw_cursor_overlay(ups, brush, vc, x, y, zoom);
+		if (!(flags & PAINT_OVERLAY_OVERRIDE_PRIMARY))
+			paint_draw_tex_overlay(ups, brush, vc, x, y, zoom, false, true);
+		if (!(flags & PAINT_OVERLAY_OVERRIDE_CURSOR))
+			paint_draw_cursor_overlay(ups, brush, vc, x, y, zoom);
 	}
 
 	glPopAttrib();
@@ -805,8 +810,7 @@
 		ups->brush_rotation = 0.0;
 
 	/* draw overlay */
-	if (!BKE_paint_get_overlay_override())
-		paint_draw_alpha_overlay(ups, brush, &vc, x, y, zoomx, mode);
+	paint_draw_alpha_overlay(ups, brush, &vc, x, y, zoomx, mode);
 
 	/* TODO: as sculpt and other paint modes are unified, this
 	 * special mode of drawing will go away */

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_stroke.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_stroke.c	2013-04-23 00:06:22 UTC (rev 56230)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_stroke.c	2013-04-23 00:32:51 UTC (rev 56231)
@@ -434,15 +434,14 @@
 	stroke->done = done;
 	stroke->event_type = event_type; /* for modal, return event */
 	
-	if (br->overlay_flags & BRUSH_OVERLAY_OVERRIDE_ON_STROKE)
-		BKE_paint_set_overlay_override(true);
+	BKE_paint_set_overlay_override(br->overlay_flags);
 
 	return stroke;
 }
 
 void paint_stroke_data_free(struct wmOperator *op)
 {
-	BKE_paint_set_overlay_override(false);
+	BKE_paint_set_overlay_override(0);
 	MEM_freeN(op->customdata);
 	op->customdata = NULL;
 }

Modified: trunk/blender/source/blender/makesdna/DNA_brush_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_brush_types.h	2013-04-23 00:06:22 UTC (rev 56230)
+++ trunk/blender/source/blender/makesdna/DNA_brush_types.h	2013-04-23 00:32:51 UTC (rev 56231)
@@ -158,9 +158,15 @@
 	BRUSH_OVERLAY_CURSOR = (1),
 	BRUSH_OVERLAY_PRIMARY = (1 << 1),
 	BRUSH_OVERLAY_SECONDARY = (1 << 2),
-	BRUSH_OVERLAY_OVERRIDE_ON_STROKE = (1 << 3)
+	BRUSH_OVERLAY_CURSOR_OVERRIDE_ON_STROKE = (1 << 3),
+	BRUSH_OVERLAY_PRIMARY_OVERRIDE_ON_STROKE = (1 << 4),
+	BRUSH_OVERLAY_SECONDARY_OVERRIDE_ON_STROKE = (1 << 5)
 } OverlayFlags;
 
+#define BRUSH_OVERLAY_OVERRIDE_MASK (BRUSH_OVERLAY_CURSOR_OVERRIDE_ON_STROKE | \
+									 BRUSH_OVERLAY_PRIMARY_OVERRIDE_ON_STROKE | \
+									 BRUSH_OVERLAY_SECONDARY_OVERRIDE_ON_STROKE)
+
 /* Brush.sculpt_tool */
 typedef enum BrushSculptTool {
 	SCULPT_TOOL_DRAW = 1,

Modified: trunk/blender/source/blender/makesrna/intern/rna_brush.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_brush.c	2013-04-23 00:06:22 UTC (rev 56230)
+++ trunk/blender/source/blender/makesrna/intern/rna_brush.c	2013-04-23 00:32:51 UTC (rev 56231)
@@ -1028,10 +1028,20 @@
 	RNA_def_property_update(prop, 0, "rna_Brush_update");
 
 	prop = RNA_def_property(srna, "cursor_overlay_override", PROP_BOOLEAN, PROP_NONE);
-	RNA_def_property_boolean_sdna(prop, NULL, "overlay_flags", BRUSH_OVERLAY_OVERRIDE_ON_STROKE);
+	RNA_def_property_boolean_sdna(prop, NULL, "overlay_flags", BRUSH_OVERLAY_CURSOR_OVERRIDE_ON_STROKE);
 	RNA_def_property_ui_text(prop, "Override Overlay", "Don't show overlay during a stroke");
 	RNA_def_property_update(prop, 0, "rna_Brush_update");
 
+	prop = RNA_def_property(srna, "primary_overlay_override", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "overlay_flags", BRUSH_OVERLAY_PRIMARY_OVERRIDE_ON_STROKE);
+	RNA_def_property_ui_text(prop, "Override Overlay", "Don't show overlay during a stroke");
+	RNA_def_property_update(prop, 0, "rna_Brush_update");
+
+	prop = RNA_def_property(srna, "secondary_overlay_override", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "overlay_flags", BRUSH_OVERLAY_SECONDARY_OVERRIDE_ON_STROKE);
+	RNA_def_property_ui_text(prop, "Override Overlay", "Don't show overlay during a stroke");
+	RNA_def_property_update(prop, 0, "rna_Brush_update");
+
 	/* paint mode flags */
 	prop = RNA_def_property(srna, "use_paint_sculpt", PROP_BOOLEAN, PROP_NONE);

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list