[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56091] trunk/blender: Option to hide overlay during a stroke.

Antony Riakiotakis kalast at gmail.com
Tue Apr 16 17:02:42 CEST 2013


Revision: 56091
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56091
Author:   psy-fi
Date:     2013-04-16 15:02:41 +0000 (Tue, 16 Apr 2013)
Log Message:
-----------
Option to hide overlay during a stroke. To enable, press the brush icon
next to the overlay alpha.

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_ui/space_image.py
    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_image.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_image.py	2013-04-16 14:57:02 UTC (rev 56090)
+++ trunk/blender/release/scripts/startup/bl_ui/space_image.py	2013-04-16 15:02:41 UTC (rev 56091)
@@ -734,13 +734,15 @@
 
         row = col.row()
         if brush.use_texture_overlay:
-            row.prop(brush, "use_texture_overlay", toggle=True, text="", icon='RESTRICT_VIEW_OFF')
+            row.prop(brush, "use_primary_overlay", toggle=True, text="", icon='RESTRICT_VIEW_OFF')
         else:
-            row.prop(brush, "use_texture_overlay", toggle=True, text="", icon='RESTRICT_VIEW_ON')
+            row.prop(brush, "use_primary_overlay", toggle=True, text="", icon='RESTRICT_VIEW_ON')
         sub = row.row()
         sub.prop(brush, "texture_overlay_alpha", text="Alpha")
+        sub.prop(brush, "cursor_overlay_override", toggle=True, text="", icon='BRUSH_DATA')
 
 
+
 class IMAGE_PT_tools_mask_texture(BrushButtonsPanel, Panel):
     bl_label = "Texture Mask"
     bl_options = {'DEFAULT_CLOSED'}
@@ -756,6 +758,15 @@
         col.template_ID_preview(brush, "mask_texture", new="texture.new", rows=3, cols=8)
 
         brush_mask_texture_settings(col, brush)
+        if tex_slot_alpha.map_mode != 'STENCIL':
+            if brush.use_secondary_overlay:
+                row.prop(brush, "use_secondary_overlay", toggle=True, text="", icon='RESTRICT_VIEW_OFF')
+            else:
+                row.prop(brush, "use_secondary_overlay", toggle=True, text="", icon='RESTRICT_VIEW_ON')
+        
+        sub = row.row()
+        sub.prop(brush, "texture_overlay_alpha", text="Alpha")
+        sub.prop(brush, "cursor_overlay_override", toggle=True, text="", icon='BRUSH_DATA')
 
 
 class IMAGE_PT_tools_brush_tool(BrushButtonsPanel, Panel):

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-16 14:57:02 UTC (rev 56090)
+++ trunk/blender/release/scripts/startup/bl_ui/space_view3d_toolbar.py	2013-04-16 15:02:41 UTC (rev 56091)
@@ -767,12 +767,13 @@
         row = col.row()
         if tex_slot.map_mode != 'STENCIL':
             if brush.use_texture_overlay:
-                row.prop(brush, "use_texture_overlay", toggle=True, text="", icon='RESTRICT_VIEW_OFF')
+                row.prop(brush, "use_primary_overlay", toggle=True, text="", icon='RESTRICT_VIEW_OFF')
             else:
-                row.prop(brush, "use_texture_overlay", toggle=True, text="", icon='RESTRICT_VIEW_ON')
+                row.prop(brush, "use_primary_overlay", toggle=True, text="", icon='RESTRICT_VIEW_ON')
         
         sub = row.row()
         sub.prop(brush, "texture_overlay_alpha", text="Alpha")
+        sub.prop(brush, "cursor_overlay_override", toggle=True, text="", icon='BRUSH_DATA')
 
 
 class VIEW3D_PT_tools_mask_texture(View3DPanel, Panel):
@@ -796,8 +797,23 @@
         col.template_ID_preview(brush, "mask_texture", new="texture.new", rows=3, cols=8)
 
         brush_mask_texture_settings(col, brush)
+ 
+        col = layout.column(align=True)
+        col.active = brush.brush_capabilities.has_overlay
+        col.label(text="Overlay:")
 
