[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49328] trunk/blender/source/blender: patch [#32195] MASKS: Canonical Porter Duff algorithm for merge missing.

Campbell Barton ideasman42 at gmail.com
Sat Jul 28 13:36:01 CEST 2012


Revision: 49328
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49328
Author:   campbellbarton
Date:     2012-07-28 11:36:01 +0000 (Sat, 28 Jul 2012)
Log Message:
-----------
patch [#32195] MASKS: Canonical Porter Duff algorithm for merge missing.
from Troy Sobotka (sobotka)

This gives nicer blending then 'ADD', setting as default for new masks.

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-07-28 10:23:42 UTC (rev 49327)
+++ trunk/blender/source/blender/blenkernel/intern/mask.c	2012-07-28 11:36:01 UTC (rev 49328)
@@ -156,6 +156,7 @@
 
 	mask->masklay_tot++;
 
+	masklay->blend = MASK_BLEND_MERGE;
 	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-07-28 10:23:42 UTC (rev 49327)
+++ trunk/blender/source/blender/blenkernel/intern/mask_rasterize.c	2012-07-28 11:36:01 UTC (rev 49328)
@@ -1251,6 +1251,9 @@
 		}
 
 		switch (layer->blend) {
+			case MASK_BLEND_MERGE:
+				value += value_layer * (1.0f - 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-07-28 10:23:42 UTC (rev 49327)
+++ trunk/blender/source/blender/makesdna/DNA_mask_types.h	2012-07-28 11:36:01 UTC (rev 49328)
@@ -173,7 +173,8 @@
 	MASK_BLEND_DARKEN      = 3,
 	MASK_BLEND_MUL         = 4,
 	MASK_BLEND_REPLACE     = 5,
-	MASK_BLEND_DIFFERENCE  = 6
+	MASK_BLEND_DIFFERENCE  = 6,
+	MASK_BLEND_MERGE       = 7
 };
 
 /* masklay->blend_flag */

Modified: trunk/blender/source/blender/makesrna/intern/rna_mask.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_mask.c	2012-07-28 10:23:42 UTC (rev 49327)
+++ trunk/blender/source/blender/makesrna/intern/rna_mask.c	2012-07-28 11:36:01 UTC (rev 49328)
@@ -573,6 +573,7 @@
 static void rna_def_mask_layer(BlenderRNA *brna)
 {
 	static EnumPropertyItem masklay_blend_mode_items[] = {
+		{MASK_BLEND_MERGE, "MERGE", 0, "Merge", ""},
 		{MASK_BLEND_ADD, "ADD", 0, "Add", ""},
 		{MASK_BLEND_SUBTRACT, "SUBTRACT", 0, "Subtract", ""},
 		{MASK_BLEND_LIGHTEN, "LIGHTEN", 0, "Lighten", ""},




More information about the Bf-blender-cvs mailing list