Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-07-18 17:44:48 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-07-18 17:44:48 +0400
commitc0e004bd61c45811f99a886d8818a7764109c5ec (patch)
treeb0239ed640623a401945ba7e98937dafb3c2223e
parent73a778a4d020cdafc9855a41a2c9bff421aed0d7 (diff)
add difference blending mode, also fix error in last commit
-rw-r--r--source/blender/blenkernel/intern/mask_rasterize.c5
-rw-r--r--source/blender/makesdna/DNA_mask_types.h13
-rw-r--r--source/blender/makesrna/intern/rna_mask.c1
3 files changed, 12 insertions, 7 deletions
diff --git a/source/blender/blenkernel/intern/mask_rasterize.c b/source/blender/blenkernel/intern/mask_rasterize.c
index f0fc1e9fbd2..8a5f225bed6 100644
--- a/source/blender/blenkernel/intern/mask_rasterize.c
+++ b/source/blender/blenkernel/intern/mask_rasterize.c
@@ -1235,6 +1235,9 @@ float BKE_maskrasterize_handle_sample(MaskRasterHandle *mr_handle, const float x
case MASK_BLEND_REPLACE:
value = (value * (1.0f - layer->alpha)) + (value_layer * layer->alpha);
break;
+ case MASK_BLEND_DIFFERENCE:
+ value = fabsf(value - value_layer);
+ break;
default: /* same as add */
BLI_assert(0);
value += value_layer;
@@ -1243,7 +1246,7 @@ float BKE_maskrasterize_handle_sample(MaskRasterHandle *mr_handle, const float x
/* clamp after applying each layer so we don't get
* issues subtracting after accumulating over 1.0f */
- return CLAMPIS(value, 0.0f, 1.0f);
+ CLAMP(value, 0.0f, 1.0f);
}
return value;
diff --git a/source/blender/makesdna/DNA_mask_types.h b/source/blender/makesdna/DNA_mask_types.h
index f231cba0df7..60bc3ee0ffc 100644
--- a/source/blender/makesdna/DNA_mask_types.h
+++ b/source/blender/makesdna/DNA_mask_types.h
@@ -167,12 +167,13 @@ enum {
/* 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_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
};
/* masklay->blend_flag */
diff --git a/source/blender/makesrna/intern/rna_mask.c b/source/blender/makesrna/intern/rna_mask.c
index f417458212d..f06855e7344 100644
--- a/source/blender/makesrna/intern/rna_mask.c
+++ b/source/blender/makesrna/intern/rna_mask.c
@@ -585,6 +585,7 @@ static void rna_def_mask_layer(BlenderRNA *brna)
{MASK_BLEND_DARKEN, "DARKEN", 0, "Darken", ""},
{MASK_BLEND_MUL, "MUL", 0, "Multiply", ""},
{MASK_BLEND_REPLACE, "REPLACE", 0, "Replace", ""},
+ {MASK_BLEND_DIFFERENCE, "DIFFERENCE", 0, "Difference", ""},
{0, NULL, 0, NULL, NULL}
};