[gimp] app: add GIMP_LAYER_MODE_LUMA_DARKEN_ONLY and _LUMA_DARKEN_ONLY



commit 9397aff96fbed78b079c9c8cf8b417c5cdb91e67
Author: Michael Natterer <mitch gimp org>
Date:   Mon Jan 30 21:43:16 2017 +0100

    app: add GIMP_LAYER_MODE_LUMA_DARKEN_ONLY and _LUMA_DARKEN_ONLY
    
    which are perceptual versions of the new LUMINANCE_DARKEN_ONLY and
    LUMINANCE_LIGHTEN_ONLY modes. Add the new modes to the UI.

 app/core/core-enums.c                              |    4 +++
 app/core/core-enums.h                              |    2 +
 app/core/gimp-layer-modes.c                        |   24 ++++++++++++-------
 .../layer-modes/gimpoperationlayermode.c           |    6 +++-
 app/widgets/gimplayermodecombobox.c                |   12 +++++++--
 libgimp/gimpenums.h                                |    2 +
 tools/pdbgen/enums.pl                              |    8 +++++-
 7 files changed, 42 insertions(+), 16 deletions(-)
---
diff --git a/app/core/core-enums.c b/app/core/core-enums.c
index 973b88c..bf4925d 100644
--- a/app/core/core-enums.c
+++ b/app/core/core-enums.c
@@ -360,7 +360,9 @@ gimp_layer_mode_get_type (void)
     { GIMP_LAYER_MODE_EXCLUSION_LINEAR, "GIMP_LAYER_MODE_EXCLUSION_LINEAR", "exclusion-linear" },
     { GIMP_LAYER_MODE_LINEAR_BURN, "GIMP_LAYER_MODE_LINEAR_BURN", "linear-burn" },
     { GIMP_LAYER_MODE_LINEAR_BURN_LINEAR, "GIMP_LAYER_MODE_LINEAR_BURN_LINEAR", "linear-burn-linear" },
+    { GIMP_LAYER_MODE_LUMA_DARKEN_ONLY, "GIMP_LAYER_MODE_LUMA_DARKEN_ONLY", "luma-darken-only" },
     { GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY, "GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY", 
"luminance-darken-only" },
+    { GIMP_LAYER_MODE_LUMA_LIGHTEN_ONLY, "GIMP_LAYER_MODE_LUMA_LIGHTEN_ONLY", "luma-lighten-only" },
     { GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY, "GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY", 
"luminance-lighten-only" },
     { GIMP_LAYER_MODE_ERASE, "GIMP_LAYER_MODE_ERASE", "erase" },
     { GIMP_LAYER_MODE_REPLACE, "GIMP_LAYER_MODE_REPLACE", "replace" },
@@ -441,7 +443,9 @@ gimp_layer_mode_get_type (void)
     { GIMP_LAYER_MODE_EXCLUSION_LINEAR, NC_("layer-mode", "Exclusion (linear)"), NULL },
     { GIMP_LAYER_MODE_LINEAR_BURN, NC_("layer-mode", "Linear burn"), NULL },
     { GIMP_LAYER_MODE_LINEAR_BURN_LINEAR, NC_("layer-mode", "Linear burn (linear)"), NULL },
+    { GIMP_LAYER_MODE_LUMA_DARKEN_ONLY, NC_("layer-mode", "Luma darken only"), NULL },
     { GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY, NC_("layer-mode", "Luminance darken only"), NULL },
+    { GIMP_LAYER_MODE_LUMA_LIGHTEN_ONLY, NC_("layer-mode", "Luma lighten only"), NULL },
     { GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY, NC_("layer-mode", "Luminance lighten only"), NULL },
     { GIMP_LAYER_MODE_ERASE, NC_("layer-mode", "Erase"), NULL },
     { GIMP_LAYER_MODE_REPLACE, NC_("layer-mode", "Replace"), NULL },
diff --git a/app/core/core-enums.h b/app/core/core-enums.h
index a6f39c5..b027bd5 100644
--- a/app/core/core-enums.h
+++ b/app/core/core-enums.h
@@ -230,7 +230,9 @@ typedef enum
   GIMP_LAYER_MODE_EXCLUSION_LINEAR,      /*< desc="Exclusion (linear)"       >*/
   GIMP_LAYER_MODE_LINEAR_BURN,           /*< desc="Linear burn"              >*/
   GIMP_LAYER_MODE_LINEAR_BURN_LINEAR,    /*< desc="Linear burn (linear)"     >*/