+        row = col.row()
+        if tex_slot_alpha.map_mode != 'STENCIL':
+            if brush.use_secondary_overlay:
+                row.prop(brush, "use_secondary_overlay", toggle=True, text="", icon='RESTRICT_VIEW_OFF')
+            else:
+                row.prop(brush, "use_secondary_overlay", toggle=True, text="", icon='RESTRICT_VIEW_ON')
+        
+        sub = row.row()
+        sub.prop(brush, "texture_overlay_alpha", text="Alpha")
+        sub.prop(brush, "cursor_overlay_override", toggle=True, text="", icon='BRUSH_DATA')
 
+
 class VIEW3D_PT_tools_brush_stroke(Panel, View3DPaintPanel):
     bl_label = "Stroke"
     bl_options = {'DEFAULT_CLOSED'}

Modified: trunk/blender/source/blender/blenkernel/BKE_paint.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_paint.h	2013-04-16 14:57:02 UTC (rev 56090)
+++ trunk/blender/source/blender/blenkernel/BKE_paint.h	2013-04-16 15:02:41 UTC (rev 56091)
@@ -68,16 +68,22 @@
 } PaintMode;
 
 /* overlay invalidation */
-#define PAINT_INVALID_OVERLAY_TEXTURE_PRIMARY 1
-#define PAINT_INVALID_OVERLAY_TEXTURE_SECONDARY 2
-#define PAINT_INVALID_OVERLAY_CURVE 4
+typedef enum OverlayControlFlags {
+	PAINT_INVALID_OVERLAY_TEXTURE_PRIMARY = 1,
+	PAINT_INVALID_OVERLAY_TEXTURE_SECONDARY = (1 << 2),
+	PAINT_INVALID_OVERLAY_CURVE = (1 << 2),
+	PAINT_OVERLAY_OVERRIDE = (1 << 3)
+} OverlayControlFlags;
 
 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);
-int BKE_paint_get_overlay_flags (void);
+OverlayControlFlags BKE_paint_get_overlay_flags (void);
 void BKE_paint_reset_overlay_invalid (void);
+void BKE_paint_set_overlay_override (bool flag);
+bool BKE_paint_get_overlay_override (void);
 
+
 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-16 14:57:02 UTC (rev 56090)
