[gimp] app, libgimp: add LINEAR variants of more layer modes



commit 5eb0fa816a4bb6fb22330d583348a6a84a3c388e
Author: Michael Natterer <mitch gimp org>
Date:   Sun Jan 15 16:02:10 2017 +0100

    app, libgimp: add LINEAR variants of more layer modes
    
    for completeness/consistency, even if they don't make much sense for
    prectical use.

 app/core/core-enums.c       |    8 +++++
 app/core/core-enums.h       |    4 +++
 app/core/gimp-layer-modes.c |   14 +++++++--
 libgimp/gimpenums.h         |    4 +++
 tools/pdbgen/enums.pl       |   63 ++++++++++++++++++++++++------------------
 5 files changed, 63 insertions(+), 30 deletions(-)
---
diff --git a/app/core/core-enums.c b/app/core/core-enums.c
index eca7a2a..3e7b530 100644
--- a/app/core/core-enums.c
+++ b/app/core/core-enums.c
@@ -322,6 +322,8 @@ gimp_layer_mode_get_type (void)
     { GIMP_LAYER_MODE_MULTIPLY, "GIMP_LAYER_MODE_MULTIPLY", "multiply" },
     { GIMP_LAYER_MODE_MULTIPLY_LINEAR, "GIMP_LAYER_MODE_MULTIPLY_LINEAR", "multiply-linear" },
     { GIMP_LAYER_MODE_SCREEN, "GIMP_LAYER_MODE_SCREEN", "screen" },
+    { GIMP_LAYER_MODE_SCREEN_LINEAR, "GIMP_LAYER_MODE_SCREEN_LINEAR", "screen-linear" },
+    { GIMP_LAYER_MODE_OVERLAY_LINEAR, "GIMP_LAYER_MODE_OVERLAY_LINEAR", "overlay-linear" },
     { GIMP_LAYER_MODE_DIFFERENCE, "GIMP_LAYER_MODE_DIFFERENCE", "difference" },
     { GIMP_LAYER_MODE_DIFFERENCE_LINEAR, "GIMP_LAYER_MODE_DIFFERENCE_LINEAR", "difference-linear" },
     { GIMP_LAYER_MODE_ADDITION, "GIMP_LAYER_MODE_ADDITION", "addition" },
@@ -343,7 +345,9 @@ gimp_layer_mode_get_type (void)
     { GIMP_LAYER_MODE_BURN, "GIMP_LAYER_MODE_BURN", "burn" },
     { GIMP_LAYER_MODE_BURN_LINEAR, "GIMP_LAYER_MODE_BURN_LINEAR", "burn-linear" },
     { GIMP_LAYER_MODE_HARDLIGHT, "GIMP_LAYER_MODE_HARDLIGHT", "hardlight" },
+    { GIMP_LAYER_MODE_HARDLIGHT_LINEAR, "GIMP_LAYER_MODE_HARDLIGHT_LINEAR", "hardlight-linear" },
     { GIMP_LAYER_MODE_SOFTLIGHT, "GIMP_LAYER_MODE_SOFTLIGHT", "softlight" },
+    { GIMP_LAYER_MODE_SOFTLIGHT_LINEAR, "GIMP_LAYER_MODE_SOFTLIGHT_LINEAR", "softlight-linear" },
     { GIMP_LAYER_MODE_GRAIN_EXTRACT, "GIMP_LAYER_MODE_GRAIN_EXTRACT", "grain-extract" },
     { GIMP_LAYER_MODE_GRAIN_EXTRACT_LINEAR, "GIMP_LAYER_MODE_GRAIN_EXTRACT_LINEAR", "grain-extract-linear" },
     { GIMP_LAYER_MODE_GRAIN_MERGE, "GIMP_LAYER_MODE_GRAIN_MERGE", "grain-merge" },
@@ -389,6 +393,8 @@ gimp_layer_mode_get_type (void)
     { GIMP_LAYER_MODE_MULTIPLY, NC_("layer-mode", "Multiply"), NULL },
     { GIMP_LAYER_MODE_MULTIPLY_LINEAR, NC_("layer-mode", "Multiply (linear)"), NULL },
     { GIMP_LAYER_MODE_SCREEN, NC_("layer-mode", "Screen"), NULL },
