[gimp] app: introduce XCF version 10 for the new layer modes



commit fa18c25e9429e8524ee4114faffbaed15ec05aa7
Author: Michael Natterer <mitch gimp org>
Date:   Mon Feb 20 18:31:21 2017 +0100

    app: introduce XCF version 10 for the new layer modes
    
    Also, list all modes explitly in gimp_image_get_xcf_version() (no
    default:) so we get a compiler warning if we forget to to add new
    modes here.

 app/core/gimpimage.c |   66 +++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 63 insertions(+), 3 deletions(-)
---
diff --git a/app/core/gimpimage.c b/app/core/gimpimage.c
index 5a81a91..e8e1074 100644
--- a/app/core/gimpimage.c
+++ b/app/core/gimpimage.c
@@ -2393,7 +2393,29 @@ gimp_image_get_xcf_version (GimpImage    *image,
 
       switch (gimp_layer_get_mode (layer))
         {
-          /* new layer modes not supported by gimp-1.2 */
+          /*  Modes that exist since ancient times  */
+        case GIMP_LAYER_MODE_NORMAL:
+        case GIMP_LAYER_MODE_DISSOLVE:
+        case GIMP_LAYER_MODE_BEHIND_LEGACY:
+        case GIMP_LAYER_MODE_MULTIPLY_LEGACY:
+        case GIMP_LAYER_MODE_SCREEN_LEGACY:
+        case GIMP_LAYER_MODE_OVERLAY_LEGACY:
+        case GIMP_LAYER_MODE_DIFFERENCE_LEGACY:
+        case GIMP_LAYER_MODE_ADDITION_LEGACY:
+        case GIMP_LAYER_MODE_SUBTRACT_LEGACY:
+        case GIMP_LAYER_MODE_DARKEN_ONLY_LEGACY:
+        case GIMP_LAYER_MODE_LIGHTEN_ONLY_LEGACY:
+        case GIMP_LAYER_MODE_HSV_HUE_LEGACY:
+        case GIMP_LAYER_MODE_HSV_SATURATION_LEGACY:
+        case GIMP_LAYER_MODE_HSV_COLOR_LEGACY:
+        case GIMP_LAYER_MODE_HSV_VALUE_LEGACY:
+        case GIMP_LAYER_MODE_DIVIDE_LEGACY:
+        case GIMP_LAYER_MODE_DODGE_LEGACY:
+        case GIMP_LAYER_MODE_BURN_LEGACY:
+        case GIMP_LAYER_MODE_HARDLIGHT_LEGACY:
+          break;
+
+          /*  Since 2.8  */
         case GIMP_LAYER_MODE_SOFTLIGHT_LEGACY:
         case GIMP_LAYER_MODE_GRAIN_EXTRACT_LEGACY:
         case GIMP_LAYER_MODE_GRAIN_MERGE_LEGACY:
@@ -2401,7 +2423,7 @@ gimp_image_get_xcf_version (GimpImage    *image,
           version = MAX (2, version);
           break;
 
-          /* new layer modes not supported by gimp-2.8 */
+          /*  Since 2.10  */
         case GIMP_LAYER_MODE_OVERLAY:
         case GIMP_LAYER_MODE_LCH_HUE:
         case GIMP_LAYER_MODE_LCH_CHROMA:
@@ -2410,7 +2432,44 @@ gimp_image_get_xcf_version (GimpImage    *image,
           version = MAX (9, version);
           break;
 
-        default:
+          /*  Since 2.10  */
+        case GIMP_LAYER_MODE_NORMAL_LINEAR:
+        case GIMP_LAYER_MODE_BEHIND:
+        case GIMP_LAYER_MODE_MULTIPLY:
+        case GIMP_LAYER_MODE_SCREEN:
+        case GIMP_LAYER_MODE_DIFFERENCE:
+        case GIMP_LAYER_MODE_ADDITION:
+        case GIMP_LAYER_MODE_SUBTRACT:
+        case GIMP_LAYER_MODE_DARKEN_ONLY:
+        case GIMP_LAYER_MODE_LIGHTEN_ONLY:
+        case GIMP_LAYER_MODE_HSV_HUE:
+        case GIMP_LAYER_MODE_HSV_SATURATION:
+        case GIMP_LAYER_MODE_HSV_COLOR:
+        case GIMP_LAYER_MODE_HSV_VALUE:
+        case GIMP_LAYER_MODE_DIVIDE:
+        case GIMP_LAYER_MODE_DODGE:
+        case GIMP_LAYER_MODE_BURN:
+        case GIMP_LAYER_MODE_HARDLIGHT:
+        case GIMP_LAYER_MODE_SOFTLIGHT:
+        case GIMP_LAYER_MODE_GRAIN_EXTRACT:
+        case GIMP_LAYER_MODE_GRAIN_MERGE:
+        case GIMP_LAYER_MODE_VIVID_LIGHT:
+        case GIMP_LAYER_MODE_PIN_LIGHT:
+        case GIMP_LAYER_MODE_LINEAR_LIGHT:
+        case GIMP_LAYER_MODE_HARD_MIX:
+        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:
+        case GIMP_LAYER_MODE_LUMINANCE:
+          version = MAX (10, version);
+          break;
+
+          /*  Just here instead of default so we get compiler warnings  */
+        case GIMP_LAYER_MODE_ERASE:
+        case GIMP_LAYER_MODE_REPLACE:
+        case GIMP_LAYER_MODE_ANTI_ERASE:
+        case GIMP_LAYER_MODE_SEPARATOR:
           break;
         }
 
@@ -2453,6 +2512,7 @@ gimp_image_get_xcf_version (GimpImage    *image,
     case 7:
     case 8:
     case 9:
+    case 10:
       if (gimp_version)   *gimp_version   = 210;
       if (version_string) *version_string = "GIMP 2.10";
       break;


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