+++ trunk/blender/source/blender/blenkernel/intern/brush.c	2013-04-16 15:02:41 UTC (rev 56091)
@@ -274,6 +274,11 @@
 	else if (!(br->flag & _f) && (def.flag & _f))	\
 		printf("br->flag &= ~" #_f ";\n")
 	
+#define BR_TEST_FLAG_OVERLAY(_f)							\
+	if ((br->overlay_flags & _f) && !(def.overlay_flags & _f))		\
+		printf("br->overlay_flags |= " #_f ";\n");			\
+	else if (!(br->overlay_flags & _f) && (def.overlay_flags & _f))	\
+		printf("br->overlay_flags &= ~" #_f ";\n")
 
 	/* print out any non-default brush state */
 	BR_TEST(normal_weight, f);
@@ -301,7 +306,6 @@
 	BR_TEST_FLAG(BRUSH_SPACE_ATTEN);
 	BR_TEST_FLAG(BRUSH_ADAPTIVE_SPACE);
 	BR_TEST_FLAG(BRUSH_LOCK_SIZE);
-	BR_TEST_FLAG(BRUSH_TEXTURE_OVERLAY);
 	BR_TEST_FLAG(BRUSH_EDGE_TO_EDGE);
 	BR_TEST_FLAG(BRUSH_RESTORE_MESH);
 	BR_TEST_FLAG(BRUSH_INVERSE_SMOOTH_PRESSURE);
@@ -310,6 +314,11 @@
 	BR_TEST_FLAG(BRUSH_FRONTFACE);
 	BR_TEST_FLAG(BRUSH_CUSTOM_ICON);
 
+	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(jitter, f);
 	BR_TEST(spacing, d);
 	BR_TEST(smooth_stroke_radius, d);

Modified: trunk/blender/source/blender/blenkernel/intern/paint.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/paint.c	2013-04-16 14:57:02 UTC (rev 56090)
+++ trunk/blender/source/blender/blenkernel/intern/paint.c	2013-04-16 15:02:41 UTC (rev 56091)
@@ -57,7 +57,7 @@
 const char PAINT_CURSOR_WEIGHT_PAINT[3] = {200, 200, 255};
 const char PAINT_CURSOR_TEXTURE_PAINT[3] = {255, 255, 255};
 
-static int overlay_flags = 0;
+static OverlayControlFlags overlay_flags = 0;
 
 void BKE_paint_invalidate_overlay_tex (Scene *scene, const Tex *tex)
 {
@@ -89,11 +89,25 @@
 	                  PAINT_INVALID_OVERLAY_CURVE);
 }
 
-int BKE_paint_get_overlay_flags(void)
+OverlayControlFlags BKE_paint_get_overlay_flags(void)
 {
 	return overlay_flags;
 }
 
+void BKE_paint_set_overlay_override(bool flag)
+{
+	if (flag)
+		overlay_flags |= PAINT_OVERLAY_OVERRIDE;
+	else
+		overlay_flags &= ~PAINT_OVERLAY_OVERRIDE;
+}
+
+bool BKE_paint_get_overlay_override(void)
+{
+	return ((overlay_flags & PAINT_OVERLAY_OVERRIDE) != 0 );
+}
+
+
 void BKE_paint_reset_overlay_invalid(void)
 {
 	overlay_flags &= ~(PAINT_INVALID_OVERLAY_TEXTURE_PRIMARY |

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_cursor.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_cursor.c	2013-04-16 14:57:02 UTC (rev 56090)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_cursor.c	2013-04-16 15:02:41 UTC (rev 56091)
@@ -109,7 +109,7 @@
 	static int old_zoom = -1;
 	static bool old_col = -1;
 
-	int invalid = BKE_paint_get_overlay_flags();
+	OverlayControlFlags overlay_flags = BKE_paint_get_overlay_flags();
 	GLubyte *buffer = NULL;
 
 	int size;
@@ -121,8 +121,8 @@
 	
 	refresh = 
 	    !overlay_texture ||
-	    (invalid & PAINT_INVALID_OVERLAY_TEXTURE_PRIMARY) ||
-	    (invalid & PAINT_INVALID_OVERLAY_CURVE) ||
+	    (overlay_flags & PAINT_INVALID_OVERLAY_TEXTURE_PRIMARY) ||
+	    (overlay_flags & PAINT_INVALID_OVERLAY_CURVE) ||
 	    old_zoom != zoom ||
 	    old_col != col ||
 	    !same_tex_snap(&snap, br, vc);
@@ -406,7 +406,7 @@
 	/* check for overlay mode */
 
 	if (!((brush->mtex.brush_map_mode == MTEX_MAP_MODE_STENCIL && brush->mtex.tex) ||
-	    ((brush->flag & BRUSH_TEXTURE_OVERLAY) &&
+	    ((brush->overlay_flags & BRUSH_OVERLAY_PRIMARY) &&
 	    ELEM(brush->mtex.brush_map_mode, MTEX_MAP_MODE_VIEW, MTEX_MAP_MODE_TILED))))
 	{
 		return;
@@ -591,7 +591,8 @@
 		ups->brush_rotation = 0.0;
 
 	/* draw overlay */
-	paint_draw_alpha_overlay(ups, brush, &vc, x, y, zoomx, mode);
+	if (!BKE_paint_get_overlay_override())
+		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-16 14:57:02 UTC (rev 56090)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_stroke.c	2013-04-16 15:02:41 UTC (rev 56091)
@@ -411,7 +411,7 @@
 {
 	PaintStroke *stroke = MEM_callocN(sizeof(PaintStroke), "PaintStroke");
 
-	stroke->brush = BKE_paint_brush(BKE_paint_get_active_from_context(C));
+	Brush *br = stroke->brush = BKE_paint_brush(BKE_paint_get_active_from_context(C));
 	view3d_set_viewcontext(C, &stroke->vc);
 	if (stroke->vc.v3d)

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list