+    { GIMP_LAYER_MODE_SCREEN_LINEAR, NC_("layer-mode", "Screen (linear)"), NULL },
+    { GIMP_LAYER_MODE_OVERLAY_LINEAR, NC_("layer-mode", "Overlay (linear)"), NULL },
     { GIMP_LAYER_MODE_DIFFERENCE, NC_("layer-mode", "Difference"), NULL },
     { GIMP_LAYER_MODE_DIFFERENCE_LINEAR, NC_("layer-mode", "Difference (linear)"), NULL },
     { GIMP_LAYER_MODE_ADDITION, NC_("layer-mode", "Addition"), NULL },
@@ -410,7 +416,9 @@ gimp_layer_mode_get_type (void)
     { GIMP_LAYER_MODE_BURN, NC_("layer-mode", "Burn"), NULL },
     { GIMP_LAYER_MODE_BURN_LINEAR, NC_("layer-mode", "Burn (linear)"), NULL },
     { GIMP_LAYER_MODE_HARDLIGHT, NC_("layer-mode", "Hard light"), NULL },
+    { GIMP_LAYER_MODE_HARDLIGHT_LINEAR, NC_("layer-mode", "Hard light (linear)"), NULL },
     { GIMP_LAYER_MODE_SOFTLIGHT, NC_("layer-mode", "Soft light"), NULL },
+    { GIMP_LAYER_MODE_SOFTLIGHT_LINEAR, NC_("layer-mode", "Soft light (linear)"), NULL },
     { GIMP_LAYER_MODE_GRAIN_EXTRACT, NC_("layer-mode", "Grain extract"), NULL },
     { GIMP_LAYER_MODE_GRAIN_EXTRACT_LINEAR, NC_("layer-mode", "Grain extract (linear)"), NULL },
     { GIMP_LAYER_MODE_GRAIN_MERGE, NC_("layer-mode", "Grain merge"), NULL },
diff --git a/app/core/core-enums.h b/app/core/core-enums.h
index de7b6e7..4b2ae31 100644
--- a/app/core/core-enums.h
+++ b/app/core/core-enums.h
@@ -192,6 +192,8 @@ typedef enum
   GIMP_LAYER_MODE_MULTIPLY,              /*< desc="Multiply"                 >*/
   GIMP_LAYER_MODE_MULTIPLY_LINEAR,       /*< desc="Multiply (linear)"        >*/
   GIMP_LAYER_MODE_SCREEN,                /*< desc="Screen"                   >*/
+  GIMP_LAYER_MODE_SCREEN_LINEAR,         /*< desc="Screen (linear)"          >*/
+  GIMP_LAYER_MODE_OVERLAY_LINEAR,        /*< desc="Overlay (linear)"         >*/
   GIMP_LAYER_MODE_DIFFERENCE,            /*< desc="Difference"               >*/
   GIMP_LAYER_MODE_DIFFERENCE_LINEAR,     /*< desc="Difference (linear)"      >*/
   GIMP_LAYER_MODE_ADDITION,              /*< desc="Addition"                 >*/
@@ -213,7 +215,9 @@ typedef enum
   GIMP_LAYER_MODE_BURN,                  /*< desc="Burn"                     >*/
   GIMP_LAYER_MODE_BURN_LINEAR,           /*< desc="Burn (linear)"            >*/
   GIMP_LAYER_MODE_HARDLIGHT,             /*< desc="Hard light"               >*/
+  GIMP_LAYER_MODE_HARDLIGHT_LINEAR,      /*< desc="Hard light (linear)"      >*/
   GIMP_LAYER_MODE_SOFTLIGHT,             /*< desc="Soft light"               >*/