+  GIMP_LAYER_MODE_LUMA_DARKEN_ONLY,      /*< desc="Luma darken only"         >*/
   GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY, /*< desc="Luminance darken only"    >*/
+  GIMP_LAYER_MODE_LUMA_LIGHTEN_ONLY,     /*< desc="Luma lighten only"        >*/
   GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY,/*< desc="Luminance lighten only"   >*/
 
   /*  Internal modes, not available to the PDB  */
diff --git a/app/core/gimp-layer-modes.c b/app/core/gimp-layer-modes.c
index fb48313..9149961 100644
--- a/app/core/gimp-layer-modes.c
+++ b/app/core/gimp-layer-modes.c
@@ -118,8 +118,6 @@ gimp_layer_mode_is_linear (GimpLayerMode  mode)
     case GIMP_LAYER_MODE_SUBTRACT:
     case GIMP_LAYER_MODE_DARKEN_ONLY:
     case GIMP_LAYER_MODE_LIGHTEN_ONLY:
-    case GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY:
-    case GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY:
     case GIMP_LAYER_MODE_HSV_HUE:
     case GIMP_LAYER_MODE_HSV_SATURATION:
     case GIMP_LAYER_MODE_HSV_COLOR:
@@ -136,6 +134,8 @@ gimp_layer_mode_is_linear (GimpLayerMode  mode)
     case GIMP_LAYER_MODE_LINEAR_LIGHT:
     case GIMP_LAYER_MODE_EXCLUSION:
     case GIMP_LAYER_MODE_LINEAR_BURN:
+    case GIMP_LAYER_MODE_LUMA_DARKEN_ONLY:
+    case GIMP_LAYER_MODE_LUMA_LIGHTEN_ONLY:
       return TRUE;
 
     case GIMP_LAYER_MODE_BEHIND_LINEAR:
@@ -157,6 +157,8 @@ gimp_layer_mode_is_linear (GimpLayerMode  mode)
     case GIMP_LAYER_MODE_LINEAR_LIGHT_LINEAR:
     case GIMP_LAYER_MODE_EXCLUSION_LINEAR:
     case GIMP_LAYER_MODE_LINEAR_BURN_LINEAR:
+    case GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY:
+    case GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY:
       return TRUE;
 
     case GIMP_LAYER_MODE_ERASE:
@@ -237,6 +239,8 @@ gimp_layer_mode_get_blend_space (GimpLayerMode  mode)
     case GIMP_LAYER_MODE_LINEAR_LIGHT:
     case GIMP_LAYER_MODE_EXCLUSION:
     case GIMP_LAYER_MODE_LINEAR_BURN:
+    case GIMP_LAYER_MODE_LUMA_DARKEN_ONLY:
+    case GIMP_LAYER_MODE_LUMA_LIGHTEN_ONLY:
       return GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL;
 
     case GIMP_LAYER_MODE_BEHIND_LINEAR:
@@ -248,8 +252,6 @@ gimp_layer_mode_get_blend_space (GimpLayerMode  mode)
     case GIMP_LAYER_MODE_SUBTRACT_LINEAR:
     case GIMP_LAYER_MODE_DARKEN_ONLY:
     case GIMP_LAYER_MODE_LIGHTEN_ONLY:
-    case GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY:
-    case GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY:
     case GIMP_LAYER_MODE_DIVIDE_LINEAR:
     case GIMP_LAYER_MODE_DODGE_LINEAR:
     case GIMP_LAYER_MODE_BURN_LINEAR:
@@ -262,6 +264,8 @@ gimp_layer_mode_get_blend_space (GimpLayerMode  mode)
     case GIMP_LAYER_MODE_LINEAR_LIGHT_LINEAR:
     case GIMP_LAYER_MODE_EXCLUSION_LINEAR:
     case GIMP_LAYER_MODE_LINEAR_BURN_LINEAR:
+    case GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY:
+    case GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY:
       return GIMP_LAYER_COLOR_SPACE_RGB_LINEAR;
 
     case GIMP_LAYER_MODE_ERASE:
@@ -329,8 +333,6 @@ gimp_layer_mode_get_composite_mode (GimpLayerMode  mode)
     case GIMP_LAYER_MODE_SUBTRACT_LINEAR:
     case GIMP_LAYER_MODE_DARKEN_ONLY:
     case GIMP_LAYER_MODE_LIGHTEN_ONLY:
