Revision: 50112
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50112
Author:   campbellbarton
Date:     2012-08-22 11:58:59 +0000 (Wed, 22 Aug 2012)
Log Message:
-----------
add new mask blend mode: 'Merge Subtract'. gives better results when using 
feather on overlapping masks when one subtracts from another.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/mask.c
    trunk/blender/source/blender/blenkernel/intern/mask_rasterize.c
    trunk/blender/source/blender/makesdna/DNA_mask_types.h
    trunk/blender/source/blender/makesrna/intern/rna_mask.c

Modified: trunk/blender/source/blender/blenkernel/intern/mask.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mask.c       2012-08-22 
11:18:37 UTC (rev 50111)
+++ trunk/blender/source/blender/blenkernel/intern/mask.c       2012-08-22 
11:58:59 UTC (rev 50112)
@@ -158,7 +158,7 @@
 
        mask->masklay_tot++;
 
-       masklay->blend = MASK_BLEND_MERGE;
+       masklay->blend = MASK_BLEND_MERGE_ADD;
        masklay->alpha = 1.0f;
 
        return masklay;

Modified: trunk/blender/source/blender/blenkernel/intern/mask_rasterize.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mask_rasterize.c     
2012-08-22 11:18:37 UTC (rev 50111)
+++ trunk/blender/source/blender/blenkernel/intern/mask_rasterize.c     
2012-08-22 11:58:59 UTC (rev 50112)
@@ -1282,9 +1282,12 @@
                }
 
                switch (layer->blend) {
-                       case MASK_BLEND_MERGE:
+                       case MASK_BLEND_MERGE_ADD:
                                value += value_layer * (1.0f - value);
                                break;
+                       case MASK_BLEND_MERGE_SUBTRACT:
+                               value -= value_layer * value;
+                               break;
                        case MASK_BLEND_ADD:
                                value += value_layer;
                                break;

Modified: trunk/blender/source/blender/makesdna/DNA_mask_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_mask_types.h      2012-08-22 
11:18:37 UTC (rev 50111)
+++ trunk/blender/source/blender/makesdna/DNA_mask_types.h      2012-08-22 
11:58:59 UTC (rev 50112)
@@ -168,14 +168,15 @@
 
 /* masklay->blend */
 enum {
-       MASK_BLEND_ADD         = 0,
-       MASK_BLEND_SUBTRACT    = 1,
-       MASK_BLEND_LIGHTEN     = 2,
-       MASK_BLEND_DARKEN      = 3,
-       MASK_BLEND_MUL         = 4,
-       MASK_BLEND_REPLACE     = 5,
-       MASK_BLEND_DIFFERENCE  = 6,
-       MASK_BLEND_MERGE       = 7
+       MASK_BLEND_ADD             = 0,
+       MASK_BLEND_SUBTRACT        = 1,
+       MASK_BLEND_LIGHTEN         = 2,
+       MASK_BLEND_DARKEN          = 3,
+       MASK_BLEND_MUL             = 4,
+       MASK_BLEND_REPLACE         = 5,
+       MASK_BLEND_DIFFERENCE      = 6,
+       MASK_BLEND_MERGE_ADD       = 7,
+       MASK_BLEND_MERGE_SUBTRACT  = 8
 };
 
 /* masklay->blend_flag */

Modified: trunk/blender/source/blender/makesrna/intern/rna_mask.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_mask.c     2012-08-22 
11:18:37 UTC (rev 50111)
+++ trunk/blender/source/blender/makesrna/intern/rna_mask.c     2012-08-22 
11:58:59 UTC (rev 50112)
@@ -580,7 +580,8 @@
 static void rna_def_mask_layer(BlenderRNA *brna)
 {
        static EnumPropertyItem masklay_blend_mode_items[] = {
-               {MASK_BLEND_MERGE, "MERGE", 0, "Merge", ""},
+               {MASK_BLEND_MERGE_ADD, "MERGE_ADD", 0, "Merge Add", ""},
+               {MASK_BLEND_MERGE_SUBTRACT, "MERGE_SUBTRACT", 0, "Merge 
Subtract", ""},
                {MASK_BLEND_ADD, "ADD", 0, "Add", ""},
                {MASK_BLEND_SUBTRACT, "SUBTRACT", 0, "Subtract", ""},
                {MASK_BLEND_LIGHTEN, "LIGHTEN", 0, "Lighten", ""},

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to