+  GIMP_LAYER_MODE_SOFTLIGHT_LINEAR,      /*< desc="Soft light (linear)"      >*/
   GIMP_LAYER_MODE_GRAIN_EXTRACT,         /*< desc="Grain extract"            >*/
   GIMP_LAYER_MODE_GRAIN_EXTRACT_LINEAR,  /*< desc="Grain extract (linear)"   >*/
   GIMP_LAYER_MODE_GRAIN_MERGE,           /*< desc="Grain merge"              >*/
diff --git a/app/core/gimp-layer-modes.c b/app/core/gimp-layer-modes.c
index 5e58a7d..eb31aa9 100644
--- a/app/core/gimp-layer-modes.c
+++ b/app/core/gimp-layer-modes.c
@@ -129,6 +129,8 @@ gimp_layer_mode_is_linear (GimpLayerMode  mode)
 
     case GIMP_LAYER_MODE_BEHIND_LINEAR:
     case GIMP_LAYER_MODE_MULTIPLY_LINEAR:
+    case GIMP_LAYER_MODE_SCREEN_LINEAR:
+    case GIMP_LAYER_MODE_OVERLAY_LINEAR:
     case GIMP_LAYER_MODE_DIFFERENCE_LINEAR:
     case GIMP_LAYER_MODE_ADDITION_LINEAR:
     case GIMP_LAYER_MODE_SUBTRACT_LINEAR:
@@ -137,6 +139,8 @@ gimp_layer_mode_is_linear (GimpLayerMode  mode)
     case GIMP_LAYER_MODE_DIVIDE_LINEAR:
     case GIMP_LAYER_MODE_DODGE_LINEAR:
     case GIMP_LAYER_MODE_BURN_LINEAR:
+    case GIMP_LAYER_MODE_HARDLIGHT_LINEAR:
+    case GIMP_LAYER_MODE_SOFTLIGHT_LINEAR:
     case GIMP_LAYER_MODE_GRAIN_EXTRACT_LINEAR:
     case GIMP_LAYER_MODE_GRAIN_MERGE_LINEAR:
       return TRUE;
@@ -181,11 +185,16 @@ gimp_layer_mode_get_operation (GimpLayerMode  mode)
       return "gimp:screen-legacy";
 
     case GIMP_LAYER_MODE_SCREEN:
+    case GIMP_LAYER_MODE_SCREEN_LINEAR:
       return "gimp:screen";
 
     case GIMP_LAYER_MODE_OVERLAY_LEGACY:
       return "gimp:softlight-legacy";
 
+    case GIMP_LAYER_MODE_OVERLAY:
+    case GIMP_LAYER_MODE_OVERLAY_LINEAR:
+      return "gimp:overlay";
+
     case GIMP_LAYER_MODE_DIFFERENCE_LEGACY:
       return "gimp:difference-legacy";
 
@@ -270,12 +279,14 @@ gimp_layer_mode_get_operation (GimpLayerMode  mode)
       return "gimp:hardlight-legacy";
 
     case GIMP_LAYER_MODE_HARDLIGHT:
+    case GIMP_LAYER_MODE_HARDLIGHT_LINEAR:
       return "gimp:hardlight";
 
     case GIMP_LAYER_MODE_SOFTLIGHT_LEGACY:
       return "gimp:softlight-legacy";
 
     case GIMP_LAYER_MODE_SOFTLIGHT:
+    case GIMP_LAYER_MODE_SOFTLIGHT_LINEAR:
       return "gimp:softlight";
 
     case GIMP_LAYER_MODE_GRAIN_EXTRACT_LEGACY:
@@ -295,9 +306,6 @@ gimp_layer_mode_get_operation (GimpLayerMode  mode)
     case GIMP_LAYER_MODE_COLOR_ERASE:
       return "gimp:color-erase";
 
-    case GIMP_LAYER_MODE_OVERLAY:
-      return "gimp:overlay";
-
     case GIMP_LAYER_MODE_LCH_HUE:
       return "gimp:lch-hue";
 
diff --git a/libgimp/gimpenums.h b/libgimp/gimpenums.h
index 8143031..47fad3a 100644
--- a/libgimp/gimpenums.h
+++ b/libgimp/gimpenums.h
@@ -102,6 +102,8 @@ typedef enum
   GIMP_LAYER_MODE_MULTIPLY,
   GIMP_LAYER_MODE_MULTIPLY_LINEAR,
   GIMP_LAYER_MODE_SCREEN,
