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. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to