diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-07-18 17:44:48 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-07-18 17:44:48 +0400 |
commit | c0e004bd61c45811f99a886d8818a7764109c5ec (patch) | |
tree | b0239ed640623a401945ba7e98937dafb3c2223e | |
parent | 73a778a4d020cdafc9855a41a2c9bff421aed0d7 (diff) |
add difference blending mode, also fix error in last commit
-rw-r--r-- | source/blender/blenkernel/intern/mask_rasterize.c | 5 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_mask_types.h | 13 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_mask.c | 1 |
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} }; |