+  GIMP_LAYER_MODE_SCREEN_LINEAR,
+  GIMP_LAYER_MODE_OVERLAY_LINEAR,
   GIMP_LAYER_MODE_DIFFERENCE,
   GIMP_LAYER_MODE_DIFFERENCE_LINEAR,
   GIMP_LAYER_MODE_ADDITION,
@@ -123,7 +125,9 @@ typedef enum
   GIMP_LAYER_MODE_BURN,
   GIMP_LAYER_MODE_BURN_LINEAR,
   GIMP_LAYER_MODE_HARDLIGHT,
+  GIMP_LAYER_MODE_HARDLIGHT_LINEAR,
   GIMP_LAYER_MODE_SOFTLIGHT,
+  GIMP_LAYER_MODE_SOFTLIGHT_LINEAR,
   GIMP_LAYER_MODE_GRAIN_EXTRACT,
   GIMP_LAYER_MODE_GRAIN_EXTRACT_LINEAR,
   GIMP_LAYER_MODE_GRAIN_MERGE,
diff --git a/tools/pdbgen/enums.pl b/tools/pdbgen/enums.pl
index efe231f..5e3da4d 100644
--- a/tools/pdbgen/enums.pl
+++ b/tools/pdbgen/enums.pl
@@ -725,7 +725,10 @@ package Gimp::CodeGen::enums;
                          GIMP_LAYER_MODE_BEHIND_LINEAR
                          GIMP_LAYER_MODE_MULTIPLY
                          GIMP_LAYER_MODE_MULTIPLY_LINEAR
-                         GIMP_LAYER_MODE_SCREEN GIMP_LAYER_MODE_DIFFERENCE
+                         GIMP_LAYER_MODE_SCREEN
+                         GIMP_LAYER_MODE_SCREEN_LINEAR
+                         GIMP_LAYER_MODE_OVERLAY_LINEAR
+                         GIMP_LAYER_MODE_DIFFERENCE
                          GIMP_LAYER_MODE_DIFFERENCE_LINEAR
                          GIMP_LAYER_MODE_ADDITION
                          GIMP_LAYER_MODE_ADDITION_LINEAR
@@ -743,7 +746,9 @@ package Gimp::CodeGen::enums;
                          GIMP_LAYER_MODE_DODGE GIMP_LAYER_MODE_DODGE_LINEAR
                          GIMP_LAYER_MODE_BURN GIMP_LAYER_MODE_BURN_LINEAR
                          GIMP_LAYER_MODE_HARDLIGHT
+                         GIMP_LAYER_MODE_HARDLIGHT_LINEAR
                          GIMP_LAYER_MODE_SOFTLIGHT
+                         GIMP_LAYER_MODE_SOFTLIGHT_LINEAR
                          GIMP_LAYER_MODE_GRAIN_EXTRACT
                          GIMP_LAYER_MODE_GRAIN_EXTRACT_LINEAR
                          GIMP_LAYER_MODE_GRAIN_MERGE
@@ -781,32 +786,36 @@ package Gimp::CodeGen::enums;
                       GIMP_LAYER_MODE_MULTIPLY => '30',
                       GIMP_LAYER_MODE_MULTIPLY_LINEAR => '31',
                       GIMP_LAYER_MODE_SCREEN => '32',