-    case GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY:
-    case GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY:
     case GIMP_LAYER_MODE_HSV_HUE:
     case GIMP_LAYER_MODE_HSV_SATURATION:
     case GIMP_LAYER_MODE_HSV_COLOR:
@@ -359,7 +361,11 @@ gimp_layer_mode_get_composite_mode (GimpLayerMode  mode)
     case GIMP_LAYER_MODE_EXCLUSION_LINEAR:
     case GIMP_LAYER_MODE_LINEAR_BURN:
     case GIMP_LAYER_MODE_LINEAR_BURN_LINEAR:
-      return GIMP_LAYER_COMPOSITE_SRC_ATOP;
+    case GIMP_LAYER_MODE_LUMA_DARKEN_ONLY:
+    case GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY:
+    case GIMP_LAYER_MODE_LUMA_LIGHTEN_ONLY:
+    case GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY:
+       return GIMP_LAYER_COMPOSITE_SRC_ATOP;
 
     case GIMP_LAYER_MODE_ERASE:
     case GIMP_LAYER_MODE_REPLACE:
@@ -685,14 +691,14 @@ gimp_layer_mode_get_for_group (GimpLayerMode       old_mode,
     {
       GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY,
       GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY,
-      GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY,
+      GIMP_LAYER_MODE_LUMA_DARKEN_ONLY,
       -1
     },
 
     {
       GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY,
       GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY,
-      GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY,
+      GIMP_LAYER_MODE_LUMA_LIGHTEN_ONLY,
       -1
     },
 
diff --git a/app/operations/layer-modes/gimpoperationlayermode.c 
b/app/operations/layer-modes/gimpoperationlayermode.c
index 1189f27..9710c5d 100644
--- a/app/operations/layer-modes/gimpoperationlayermode.c
+++ b/app/operations/layer-modes/gimpoperationlayermode.c
@@ -1781,8 +1781,10 @@ static inline GimpBlendFunc gimp_layer_mode_get_blend_fun (GimpLayerMode mode)
     case GIMP_LAYER_MODE_DIFFERENCE:     return blendfun_difference;
     case GIMP_LAYER_MODE_DARKEN_ONLY:    return blendfun_darken_only;
     case GIMP_LAYER_MODE_LIGHTEN_ONLY:   return blendfun_lighten_only;
-    case GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY:  return blendfun_luminance_darken_only;
-    case GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY: return blendfun_luminance_lighten_only;
+    case GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY:
+    case GIMP_LAYER_MODE_LUMA_DARKEN_ONLY:  return blendfun_luminance_darken_only;
+    case GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY:
+    case GIMP_LAYER_MODE_LUMA_LIGHTEN_ONLY: return blendfun_luminance_lighten_only;
     case GIMP_LAYER_MODE_VIVID_LIGHT_LINEAR:
     case GIMP_LAYER_MODE_VIVID_LIGHT:  return blendfun_vivid_light;
     case GIMP_LAYER_MODE_PIN_LIGHT_LINEAR:
diff --git a/app/widgets/gimplayermodecombobox.c b/app/widgets/gimplayermodecombobox.c
index a7d0f89..60c6faf 100644
--- a/app/widgets/gimplayermodecombobox.c
+++ b/app/widgets/gimplayermodecombobox.c
@@ -334,14 +334,16 @@ gimp_layer_mode_combo_box_create_default_model (GimpLayerModeComboBox *combo)
   GtkListStore *store;
 
   store = gimp_enum_store_new_with_values (GIMP_TYPE_LAYER_MODE,
-                                           30,
+                                           32,
                                            GIMP_LAYER_MODE_NORMAL,
                                            GIMP_LAYER_MODE_DISSOLVE,
                                            GIMP_LAYER_MODE_LIGHTEN_ONLY,
+                                           GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY,
                                            GIMP_LAYER_MODE_SCREEN,
                                            GIMP_LAYER_MODE_DODGE,
                                            GIMP_LAYER_MODE_ADDITION,
                                            GIMP_LAYER_MODE_DARKEN_ONLY,
+                                           GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY,
                                            GIMP_LAYER_MODE_MULTIPLY,
                                            GIMP_LAYER_MODE_BURN,
                                            GIMP_LAYER_MODE_OVERLAY,
@@ -419,14 +421,16 @@ gimp_layer_mode_combo_box_create_linear_model (GimpLayerModeComboBox *combo)
   GtkListStore *store;
 
   store = gimp_enum_store_new_with_values (GIMP_TYPE_LAYER_MODE,
-                                           22,
+                                           24,
                                            GIMP_LAYER_MODE_NORMAL_LINEAR,
                                            GIMP_LAYER_MODE_DISSOLVE,
                                            GIMP_LAYER_MODE_LIGHTEN_ONLY,
+                                           GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY,
                                            GIMP_LAYER_MODE_SCREEN_LINEAR,
                                            GIMP_LAYER_MODE_DODGE_LINEAR,
                                            GIMP_LAYER_MODE_ADDITION_LINEAR,
                                            GIMP_LAYER_MODE_DARKEN_ONLY,
+                                           GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY,
                                            GIMP_LAYER_MODE_MULTIPLY_LINEAR,
                                            GIMP_LAYER_MODE_BURN_LINEAR,
                                            GIMP_LAYER_MODE_OVERLAY_LINEAR,
@@ -487,14 +491,16 @@ gimp_layer_mode_combo_box_create_perceptual_model (GimpLayerModeComboBox *combo)
   GtkListStore *store;
 
   store = gimp_enum_store_new_with_values (GIMP_TYPE_LAYER_MODE,
-                                           30,
+                                           32,
                                            GIMP_LAYER_MODE_NORMAL,
                                            GIMP_LAYER_MODE_DISSOLVE,
                                            GIMP_LAYER_MODE_LIGHTEN_ONLY,
+                                           GIMP_LAYER_MODE_LUMA_LIGHTEN_ONLY,
                                            GIMP_LAYER_MODE_SCREEN,
                                            GIMP_LAYER_MODE_DODGE,
                                            GIMP_LAYER_MODE_ADDITION,
                                            GIMP_LAYER_MODE_DARKEN_ONLY,
+                                           GIMP_LAYER_MODE_LUMA_DARKEN_ONLY,
                                            GIMP_LAYER_MODE_MULTIPLY,
                                            GIMP_LAYER_MODE_BURN,
                                            GIMP_LAYER_MODE_OVERLAY,
diff --git a/libgimp/gimpenums.h b/libgimp/gimpenums.h
index f6b3a98..65fb76a 100644
--- a/libgimp/gimpenums.h
+++ b/libgimp/gimpenums.h
@@ -140,7 +140,9 @@ typedef enum
   GIMP_LAYER_MODE_EXCLUSION_LINEAR,
   GIMP_LAYER_MODE_LINEAR_BURN,
   GIMP_LAYER_MODE_LINEAR_BURN_LINEAR,
+  GIMP_LAYER_MODE_LUMA_DARKEN_ONLY,
   GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY,
+  GIMP_LAYER_MODE_LUMA_LIGHTEN_ONLY,
   GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY
 } GimpLayerMode;
 
diff --git a/tools/pdbgen/enums.pl b/tools/pdbgen/enums.pl
index f98f95e..35a480b 100644
--- a/tools/pdbgen/enums.pl
+++ b/tools/pdbgen/enums.pl
@@ -761,7 +761,9 @@ package Gimp::CodeGen::enums;
                          GIMP_LAYER_MODE_EXCLUSION_LINEAR
                          GIMP_LAYER_MODE_LINEAR_BURN
                          GIMP_LAYER_MODE_LINEAR_BURN_LINEAR
+                         GIMP_LAYER_MODE_LUMA_DARKEN_ONLY
                          GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY
+                         GIMP_LAYER_MODE_LUMA_LIGHTEN_ONLY
                          GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY) ],
          mapping => { GIMP_LAYER_MODE_NORMAL => '0',
                       GIMP_LAYER_MODE_DISSOLVE => '1',
@@ -834,8 +836,10 @@ package Gimp::CodeGen::enums;
                       GIMP_LAYER_MODE_EXCLUSION_LINEAR => '68',
                       GIMP_LAYER_MODE_LINEAR_BURN => '69',
                       GIMP_LAYER_MODE_LINEAR_BURN_LINEAR => '70',
-                      GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY => '71',
-                      GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY => '72' }
+                      GIMP_LAYER_MODE_LUMA_DARKEN_ONLY => '71',
+                      GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY => '72',
+                      GIMP_LAYER_MODE_LUMA_LIGHTEN_ONLY => '73',
+                      GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY => '74' }
        },
     GimpBrushApplicationMode =>
        { contig => 1,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]