-                      GIMP_LAYER_MODE_DIFFERENCE => '33',
-                      GIMP_LAYER_MODE_DIFFERENCE_LINEAR => '34',
-                      GIMP_LAYER_MODE_ADDITION => '35',
-                      GIMP_LAYER_MODE_ADDITION_LINEAR => '36',
-                      GIMP_LAYER_MODE_SUBTRACT => '37',
-                      GIMP_LAYER_MODE_SUBTRACT_LINEAR => '38',
-                      GIMP_LAYER_MODE_DARKEN_ONLY => '39',
-                      GIMP_LAYER_MODE_DARKEN_ONLY_LINEAR => '40',
-                      GIMP_LAYER_MODE_LIGHTEN_ONLY => '41',
-                      GIMP_LAYER_MODE_LIGHTEN_ONLY_LINEAR => '42',
-                      GIMP_LAYER_MODE_HSV_HUE => '43',
-                      GIMP_LAYER_MODE_HSV_SATURATION => '44',
-                      GIMP_LAYER_MODE_HSV_COLOR => '45',
-                      GIMP_LAYER_MODE_HSV_VALUE => '46',
-                      GIMP_LAYER_MODE_DIVIDE => '47',
-                      GIMP_LAYER_MODE_DIVIDE_LINEAR => '48',
-                      GIMP_LAYER_MODE_DODGE => '49',
-                      GIMP_LAYER_MODE_DODGE_LINEAR => '50',
-                      GIMP_LAYER_MODE_BURN => '51',
-                      GIMP_LAYER_MODE_BURN_LINEAR => '52',
-                      GIMP_LAYER_MODE_HARDLIGHT => '53',
-                      GIMP_LAYER_MODE_SOFTLIGHT => '54',
-                      GIMP_LAYER_MODE_GRAIN_EXTRACT => '55',
-                      GIMP_LAYER_MODE_GRAIN_EXTRACT_LINEAR => '56',
-                      GIMP_LAYER_MODE_GRAIN_MERGE => '57',
-                      GIMP_LAYER_MODE_GRAIN_MERGE_LINEAR => '58' }
+                      GIMP_LAYER_MODE_SCREEN_LINEAR => '33',
+                      GIMP_LAYER_MODE_OVERLAY_LINEAR => '34',
+                      GIMP_LAYER_MODE_DIFFERENCE => '35',
+                      GIMP_LAYER_MODE_DIFFERENCE_LINEAR => '36',
+                      GIMP_LAYER_MODE_ADDITION => '37',
+                      GIMP_LAYER_MODE_ADDITION_LINEAR => '38',
+                      GIMP_LAYER_MODE_SUBTRACT => '39',
+                      GIMP_LAYER_MODE_SUBTRACT_LINEAR => '40',
+                      GIMP_LAYER_MODE_DARKEN_ONLY => '41',
+                      GIMP_LAYER_MODE_DARKEN_ONLY_LINEAR => '42',
+                      GIMP_LAYER_MODE_LIGHTEN_ONLY => '43',
+                      GIMP_LAYER_MODE_LIGHTEN_ONLY_LINEAR => '44',
+                      GIMP_LAYER_MODE_HSV_HUE => '45',
+                      GIMP_LAYER_MODE_HSV_SATURATION => '46',
+                      GIMP_LAYER_MODE_HSV_COLOR => '47',
+                      GIMP_LAYER_MODE_HSV_VALUE => '48',
+                      GIMP_LAYER_MODE_DIVIDE => '49',
+                      GIMP_LAYER_MODE_DIVIDE_LINEAR => '50',
+                      GIMP_LAYER_MODE_DODGE => '51',
+                      GIMP_LAYER_MODE_DODGE_LINEAR => '52',
+                      GIMP_LAYER_MODE_BURN => '53',
+                      GIMP_LAYER_MODE_BURN_LINEAR => '54',
+                      GIMP_LAYER_MODE_HARDLIGHT => '55',
+                      GIMP_LAYER_MODE_HARDLIGHT_LINEAR => '56',
+                      GIMP_LAYER_MODE_SOFTLIGHT => '57',
+                      GIMP_LAYER_MODE_SOFTLIGHT_LINEAR => '58',
+                      GIMP_LAYER_MODE_GRAIN_EXTRACT => '59',
+                      GIMP_LAYER_MODE_GRAIN_EXTRACT_LINEAR => '60',
+                      GIMP_LAYER_MODE_GRAIN_MERGE => '61',
+                      GIMP_LAYER_MODE_GRAIN_MERGE_LINEAR => '62' }
        },
     GimpBrushApplicationMode =>
        { contig => 1,


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