[gimp] app, pdb, libgimp, plug-ins, menus: rename layer composite modes



commit a7f3a2dd9faa48778c67bea1a552030eaa258b13
Author: Ell <ell_se yahoo com>
Date:   Wed Mar 14 14:52:10 2018 -0400

    app, pdb, libgimp, plug-ins, menus: rename layer composite modes
    
    Our composite modes don't correspond directly to the Porter-Duff
    operators after which they're named, and these names aren't too
    descriptive anyway.
    
    Rename the composite modes as follows:
    
      Source Over       =>  Union
      Source Atop       =>  Clip to Backdrop
      Destination Atop  =>  Clip to Layer
      Source In         =>  Intersection
    
    Update relevant code, including UI text, enumerator names, function
    names, and action names.

 app/actions/layers-actions.c                       |   58 +++---
 app/core/gimpgrouplayer.c                          |    6 +-
 app/core/gimplayer.c                               |    2 +-
 app/operations/layer-modes/gimp-layer-modes.c      |  266 ++++++++++----------
 .../layer-modes/gimpoperationantierase.c           |    8 +-
 app/operations/layer-modes/gimpoperationbehind.c   |    8 +-
 app/operations/layer-modes/gimpoperationdissolve.c |    8 +-
 app/operations/layer-modes/gimpoperationerase.c    |    8 +-
 .../gimpoperationlayermode-composite-sse2.c        |   20 +-
 .../layer-modes/gimpoperationlayermode-composite.c |  112 ++++----
 .../layer-modes/gimpoperationlayermode-composite.h |  126 +++++-----
 .../layer-modes/gimpoperationlayermode.c           |   90 ++++---
 app/operations/layer-modes/gimpoperationmerge.c    |    8 +-
 .../layer-modes/gimpoperationnormal-sse2.c         |    8 +-
 .../layer-modes/gimpoperationnormal-sse4.c         |    8 +-
 app/operations/layer-modes/gimpoperationnormal.c   |    8 +-
 app/operations/layer-modes/gimpoperationreplace.c  |    8 +-
 app/operations/layer-modes/gimpoperationsplit.c    |    8 +-
 app/operations/operations-enums.c                  |   16 +-
 app/operations/operations-enums.h                  |   10 +-
 libgimp/gimpenums.h                                |    8 +-
 menus/layers-menu.xml                              |    8 +-
 pdb/enums.pl                                       |   16 +-
 plug-ins/file-psd/psd-util.c                       |    6 +-
 24 files changed, 416 insertions(+), 408 deletions(-)
---
diff --git a/app/actions/layers-actions.c b/app/actions/layers-actions.c
index a6369a7..8671691 100644
--- a/app/actions/layers-actions.c
+++ b/app/actions/layers-actions.c
@@ -385,28 +385,28 @@ static const GimpRadioActionEntry layers_composite_mode_actions[] =
     GIMP_LAYER_COMPOSITE_AUTO,
     NULL },
 
-  { "layers-composite-mode-src-over", NULL,
-    NC_("layers-action", "Source Over"), NULL,
-    NC_("layers-action", "Layer Composite Mode: Source Over"),
-    GIMP_LAYER_COMPOSITE_SRC_OVER,
+  { "layers-composite-mode-union", NULL,
+    NC_("layers-action", "Union"), NULL,
+    NC_("layers-action", "Layer Composite Mode: Union"),
+    GIMP_LAYER_COMPOSITE_UNION,
     NULL },
 
-  { "layers-composite-mode-src-atop", NULL,
-    NC_("layers-action", "Source Atop"), NULL,
-    NC_("layers-action", "Layer Composite Mode: Source Atop"),
-    GIMP_LAYER_COMPOSITE_SRC_ATOP,
+  { "layers-composite-mode-clip-to-backdrop", NULL,
+    NC_("layers-action", "Clip to Backdrop"), NULL,
+    NC_("layers-action", "Layer Composite Mode: Clip to Backdrop"),
+    GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     NULL },
 
-  { "layers-composite-mode-src-in", NULL,
-    NC_("layers-action", "Source In"), NULL,
-    NC_("layers-action", "Layer Composite Mode: Source In"),
-    GIMP_LAYER_COMPOSITE_SRC_IN,
+  { "layers-composite-mode-clip-to-layer", NULL,
+    NC_("layers-action", "Clip to Layer"), NULL,
+    NC_("layers-action", "Layer Composite Mode: Clip to Layer"),
+    GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER,
     NULL },
 
-  { "layers-composite-mode-dst-atop", NULL,
-    NC_("layers-action", "Destination Atop"), NULL,
-    NC_("layers-action", "Layer Composite Mode: Destination Atop"),
-    GIMP_LAYER_COMPOSITE_DST_ATOP,
+  { "layers-composite-mode-intersection", NULL,
+    NC_("layers-action", "Intersection"), NULL,
+    NC_("layers-action", "Layer Composite Mode: Intersection"),
+    GIMP_LAYER_COMPOSITE_INTERSECTION,
     NULL }
 };
 
@@ -823,14 +823,14 @@ layers_actions_update (GimpActionGroup *group,
             {
             case GIMP_LAYER_COMPOSITE_AUTO:
               action = "layers-composite-mode-auto"; break;
-            case GIMP_LAYER_COMPOSITE_SRC_OVER:
-              action = "layers-composite-mode-src-over"; break;
-            case GIMP_LAYER_COMPOSITE_SRC_ATOP:
-              action = "layers-composite-mode-src-atop"; break;
-            case GIMP_LAYER_COMPOSITE_SRC_IN:
-              action = "layers-composite-mode-src-in"; break;
-            case GIMP_LAYER_COMPOSITE_DST_ATOP:
-              action = "layers-composite-mode-dst-atop"; break;
+            case GIMP_LAYER_COMPOSITE_UNION:
+              action = "layers-composite-mode-union"; break;
+            case GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP:
+              action = "layers-composite-mode-clip-to-backdrop"; break;
+            case GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER:
+              action = "layers-composite-mode-clip-to-layer"; break;
+            case GIMP_LAYER_COMPOSITE_INTERSECTION:
+              action = "layers-composite-mode-intersection"; break;
             }
 
           gimp_action_group_set_action_active (group, action, TRUE);
@@ -969,11 +969,11 @@ layers_actions_update (GimpActionGroup *group,
   SET_SENSITIVE ("layers-composite-space-rgb-linear",     layer && cs_mutable);
   SET_SENSITIVE ("layers-composite-space-rgb-perceptual", layer && cs_mutable);
 
-  SET_SENSITIVE ("layers-composite-mode-auto",     layer && cm_mutable);
-  SET_SENSITIVE ("layers-composite-mode-src-over", layer && cm_mutable);
-  SET_SENSITIVE ("layers-composite-mode-src-atop", layer && cm_mutable);
-  SET_SENSITIVE ("layers-composite-mode-src-in",   layer && cm_mutable);
-  SET_SENSITIVE ("layers-composite-mode-dst-atop", layer && cm_mutable);
+  SET_SENSITIVE ("layers-composite-mode-auto",             layer && cm_mutable);
+  SET_SENSITIVE ("layers-composite-mode-union",            layer && cm_mutable);
+  SET_SENSITIVE ("layers-composite-mode-clip-to-backdrop", layer && cm_mutable);
+  SET_SENSITIVE ("layers-composite-mode-clip-to-layer",    layer && cm_mutable);
+  SET_SENSITIVE ("layers-composite-mode-intersection",     layer && cm_mutable);
 
   SET_SENSITIVE ("layers-mask-add",             layer && !fs && !ac && !mask);
   SET_SENSITIVE ("layers-mask-add-button",      layer && !fs && !ac);
diff --git a/app/core/gimpgrouplayer.c b/app/core/gimpgrouplayer.c
index 5b557aa..1862841 100644
--- a/app/core/gimpgrouplayer.c
+++ b/app/core/gimpgrouplayer.c
@@ -1128,8 +1128,8 @@ gimp_group_layer_get_effective_mode (GimpLayer              *layer,
        *     - the group has a single active child; or,
        *
        *     - the effective mode of all the active children is normal, their
-       *       effective composite mode is src-over, and their effective
-       *       blend and composite spaces are equal;
+       *       effective composite mode is UNION, and their effective blend and
+       *       composite spaces are equal;
        *
        *   - and,
        *
@@ -1178,7 +1178,7 @@ gimp_group_layer_get_effective_mode (GimpLayer              *layer,
               GimpLayerCompositeMode other_composite_mode;
 
               if (*mode           != GIMP_LAYER_MODE_NORMAL ||
-                  *composite_mode != GIMP_LAYER_COMPOSITE_SRC_OVER)
+                  *composite_mode != GIMP_LAYER_COMPOSITE_UNION)
                 {
                   reduce = FALSE;
 
diff --git a/app/core/gimplayer.c b/app/core/gimplayer.c
index 8f52473..aaeee5c 100644
--- a/app/core/gimplayer.c
+++ b/app/core/gimplayer.c
@@ -2635,7 +2635,7 @@ gimp_layer_get_composite_mode (GimpLayer *layer)
 GimpLayerCompositeMode
 gimp_layer_get_real_composite_mode (GimpLayer *layer)
 {
-  g_return_val_if_fail (GIMP_IS_LAYER (layer), GIMP_LAYER_COMPOSITE_SRC_OVER);
+  g_return_val_if_fail (GIMP_IS_LAYER (layer), GIMP_LAYER_COMPOSITE_UNION);
 
   if (layer->composite_mode == GIMP_LAYER_COMPOSITE_AUTO)
     return gimp_layer_mode_get_composite_mode (layer->mode);
diff --git a/app/operations/layer-modes/gimp-layer-modes.c b/app/operations/layer-modes/gimp-layer-modes.c
index 8209580..3fb0c77 100644
--- a/app/operations/layer-modes/gimp-layer-modes.c
+++ b/app/operations/layer-modes/gimp-layer-modes.c
@@ -62,8 +62,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_OVER,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_UNION,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
 
@@ -73,8 +73,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_OVER
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_UNION
   },
 
   { GIMP_LAYER_MODE_BEHIND_LEGACY,
@@ -86,8 +86,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_PAINT |
                             GIMP_LAYER_MODE_CONTEXT_FADE,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_OVER,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_UNION,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
 
@@ -99,8 +99,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -113,8 +113,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -127,8 +127,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -141,8 +141,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -155,8 +155,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -169,8 +169,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -183,8 +183,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -197,8 +197,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -211,8 +211,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -225,8 +225,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -239,8 +239,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -253,8 +253,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -267,8 +267,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -281,8 +281,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -295,8 +295,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -309,8 +309,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -323,8 +323,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -337,8 +337,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -351,8 +351,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -368,8 +368,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_SUBTRACTIVE,
     .context              = GIMP_LAYER_MODE_CONTEXT_PAINT |
                             GIMP_LAYER_MODE_CONTEXT_FADE,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -379,8 +379,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_overlay,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -391,8 +391,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .blend_function       = gimp_operation_layer_mode_blend_lch_hue,
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_LAB
   },
@@ -403,8 +403,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .blend_function       = gimp_operation_layer_mode_blend_lch_chroma,
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_LAB
   },
@@ -415,8 +415,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .blend_function       = gimp_operation_layer_mode_blend_lch_color,
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_LAB
   },
@@ -427,8 +427,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .blend_function       = gimp_operation_layer_mode_blend_lch_lightness,
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_LAB
   },
@@ -438,8 +438,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:normal",
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_OVER,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_UNION,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR
   },
 
@@ -449,8 +449,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_PAINT |
                             GIMP_LAYER_MODE_CONTEXT_FADE,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_OVER,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_UNION,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR
   },
 
@@ -459,8 +459,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_multiply,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR
   },
@@ -470,8 +470,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_screen,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -481,8 +481,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_difference,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -492,8 +492,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_addition,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR
   },
@@ -503,8 +503,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_subtract,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR
   },
@@ -515,8 +515,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .blend_function       = gimp_operation_layer_mode_blend_darken_only,
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR
     /* no blend_space: reuse composite space, no conversion thus fewer copies */
   },
@@ -527,8 +527,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .blend_function       = gimp_operation_layer_mode_blend_lighten_only,
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR
     /* no blend_space: reuse composite space, no conversion thus fewer copies */
   },
@@ -539,8 +539,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .blend_function       = gimp_operation_layer_mode_blend_hsv_hue,
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -551,8 +551,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .blend_function       = gimp_operation_layer_mode_blend_hsv_saturation,
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -563,8 +563,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .blend_function       = gimp_operation_layer_mode_blend_hsl_color,
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -575,8 +575,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .blend_function       = gimp_operation_layer_mode_blend_hsv_value,
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -586,8 +586,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_divide,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR
   },
@@ -597,8 +597,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_dodge,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -608,8 +608,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_burn,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -619,8 +619,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_hardlight,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -630,8 +630,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_softlight,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -641,8 +641,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_grain_extract,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -652,8 +652,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_grain_merge,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -663,8 +663,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_vivid_light,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -674,8 +674,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_pin_light,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -685,8 +685,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_linear_light,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -696,8 +696,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_hard_mix,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -707,8 +707,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_exclusion,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -718,8 +718,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_linear_burn,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -729,8 +729,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_luma_darken_only,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -740,8 +740,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:layer-mode",
     .blend_function       = gimp_operation_layer_mode_blend_luma_lighten_only,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL
   },
@@ -752,8 +752,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .blend_function       = gimp_operation_layer_mode_blend_luminance,
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR
   },
@@ -764,8 +764,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .blend_function       = gimp_operation_layer_mode_blend_color_erase,
     .flags                = GIMP_LAYER_MODE_FLAG_SUBTRACTIVE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,
     .blend_space          = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR
   },
@@ -776,8 +776,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_SUBTRACTIVE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR
   },
 
@@ -786,8 +786,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:merge",
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_OVER,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_UNION,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR
   },
 
@@ -798,8 +798,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_SUBTRACTIVE,
     .context              = GIMP_LAYER_MODE_CONTEXT_ALL,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_ATOP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_ATOP
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP
   },
 
   { GIMP_LAYER_MODE_PASS_THROUGH,
@@ -808,7 +808,7 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_GROUP,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_OVER,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_UNION,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR
   },
 
@@ -817,8 +817,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .op_name              = "gimp:replace",
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_FADE,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_OVER,
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_UNION,
     .composite_space      = GIMP_LAYER_COLOR_SPACE_RGB_LINEAR
   },
 
@@ -828,8 +828,8 @@ static const GimpLayerModeInfo layer_mode_infos[] =
     .flags                = GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
                             GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE,
     .context              = GIMP_LAYER_MODE_CONTEXT_FADE,
-    .paint_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER,
-    .composite_mode       = GIMP_LAYER_COMPOSITE_SRC_OVER
+    .paint_composite_mode = GIMP_LAYER_COMPOSITE_UNION,
+    .composite_mode       = GIMP_LAYER_COMPOSITE_UNION
   }
 };
 
@@ -1206,7 +1206,7 @@ gimp_layer_mode_get_composite_mode (GimpLayerMode mode)
   const GimpLayerModeInfo *info = gimp_layer_mode_info (mode);
 
   if (! info)
-    return GIMP_LAYER_COMPOSITE_SRC_OVER;
+    return GIMP_LAYER_COMPOSITE_UNION;
 
   return info->composite_mode;
 }
@@ -1217,7 +1217,7 @@ gimp_layer_mode_get_paint_composite_mode (GimpLayerMode mode)
   const GimpLayerModeInfo *info = gimp_layer_mode_info (mode);
 
   if (! info)
-    return GIMP_LAYER_COMPOSITE_SRC_OVER;
+    return GIMP_LAYER_COMPOSITE_UNION;
 
   return info->paint_composite_mode;
 }
@@ -1443,16 +1443,16 @@ gimp_layer_mode_get_included_region (GimpLayerMode          mode,
 
   switch (composite_mode)
     {
-    case GIMP_LAYER_COMPOSITE_SRC_OVER:
+    case GIMP_LAYER_COMPOSITE_UNION:
       return GIMP_LAYER_COMPOSITE_REGION_UNION;
 
-    case GIMP_LAYER_COMPOSITE_SRC_ATOP:
+    case GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP:
       return GIMP_LAYER_COMPOSITE_REGION_DESTINATION;
 
-    case GIMP_LAYER_COMPOSITE_DST_ATOP:
+    case GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER:
       return GIMP_LAYER_COMPOSITE_REGION_SOURCE;
 
-    case GIMP_LAYER_COMPOSITE_SRC_IN:
+    case GIMP_LAYER_COMPOSITE_INTERSECTION:
       return GIMP_LAYER_COMPOSITE_REGION_INTERSECTION;
 
     default:
diff --git a/app/operations/layer-modes/gimpoperationantierase.c 
b/app/operations/layer-modes/gimpoperationantierase.c
index b7a2d2d..ed82188 100644
--- a/app/operations/layer-modes/gimpoperationantierase.c
+++ b/app/operations/layer-modes/gimpoperationantierase.c
@@ -84,7 +84,7 @@ gimp_operation_anti_erase_process (GeglOperation       *op,
 
   switch (layer_mode->real_composite_mode)
     {
-    case GIMP_LAYER_COMPOSITE_SRC_OVER:
+    case GIMP_LAYER_COMPOSITE_UNION:
     case GIMP_LAYER_COMPOSITE_AUTO:
       while (samples--)
         {
@@ -110,7 +110,7 @@ gimp_operation_anti_erase_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_SRC_ATOP:
+    case GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP:
       while (samples--)
         {
           gint b;
@@ -127,7 +127,7 @@ gimp_operation_anti_erase_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_DST_ATOP:
+    case GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER:
       while (samples--)
         {
           gfloat value = opacity;
@@ -152,7 +152,7 @@ gimp_operation_anti_erase_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_SRC_IN:
+    case GIMP_LAYER_COMPOSITE_INTERSECTION:
       while (samples--)
         {
           gfloat value = opacity;
diff --git a/app/operations/layer-modes/gimpoperationbehind.c 
b/app/operations/layer-modes/gimpoperationbehind.c
index 82f0faf..959ee1d 100644
--- a/app/operations/layer-modes/gimpoperationbehind.c
+++ b/app/operations/layer-modes/gimpoperationbehind.c
@@ -82,7 +82,7 @@ gimp_operation_behind_process (GeglOperation       *op,
 
   switch (layer_mode->real_composite_mode)
     {
-    case GIMP_LAYER_COMPOSITE_SRC_OVER:
+    case GIMP_LAYER_COMPOSITE_UNION:
     case GIMP_LAYER_COMPOSITE_AUTO:
       while (samples--)
         {
@@ -125,7 +125,7 @@ gimp_operation_behind_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_SRC_ATOP:
+    case GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP:
       while (samples--)
         {
           gfloat src1_alpha = in[ALPHA];
@@ -153,7 +153,7 @@ gimp_operation_behind_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_DST_ATOP:
+    case GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER:
       while (samples--)
         {
           gfloat src1_alpha = in[ALPHA];
@@ -192,7 +192,7 @@ gimp_operation_behind_process (GeglOperation       *op,
         }
       break;
 
-      case GIMP_LAYER_COMPOSITE_SRC_IN:
+      case GIMP_LAYER_COMPOSITE_INTERSECTION:
       while (samples--)
         {
           gfloat src1_alpha = in[ALPHA];
diff --git a/app/operations/layer-modes/gimpoperationdissolve.c 
b/app/operations/layer-modes/gimpoperationdissolve.c
index 4d7b2f4..dc1dfe0 100644
--- a/app/operations/layer-modes/gimpoperationdissolve.c
+++ b/app/operations/layer-modes/gimpoperationdissolve.c
@@ -120,8 +120,8 @@ gimp_operation_dissolve_process (GeglOperation       *op,
               out[1] = in[1];
               out[2] = in[2];
 
-              if (layer_mode->real_composite_mode == GIMP_LAYER_COMPOSITE_SRC_OVER ||
-                  layer_mode->real_composite_mode == GIMP_LAYER_COMPOSITE_SRC_ATOP)
+              if (layer_mode->real_composite_mode == GIMP_LAYER_COMPOSITE_UNION ||
+                  layer_mode->real_composite_mode == GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP)
                 {
                   out[3] = in[3];
                 }
@@ -136,8 +136,8 @@ gimp_operation_dissolve_process (GeglOperation       *op,
               out[1] = layer[1];
               out[2] = layer[2];
 
-              if (layer_mode->real_composite_mode == GIMP_LAYER_COMPOSITE_SRC_OVER ||
-                  layer_mode->real_composite_mode == GIMP_LAYER_COMPOSITE_DST_ATOP)
+              if (layer_mode->real_composite_mode == GIMP_LAYER_COMPOSITE_UNION ||
+                  layer_mode->real_composite_mode == GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER)
                 {
                   out[3] = 1.0f;
                 }
diff --git a/app/operations/layer-modes/gimpoperationerase.c b/app/operations/layer-modes/gimpoperationerase.c
index ff0aa37..e1a79b6 100644
--- a/app/operations/layer-modes/gimpoperationerase.c
+++ b/app/operations/layer-modes/gimpoperationerase.c
@@ -81,7 +81,7 @@ gimp_operation_erase_process (GeglOperation       *op,
 
   switch (layer_mode->real_composite_mode)
     {
-    case GIMP_LAYER_COMPOSITE_SRC_OVER:
+    case GIMP_LAYER_COMPOSITE_UNION:
       while (samples--)
         {
           gfloat layer_alpha;
@@ -125,7 +125,7 @@ gimp_operation_erase_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_SRC_ATOP:
+    case GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP:
     case GIMP_LAYER_COMPOSITE_AUTO:
       while (samples--)
         {
@@ -156,7 +156,7 @@ gimp_operation_erase_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_DST_ATOP:
+    case GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER:
       while (samples--)
         {
           gfloat        layer_alpha;
@@ -192,7 +192,7 @@ gimp_operation_erase_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_SRC_IN:
+    case GIMP_LAYER_COMPOSITE_INTERSECTION:
       while (samples--)
         {
           gint b;
diff --git a/app/operations/layer-modes/gimpoperationlayermode-composite-sse2.c 
b/app/operations/layer-modes/gimpoperationlayermode-composite-sse2.c
index 8f55078..b581aa2 100644
--- a/app/operations/layer-modes/gimpoperationlayermode-composite-sse2.c
+++ b/app/operations/layer-modes/gimpoperationlayermode-composite-sse2.c
@@ -45,21 +45,21 @@
 
 
 void
-gimp_operation_layer_mode_composite_src_atop_sse2 (const gfloat *in,
-                                                   const gfloat *layer,
-                                                   const gfloat *comp,
-                                                   const gfloat *mask,
-                                                   gfloat        opacity,
-                                                   gfloat       *out,
-                                                   gint          samples)
+gimp_operation_layer_mode_composite_clip_to_backdrop_sse2 (const gfloat *in,
+                                                           const gfloat *layer,
+                                                           const gfloat *comp,
+                                                           const gfloat *mask,
+                                                           gfloat        opacity,
+                                                           gfloat       *out,
+                                                           gint          samples)
 {
   if ((((uintptr_t)in)   | /* alignment check */
        ((uintptr_t)comp) |
        ((uintptr_t)out)   ) & 0x0F)
     {
-      gimp_operation_layer_mode_composite_src_atop (in, layer, comp,
-                                                    mask, opacity, out,
-                                                    samples);
+      gimp_operation_layer_mode_composite_clip_to_backdrop (in, layer, comp,
+                                                            mask, opacity, out,
+                                                            samples);
     }
   else
     {
diff --git a/app/operations/layer-modes/gimpoperationlayermode-composite.c 
b/app/operations/layer-modes/gimpoperationlayermode-composite.c
index a4f3bad..a3ee47a 100644
--- a/app/operations/layer-modes/gimpoperationlayermode-composite.c
+++ b/app/operations/layer-modes/gimpoperationlayermode-composite.c
@@ -39,13 +39,13 @@
 
 
 void
-gimp_operation_layer_mode_composite_src_over (const gfloat *in,
-                                              const gfloat *layer,
-                                              const gfloat *comp,
-                                              const gfloat *mask,
-                                              gfloat        opacity,
-                                              gfloat       *out,
-                                              gint          samples)
+gimp_operation_layer_mode_composite_union (const gfloat *in,
+                                           const gfloat *layer,
+                                           const gfloat *comp,
+                                           const gfloat *mask,
+                                           gfloat        opacity,
+                                           gfloat       *out,
+                                           gint          samples)
 {
   while (samples--)
     {
@@ -92,13 +92,13 @@ gimp_operation_layer_mode_composite_src_over (const gfloat *in,
 }
 
 void
-gimp_operation_layer_mode_composite_src_atop (const gfloat *in,
-                                              const gfloat *layer,
-                                              const gfloat *comp,
-                                              const gfloat *mask,
-                                              gfloat        opacity,
-                                              gfloat       *out,
-                                              gint          samples)
+gimp_operation_layer_mode_composite_clip_to_backdrop (const gfloat *in,
+                                                      const gfloat *layer,
+                                                      const gfloat *comp,
+                                                      const gfloat *mask,
+                                                      gfloat        opacity,
+                                                      gfloat       *out,
+                                                      gint          samples)
 {
   while (samples--)
     {
@@ -133,13 +133,13 @@ gimp_operation_layer_mode_composite_src_atop (const gfloat *in,
 }
 
 void
-gimp_operation_layer_mode_composite_dst_atop (const gfloat *in,
-                                              const gfloat *layer,
-                                              const gfloat *comp,
-                                              const gfloat *mask,
-                                              gfloat        opacity,
-                                              gfloat       *out,
-                                              gint          samples)
+gimp_operation_layer_mode_composite_clip_to_layer (const gfloat *in,
+                                                   const gfloat *layer,
+                                                   const gfloat *comp,
+                                                   const gfloat *mask,
+                                                   gfloat        opacity,
+                                                   gfloat       *out,
+                                                   gint          samples)
 {
   while (samples--)
     {
@@ -181,13 +181,13 @@ gimp_operation_layer_mode_composite_dst_atop (const gfloat *in,
 }
 
 void
-gimp_operation_layer_mode_composite_src_in (const gfloat *in,
-                                            const gfloat *layer,
-                                            const gfloat *comp,
-                                            const gfloat *mask,
-                                            gfloat        opacity,
-                                            gfloat       *out,
-                                            gint          samples)
+gimp_operation_layer_mode_composite_intersection (const gfloat *in,
+                                                  const gfloat *layer,
+                                                  const gfloat *comp,
+                                                  const gfloat *mask,
+                                                  gfloat        opacity,
+                                                  gfloat       *out,
+                                                  gint          samples)
 {
   while (samples--)
     {
@@ -228,13 +228,13 @@ gimp_operation_layer_mode_composite_src_in (const gfloat *in,
  */
 
 void
-gimp_operation_layer_mode_composite_src_over_sub (const gfloat *in,
-                                                  const gfloat *layer,
-                                                  const gfloat *comp,
-                                                  const gfloat *mask,
-                                                  gfloat        opacity,
-                                                  gfloat       *out,
-                                                  gint          samples)
+gimp_operation_layer_mode_composite_union_sub (const gfloat *in,
+                                               const gfloat *layer,
+                                               const gfloat *comp,
+                                               const gfloat *mask,
+                                               gfloat        opacity,
+                                               gfloat       *out,
+                                               gint          samples)
 {
   while (samples--)
     {
@@ -284,13 +284,13 @@ gimp_operation_layer_mode_composite_src_over_sub (const gfloat *in,
 }
 
 void
-gimp_operation_layer_mode_composite_src_atop_sub (const gfloat *in,
-                                                  const gfloat *layer,
-                                                  const gfloat *comp,
-                                                  const gfloat *mask,
-                                                  gfloat        opacity,
-                                                  gfloat       *out,
-                                                  gint          samples)
+gimp_operation_layer_mode_composite_clip_to_backdrop_sub (const gfloat *in,
+                                                          const gfloat *layer,
+                                                          const gfloat *comp,
+                                                          const gfloat *mask,
+                                                          gfloat        opacity,
+                                                          gfloat       *out,
+                                                          gint          samples)
 {
   while (samples--)
     {
@@ -335,13 +335,13 @@ gimp_operation_layer_mode_composite_src_atop_sub (const gfloat *in,
 }
 
 void
-gimp_operation_layer_mode_composite_dst_atop_sub (const gfloat *in,
-                                                  const gfloat *layer,
-                                                  const gfloat *comp,
-                                                  const gfloat *mask,
-                                                  gfloat        opacity,
-                                                  gfloat       *out,
-                                                  gint          samples)
+gimp_operation_layer_mode_composite_clip_to_layer_sub (const gfloat *in,
+                                                       const gfloat *layer,
+                                                       const gfloat *comp,
+                                                       const gfloat *mask,
+                                                       gfloat        opacity,
+                                                       gfloat       *out,
+                                                       gint          samples)
 {
   while (samples--)
     {
@@ -393,13 +393,13 @@ gimp_operation_layer_mode_composite_dst_atop_sub (const gfloat *in,
 }
 
 void
-gimp_operation_layer_mode_composite_src_in_sub (const gfloat *in,
-                                                const gfloat *layer,
-                                                const gfloat *comp,
-                                                const gfloat *mask,
-                                                gfloat        opacity,
-                                                gfloat       *out,
-                                                gint          samples)
+gimp_operation_layer_mode_composite_intersection_sub (const gfloat *in,
+                                                      const gfloat *layer,
+                                                      const gfloat *comp,
+                                                      const gfloat *mask,
+                                                      gfloat        opacity,
+                                                      gfloat       *out,
+                                                      gint          samples)
 {
   while (samples--)
     {
diff --git a/app/operations/layer-modes/gimpoperationlayermode-composite.h 
b/app/operations/layer-modes/gimpoperationlayermode-composite.h
index a6f9823..aae58cf 100644
--- a/app/operations/layer-modes/gimpoperationlayermode-composite.h
+++ b/app/operations/layer-modes/gimpoperationlayermode-composite.h
@@ -24,73 +24,73 @@
 #define __GIMP_OPERATION_LAYER_MODE_COMPOSITE_H__
 
 
-void gimp_operation_layer_mode_composite_src_over      (const gfloat        *in,
-                                                        const gfloat        *layer,
-                                                        const gfloat        *comp,
-                                                        const gfloat        *mask,
-                                                        gfloat               opacity,
-                                                        gfloat              *out,
-                                                        gint                 samples);
-void gimp_operation_layer_mode_composite_src_atop      (const gfloat        *in,
-                                                        const gfloat        *layer,
-                                                        const gfloat        *comp,
-                                                        const gfloat        *mask,
-                                                        gfloat               opacity,
-                                                        gfloat              *out,
-                                                        gint                 samples);
-void gimp_operation_layer_mode_composite_dst_atop      (const gfloat        *in,
-                                                        const gfloat        *layer,
-                                                        const gfloat        *comp,
-                                                        const gfloat        *mask,
-                                                        gfloat               opacity,
-                                                        gfloat              *out,
-                                                        gint                 samples);
-void gimp_operation_layer_mode_composite_src_in        (const gfloat        *in,
-                                                        const gfloat        *layer,
-                                                        const gfloat        *comp,
-                                                        const gfloat        *mask,
-                                                        gfloat               opacity,
-                                                        gfloat              *out,
-                                                        gint                 samples);
+void gimp_operation_layer_mode_composite_union                 (const gfloat        *in,
+                                                                const gfloat        *layer,
+                                                                const gfloat        *comp,
+                                                                const gfloat        *mask,
+                                                                gfloat               opacity,
+                                                                gfloat              *out,
+                                                                gint                 samples);
+void gimp_operation_layer_mode_composite_clip_to_backdrop      (const gfloat        *in,
+                                                                const gfloat        *layer,
+                                                                const gfloat        *comp,
+                                                                const gfloat        *mask,
+                                                                gfloat               opacity,
+                                                                gfloat              *out,
+                                                                gint                 samples);
+void gimp_operation_layer_mode_composite_clip_to_layer         (const gfloat        *in,
+                                                                const gfloat        *layer,
+                                                                const gfloat        *comp,
+                                                                const gfloat        *mask,
+                                                                gfloat               opacity,
+                                                                gfloat              *out,
+                                                                gint                 samples);
+void gimp_operation_layer_mode_composite_intersection          (const gfloat        *in,
+                                                                const gfloat        *layer,
+                                                                const gfloat        *comp,
+                                                                const gfloat        *mask,
+                                                                gfloat               opacity,
+                                                                gfloat              *out,
+                                                                gint                 samples);
 
-void gimp_operation_layer_mode_composite_src_over_sub  (const gfloat        *in,
-                                                        const gfloat        *layer,
-                                                        const gfloat        *comp,
-                                                        const gfloat        *mask,
-                                                        gfloat               opacity,
-                                                        gfloat              *out,
-                                                        gint                 samples);
-void gimp_operation_layer_mode_composite_src_atop_sub  (const gfloat        *in,
-                                                        const gfloat        *layer,
-                                                        const gfloat        *comp,
-                                                        const gfloat        *mask,
-                                                        gfloat               opacity,
-                                                        gfloat              *out,
-                                                        gint                 samples);
-void gimp_operation_layer_mode_composite_dst_atop_sub  (const gfloat        *in,
-                                                        const gfloat        *layer,
-                                                        const gfloat        *comp,
-                                                        const gfloat        *mask,
-                                                        gfloat               opacity,
-                                                        gfloat              *out,
-                                                        gint                 samples);
-void gimp_operation_layer_mode_composite_src_in_sub    (const gfloat        *in,
-                                                        const gfloat        *layer,
-                                                        const gfloat        *comp,
-                                                        const gfloat        *mask,
-                                                        gfloat               opacity,
-                                                        gfloat              *out,
-                                                        gint                 samples);
+void gimp_operation_layer_mode_composite_union_sub             (const gfloat        *in,
+                                                                const gfloat        *layer,
+                                                                const gfloat        *comp,
+                                                                const gfloat        *mask,
+                                                                gfloat               opacity,
+                                                                gfloat              *out,
+                                                                gint                 samples);
+void gimp_operation_layer_mode_composite_clip_to_backdrop_sub  (const gfloat        *in,
+                                                                const gfloat        *layer,
+                                                                const gfloat        *comp,
+                                                                const gfloat        *mask,
+                                                                gfloat               opacity,
+                                                                gfloat              *out,
+                                                                gint                 samples);
+void gimp_operation_layer_mode_composite_clip_to_layer_sub     (const gfloat        *in,
+                                                                const gfloat        *layer,
+                                                                const gfloat        *comp,
+                                                                const gfloat        *mask,
+                                                                gfloat               opacity,
+                                                                gfloat              *out,
+                                                                gint                 samples);
+void gimp_operation_layer_mode_composite_intersection_sub      (const gfloat        *in,
+                                                                const gfloat        *layer,
+                                                                const gfloat        *comp,
+                                                                const gfloat        *mask,
+                                                                gfloat               opacity,
+                                                                gfloat              *out,
+                                                                gint                 samples);
 
 #if COMPILE_SSE2_INTRINISICS
 
-void gimp_operation_layer_mode_composite_src_atop_sse2 (const gfloat        *in,
-                                                        const gfloat        *layer,
-                                                        const gfloat        *comp,
-                                                        const gfloat        *mask,
-                                                        gfloat               opacity,
-                                                        gfloat              *out,
-                                                        gint                 samples);
+void gimp_operation_layer_mode_composite_clip_to_backdrop_sse2 (const gfloat        *in,
+                                                                const gfloat        *layer,
+                                                                const gfloat        *comp,
+                                                                const gfloat        *mask,
+                                                                gfloat               opacity,
+                                                                gfloat              *out,
+                                                                gint                 samples);
 
 #endif /* COMPILE_SSE2_INTRINISICS */
 
diff --git a/app/operations/layer-modes/gimpoperationlayermode.c 
b/app/operations/layer-modes/gimpoperationlayermode.c
index bf5c9c4..0ae1019 100644
--- a/app/operations/layer-modes/gimpoperationlayermode.c
+++ b/app/operations/layer-modes/gimpoperationlayermode.c
@@ -120,15 +120,15 @@ G_DEFINE_TYPE (GimpOperationLayerMode, gimp_operation_layer_mode,
 
 static const Babl *gimp_layer_color_space_fish[3 /* from */][3 /* to */];
 
-static CompositeFunc composite_src_over     = gimp_operation_layer_mode_composite_src_over;
-static CompositeFunc composite_src_atop     = gimp_operation_layer_mode_composite_src_atop;
-static CompositeFunc composite_dst_atop     = gimp_operation_layer_mode_composite_dst_atop;
-static CompositeFunc composite_src_in       = gimp_operation_layer_mode_composite_src_in;
+static CompositeFunc composite_union                = gimp_operation_layer_mode_composite_union;
+static CompositeFunc composite_clip_to_backdrop     = gimp_operation_layer_mode_composite_clip_to_backdrop;
+static CompositeFunc composite_clip_to_layer        = gimp_operation_layer_mode_composite_clip_to_layer;
+static CompositeFunc composite_intersection         = gimp_operation_layer_mode_composite_intersection;
 
-static CompositeFunc composite_src_over_sub = gimp_operation_layer_mode_composite_src_over_sub;
-static CompositeFunc composite_src_atop_sub = gimp_operation_layer_mode_composite_src_atop_sub;
-static CompositeFunc composite_dst_atop_sub = gimp_operation_layer_mode_composite_dst_atop_sub;
-static CompositeFunc composite_src_in_sub   = gimp_operation_layer_mode_composite_src_in_sub;
+static CompositeFunc composite_union_sub            = gimp_operation_layer_mode_composite_union_sub;
+static CompositeFunc composite_clip_to_backdrop_sub = 
gimp_operation_layer_mode_composite_clip_to_backdrop_sub;
+static CompositeFunc composite_clip_to_layer_sub    = gimp_operation_layer_mode_composite_clip_to_layer_sub;
+static CompositeFunc composite_intersection_sub     = gimp_operation_layer_mode_composite_intersection_sub;
 
 
 static void
@@ -188,7 +188,7 @@ gimp_operation_layer_mode_class_init (GimpOperationLayerModeClass *klass)
                                    g_param_spec_enum ("composite-mode",
                                                       NULL, NULL,
                                                       GIMP_TYPE_LAYER_COMPOSITE_MODE,
-                                                      GIMP_LAYER_COMPOSITE_SRC_OVER,
+                                                      GIMP_LAYER_COMPOSITE_UNION,
                                                       GIMP_PARAM_READWRITE |
                                                       G_PARAM_CONSTRUCT));
 
@@ -221,7 +221,7 @@ gimp_operation_layer_mode_class_init (GimpOperationLayerModeClass *klass)
 
 #if COMPILE_SSE2_INTRINISICS
   if (gimp_cpu_accel_get_support () & GIMP_CPU_ACCEL_X86_SSE2)
-    composite_src_atop = gimp_operation_layer_mode_composite_src_atop_sse2;
+    composite_clip_to_backdrop = gimp_operation_layer_mode_composite_clip_to_backdrop_sse2;
 #endif
 }
 
@@ -312,6 +312,14 @@ gimp_operation_layer_mode_prepare (GeglOperation *operation)
 
   self->real_composite_mode = self->composite_mode;
 
+  if (self->real_composite_mode == GIMP_LAYER_COMPOSITE_AUTO)
+    {
+      self->real_composite_mode =
+        gimp_layer_mode_get_composite_mode (self->layer_mode);
+
+      g_warn_if_fail (self->real_composite_mode != GIMP_LAYER_COMPOSITE_AUTO);
+    }
+
   self->function       = gimp_layer_mode_get_function       (self->layer_mode);
   self->blend_function = gimp_layer_mode_get_blend_function (self->layer_mode);
 
@@ -325,7 +333,7 @@ gimp_operation_layer_mode_prepare (GeglOperation *operation)
       preferred_format = gegl_operation_get_source_format (operation, "input");
     }
   /* otherwise, we're the last node (corresponding to the bottom layer).
-   * in this case, we render the layer (as if) using src-over mode.
+   * in this case, we render the layer (as if) using UNION mode.
    */
   else
     {
@@ -340,11 +348,11 @@ gimp_operation_layer_mode_prepare (GeglOperation *operation)
           self->function = process_last_node;
         }
       /* otherwise, use the original process function, but force the
-       * composite mode to SRC_OVER.
+       * composite mode to UNION.
        */
       else
         {
-          self->real_composite_mode = GIMP_LAYER_COMPOSITE_SRC_OVER;
+          self->real_composite_mode = GIMP_LAYER_COMPOSITE_UNION;
         }
 
       preferred_format = gegl_operation_get_source_format (operation, "aux");
@@ -562,8 +570,8 @@ gimp_operation_layer_mode_real_process (GeglOperation       *operation,
     }
 
   composite_needs_in_color =
-    composite_mode == GIMP_LAYER_COMPOSITE_SRC_OVER ||
-    composite_mode == GIMP_LAYER_COMPOSITE_SRC_ATOP;
+    composite_mode == GIMP_LAYER_COMPOSITE_UNION ||
+    composite_mode == GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP;
 
   blend_in    = in;
   blend_layer = layer;
@@ -701,25 +709,25 @@ gimp_operation_layer_mode_real_process (GeglOperation       *operation,
     {
       switch (composite_mode)
         {
-        case GIMP_LAYER_COMPOSITE_SRC_ATOP:
-        default:
-          composite_src_atop (in, layer, blend_out, mask, opacity,
-                              out, samples);
+        case GIMP_LAYER_COMPOSITE_UNION:
+        case GIMP_LAYER_COMPOSITE_AUTO:
+          composite_union (in, layer, blend_out, mask, opacity,
+                           out, samples);
           break;
 
-        case GIMP_LAYER_COMPOSITE_SRC_OVER:
-          composite_src_over (in, layer, blend_out, mask, opacity,
-                              out, samples);
+        case GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP:
+          composite_clip_to_backdrop (in, layer, blend_out, mask, opacity,
+                                      out, samples);
           break;
 
-        case GIMP_LAYER_COMPOSITE_DST_ATOP:
-          composite_dst_atop (in, layer, blend_out, mask, opacity,
-                              out, samples);
+        case GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER:
+          composite_clip_to_layer (in, layer, blend_out, mask, opacity,
+                                   out, samples);
           break;
 
-        case GIMP_LAYER_COMPOSITE_SRC_IN:
-          composite_src_in (in, layer, blend_out, mask, opacity,
-                            out, samples);
+        case GIMP_LAYER_COMPOSITE_INTERSECTION:
+          composite_intersection (in, layer, blend_out, mask, opacity,
+                                  out, samples);
           break;
         }
     }
@@ -727,25 +735,25 @@ gimp_operation_layer_mode_real_process (GeglOperation       *operation,
     {
       switch (composite_mode)
         {
-        case GIMP_LAYER_COMPOSITE_SRC_ATOP:
-        default:
-          composite_src_atop_sub (in, layer, blend_out, mask, opacity,
-                                  out, samples);
+        case GIMP_LAYER_COMPOSITE_UNION:
+        case GIMP_LAYER_COMPOSITE_AUTO:
+          composite_union_sub (in, layer, blend_out, mask, opacity,
+                               out, samples);
           break;
 
-        case GIMP_LAYER_COMPOSITE_SRC_OVER:
-          composite_src_over_sub (in, layer, blend_out, mask, opacity,
-                                  out, samples);
+        case GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP:
+          composite_clip_to_backdrop_sub (in, layer, blend_out, mask, opacity,
+                                          out, samples);
           break;
 
-        case GIMP_LAYER_COMPOSITE_DST_ATOP:
-          composite_dst_atop_sub (in, layer, blend_out, mask, opacity,
-                                  out, samples);
+        case GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER:
+          composite_clip_to_layer_sub (in, layer, blend_out, mask, opacity,
+                                       out, samples);
           break;
 
-        case GIMP_LAYER_COMPOSITE_SRC_IN:
-          composite_src_in_sub (in, layer, blend_out, mask, opacity,
-                                out, samples);
+        case GIMP_LAYER_COMPOSITE_INTERSECTION:
+          composite_intersection_sub (in, layer, blend_out, mask, opacity,
+                                      out, samples);
           break;
         }
     }
diff --git a/app/operations/layer-modes/gimpoperationmerge.c b/app/operations/layer-modes/gimpoperationmerge.c
index 736d114..639491c 100644
--- a/app/operations/layer-modes/gimpoperationmerge.c
+++ b/app/operations/layer-modes/gimpoperationmerge.c
@@ -81,7 +81,7 @@ gimp_operation_merge_process (GeglOperation       *op,
 
   switch (layer_mode->real_composite_mode)
     {
-    case GIMP_LAYER_COMPOSITE_SRC_OVER:
+    case GIMP_LAYER_COMPOSITE_UNION:
     case GIMP_LAYER_COMPOSITE_AUTO:
       while (samples--)
         {
@@ -124,7 +124,7 @@ gimp_operation_merge_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_SRC_ATOP:
+    case GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP:
       while (samples--)
         {
           gfloat in_alpha    = in[ALPHA];
@@ -164,7 +164,7 @@ gimp_operation_merge_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_DST_ATOP:
+    case GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER:
       while (samples--)
         {
           gfloat layer_alpha = layer[ALPHA] * opacity;
@@ -199,7 +199,7 @@ gimp_operation_merge_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_SRC_IN:
+    case GIMP_LAYER_COMPOSITE_INTERSECTION:
       while (samples--)
         {
           gfloat in_alpha    = in[ALPHA];
diff --git a/app/operations/layer-modes/gimpoperationnormal-sse2.c 
b/app/operations/layer-modes/gimpoperationnormal-sse2.c
index 60bd847..45e7149 100644
--- a/app/operations/layer-modes/gimpoperationnormal-sse2.c
+++ b/app/operations/layer-modes/gimpoperationnormal-sse2.c
@@ -64,7 +64,7 @@ gimp_operation_normal_process_sse2 (GeglOperation       *op,
 
       switch (layer_mode->real_composite_mode)
         {
-        case GIMP_LAYER_COMPOSITE_SRC_OVER:
+        case GIMP_LAYER_COMPOSITE_UNION:
         case GIMP_LAYER_COMPOSITE_AUTO:
           while (samples--)
             {
@@ -121,7 +121,7 @@ gimp_operation_normal_process_sse2 (GeglOperation       *op,
             }
           break;
 
-        case GIMP_LAYER_COMPOSITE_SRC_ATOP:
+        case GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP:
           while (samples--)
             {
               __v4sf rgba_in, rgba_layer, alpha;
@@ -168,7 +168,7 @@ gimp_operation_normal_process_sse2 (GeglOperation       *op,
             }
           break;
 
-        case GIMP_LAYER_COMPOSITE_DST_ATOP:
+        case GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER:
           while (samples--)
             {
               __v4sf rgba_in, rgba_layer, alpha;
@@ -210,7 +210,7 @@ gimp_operation_normal_process_sse2 (GeglOperation       *op,
             }
           break;
 
-        case GIMP_LAYER_COMPOSITE_SRC_IN:
+        case GIMP_LAYER_COMPOSITE_INTERSECTION:
           while (samples--)
             {
               __v4sf rgba_in, rgba_layer, alpha;
diff --git a/app/operations/layer-modes/gimpoperationnormal-sse4.c 
b/app/operations/layer-modes/gimpoperationnormal-sse4.c
index c52763b..b1885a2 100644
--- a/app/operations/layer-modes/gimpoperationnormal-sse4.c
+++ b/app/operations/layer-modes/gimpoperationnormal-sse4.c
@@ -64,7 +64,7 @@ gimp_operation_normal_process_sse4 (GeglOperation       *op,
 
       switch (layer_mode->real_composite_mode)
         {
-        case GIMP_LAYER_COMPOSITE_SRC_OVER:
+        case GIMP_LAYER_COMPOSITE_UNION:
         case GIMP_LAYER_COMPOSITE_AUTO:
           while (samples--)
             {
@@ -120,7 +120,7 @@ gimp_operation_normal_process_sse4 (GeglOperation       *op,
             }
           break;
 
-        case GIMP_LAYER_COMPOSITE_SRC_ATOP:
+        case GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP:
           while (samples--)
             {
               __v4sf rgba_in, rgba_layer, alpha;
@@ -166,7 +166,7 @@ gimp_operation_normal_process_sse4 (GeglOperation       *op,
             }
           break;
 
-        case GIMP_LAYER_COMPOSITE_DST_ATOP:
+        case GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER:
           while (samples--)
             {
               __v4sf rgba_in, rgba_layer, alpha;
@@ -207,7 +207,7 @@ gimp_operation_normal_process_sse4 (GeglOperation       *op,
             }
           break;
 
-        case GIMP_LAYER_COMPOSITE_SRC_IN:
+        case GIMP_LAYER_COMPOSITE_INTERSECTION:
           while (samples--)
             {
               __v4sf rgba_in, rgba_layer, alpha;
diff --git a/app/operations/layer-modes/gimpoperationnormal.c 
b/app/operations/layer-modes/gimpoperationnormal.c
index 4caea70..2588955 100644
--- a/app/operations/layer-modes/gimpoperationnormal.c
+++ b/app/operations/layer-modes/gimpoperationnormal.c
@@ -102,7 +102,7 @@ gimp_operation_normal_process (GeglOperation       *op,
 
   switch (layer_mode->real_composite_mode)
     {
-    case GIMP_LAYER_COMPOSITE_SRC_OVER:
+    case GIMP_LAYER_COMPOSITE_UNION:
     case GIMP_LAYER_COMPOSITE_AUTO:
       while (samples--)
         {
@@ -144,7 +144,7 @@ gimp_operation_normal_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_SRC_ATOP:
+    case GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP:
       while (samples--)
         {
           gfloat layer_alpha;
@@ -183,7 +183,7 @@ gimp_operation_normal_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_DST_ATOP:
+    case GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER:
       while (samples--)
         {
           gfloat layer_alpha;
@@ -222,7 +222,7 @@ gimp_operation_normal_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_SRC_IN:
+    case GIMP_LAYER_COMPOSITE_INTERSECTION:
       while (samples--)
         {
           gfloat layer_alpha;
diff --git a/app/operations/layer-modes/gimpoperationreplace.c 
b/app/operations/layer-modes/gimpoperationreplace.c
index db7e4ce..2175e5a 100644
--- a/app/operations/layer-modes/gimpoperationreplace.c
+++ b/app/operations/layer-modes/gimpoperationreplace.c
@@ -82,7 +82,7 @@ gimp_operation_replace_process (GeglOperation       *op,
 
   switch (layer_mode->real_composite_mode)
     {
-    case GIMP_LAYER_COMPOSITE_SRC_OVER:
+    case GIMP_LAYER_COMPOSITE_UNION:
     case GIMP_LAYER_COMPOSITE_AUTO:
       while (samples--)
         {
@@ -119,7 +119,7 @@ gimp_operation_replace_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_SRC_ATOP:
+    case GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP:
       while (samples--)
         {
           gfloat opacity_value = opacity;
@@ -144,7 +144,7 @@ gimp_operation_replace_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_DST_ATOP:
+    case GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER:
       while (samples--)
         {
           gfloat opacity_value = opacity;
@@ -178,7 +178,7 @@ gimp_operation_replace_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_SRC_IN:
+    case GIMP_LAYER_COMPOSITE_INTERSECTION:
       while (samples--)
         {
           gint b;
diff --git a/app/operations/layer-modes/gimpoperationsplit.c b/app/operations/layer-modes/gimpoperationsplit.c
index 22f7f1a..1b4fbc4 100644
--- a/app/operations/layer-modes/gimpoperationsplit.c
+++ b/app/operations/layer-modes/gimpoperationsplit.c
@@ -81,7 +81,7 @@ gimp_operation_split_process (GeglOperation       *op,
 
   switch (layer_mode->real_composite_mode)
     {
-    case GIMP_LAYER_COMPOSITE_SRC_OVER:
+    case GIMP_LAYER_COMPOSITE_UNION:
       while (samples--)
         {
           gfloat in_alpha    = in[ALPHA];
@@ -122,7 +122,7 @@ gimp_operation_split_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_SRC_ATOP:
+    case GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP:
     case GIMP_LAYER_COMPOSITE_AUTO:
       while (samples--)
         {
@@ -152,7 +152,7 @@ gimp_operation_split_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_DST_ATOP:
+    case GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER:
       while (samples--)
         {
           gfloat in_alpha    = in[ALPHA];
@@ -191,7 +191,7 @@ gimp_operation_split_process (GeglOperation       *op,
         }
       break;
 
-    case GIMP_LAYER_COMPOSITE_SRC_IN:
+    case GIMP_LAYER_COMPOSITE_INTERSECTION:
       while (samples--)
         {
           gint   b;
diff --git a/app/operations/operations-enums.c b/app/operations/operations-enums.c
index 84826fe..4825ea3 100644
--- a/app/operations/operations-enums.c
+++ b/app/operations/operations-enums.c
@@ -47,20 +47,20 @@ gimp_layer_composite_mode_get_type (void)
   static const GEnumValue values[] =
   {
     { GIMP_LAYER_COMPOSITE_AUTO, "GIMP_LAYER_COMPOSITE_AUTO", "auto" },
-    { GIMP_LAYER_COMPOSITE_SRC_OVER, "GIMP_LAYER_COMPOSITE_SRC_OVER", "src-over" },
-    { GIMP_LAYER_COMPOSITE_SRC_ATOP, "GIMP_LAYER_COMPOSITE_SRC_ATOP", "src-atop" },
-    { GIMP_LAYER_COMPOSITE_DST_ATOP, "GIMP_LAYER_COMPOSITE_DST_ATOP", "dst-atop" },
-    { GIMP_LAYER_COMPOSITE_SRC_IN, "GIMP_LAYER_COMPOSITE_SRC_IN", "src-in" },
+    { GIMP_LAYER_COMPOSITE_UNION, "GIMP_LAYER_COMPOSITE_UNION", "union" },
+    { GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP, "GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP", "clip-to-backdrop" },
+    { GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER, "GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER", "clip-to-layer" },
+    { GIMP_LAYER_COMPOSITE_INTERSECTION, "GIMP_LAYER_COMPOSITE_INTERSECTION", "intersection" },
     { 0, NULL, NULL }
   };
 
   static const GimpEnumDesc descs[] =
   {
     { GIMP_LAYER_COMPOSITE_AUTO, NC_("layer-composite-mode", "Auto"), NULL },
-    { GIMP_LAYER_COMPOSITE_SRC_OVER, NC_("layer-composite-mode", "Source over"), NULL },
-    { GIMP_LAYER_COMPOSITE_SRC_ATOP, NC_("layer-composite-mode", "Source atop"), NULL },
-    { GIMP_LAYER_COMPOSITE_DST_ATOP, NC_("layer-composite-mode", "Destination atop"), NULL },
-    { GIMP_LAYER_COMPOSITE_SRC_IN, NC_("layer-composite-mode", "Source in"), NULL },
+    { GIMP_LAYER_COMPOSITE_UNION, NC_("layer-composite-mode", "Union"), NULL },
+    { GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP, NC_("layer-composite-mode", "Clip to backdrop"), NULL },
+    { GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER, NC_("layer-composite-mode", "Clip to layer"), NULL },
+    { GIMP_LAYER_COMPOSITE_INTERSECTION, NC_("layer-composite-mode", "Intersection"), NULL },
     { 0, NULL, NULL }
   };
 
diff --git a/app/operations/operations-enums.h b/app/operations/operations-enums.h
index 96d43b6..2b13702 100644
--- a/app/operations/operations-enums.h
+++ b/app/operations/operations-enums.h
@@ -40,11 +40,11 @@ GType gimp_layer_composite_mode_get_type (void) G_GNUC_CONST;
 
 typedef enum
 {
-  GIMP_LAYER_COMPOSITE_AUTO,      /*< desc="Auto"             >*/
-  GIMP_LAYER_COMPOSITE_SRC_OVER,  /*< desc="Source over"      >*/
-  GIMP_LAYER_COMPOSITE_SRC_ATOP,  /*< desc="Source atop"      >*/
-  GIMP_LAYER_COMPOSITE_DST_ATOP,  /*< desc="Destination atop" >*/
-  GIMP_LAYER_COMPOSITE_SRC_IN     /*< desc="Source in"        >*/
+  GIMP_LAYER_COMPOSITE_AUTO,             /*< desc="Auto"             >*/
+  GIMP_LAYER_COMPOSITE_UNION,            /*< desc="Union"            >*/
+  GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP, /*< desc="Clip to backdrop" >*/
+  GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER,    /*< desc="Clip to layer"    >*/
+  GIMP_LAYER_COMPOSITE_INTERSECTION      /*< desc="Intersection"     >*/
 } GimpLayerCompositeMode;
 
 
diff --git a/libgimp/gimpenums.h b/libgimp/gimpenums.h
index cf69585..8899d2b 100644
--- a/libgimp/gimpenums.h
+++ b/libgimp/gimpenums.h
@@ -82,10 +82,10 @@ GType gimp_layer_composite_mode_get_type (void) G_GNUC_CONST;
 typedef enum
 {
   GIMP_LAYER_COMPOSITE_AUTO,
-  GIMP_LAYER_COMPOSITE_SRC_OVER,
-  GIMP_LAYER_COMPOSITE_SRC_ATOP,
-  GIMP_LAYER_COMPOSITE_DST_ATOP,
-  GIMP_LAYER_COMPOSITE_SRC_IN
+  GIMP_LAYER_COMPOSITE_UNION,
+  GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP,
+  GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER,
+  GIMP_LAYER_COMPOSITE_INTERSECTION
 } GimpLayerCompositeMode;
 
 
diff --git a/menus/layers-menu.xml b/menus/layers-menu.xml
index 9a36cd7..03ecfd5 100644
--- a/menus/layers-menu.xml
+++ b/menus/layers-menu.xml
@@ -17,10 +17,10 @@
     </menu>
     <menu action="layers-composite-mode-menu" name="Composite Mode">
       <menuitem action="layers-composite-mode-auto" />
-      <menuitem action="layers-composite-mode-src-over" />
-      <menuitem action="layers-composite-mode-src-atop" />
-      <menuitem action="layers-composite-mode-src-in" />
-      <menuitem action="layers-composite-mode-dst-atop" />
+      <menuitem action="layers-composite-mode-union" />
+      <menuitem action="layers-composite-mode-clip-to-backdrop" />
+      <menuitem action="layers-composite-mode-clip-to-layer" />
+      <menuitem action="layers-composite-mode-intersection" />
     </menu>
     <menu action="layers-color-tag-menu" name="Color Tags">
       <menuitem action="layers-color-tag-none" />
diff --git a/pdb/enums.pl b/pdb/enums.pl
index cca1ad7..85075b9 100644
--- a/pdb/enums.pl
+++ b/pdb/enums.pl
@@ -692,15 +692,15 @@ package Gimp::CodeGen::enums;
        { contig => 1,
          header => 'operations/operations-enums.h',
          symbols => [ qw(GIMP_LAYER_COMPOSITE_AUTO
-                         GIMP_LAYER_COMPOSITE_SRC_OVER
-                         GIMP_LAYER_COMPOSITE_SRC_ATOP
-                         GIMP_LAYER_COMPOSITE_DST_ATOP
-                         GIMP_LAYER_COMPOSITE_SRC_IN) ],
+                         GIMP_LAYER_COMPOSITE_UNION
+                         GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP
+                         GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER
+                         GIMP_LAYER_COMPOSITE_INTERSECTION) ],
          mapping => { GIMP_LAYER_COMPOSITE_AUTO => '0',
-                      GIMP_LAYER_COMPOSITE_SRC_OVER => '1',
-                      GIMP_LAYER_COMPOSITE_SRC_ATOP => '2',
-                      GIMP_LAYER_COMPOSITE_DST_ATOP => '3',
-                      GIMP_LAYER_COMPOSITE_SRC_IN => '4' }
+                      GIMP_LAYER_COMPOSITE_UNION => '1',
+                      GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP => '2',
+                      GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER => '3',
+                      GIMP_LAYER_COMPOSITE_INTERSECTION => '4' }
        },
     GimpLayerMode =>
        { contig => 1,
diff --git a/plug-ins/file-psd/psd-util.c b/plug-ins/file-psd/psd-util.c
index aba3108..4610058 100644
--- a/plug-ins/file-psd/psd-util.c
+++ b/plug-ins/file-psd/psd-util.c
@@ -746,7 +746,7 @@ psd_to_gimp_blend_mode (const gchar   *psd_mode,
    */
   mode_info->blend_space     = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL;
   mode_info->composite_space = GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL;
-  mode_info->composite_mode  = GIMP_LAYER_COMPOSITE_SRC_OVER;
+  mode_info->composite_mode  = GIMP_LAYER_COMPOSITE_UNION;
 
   for (i = 0; i < G_N_ELEMENTS (layer_mode_map); i++)
     {
@@ -803,11 +803,11 @@ gimp_to_psd_blend_mode (const LayerModeInfo *mode_info)
     }
 
   if (mode_info->composite_mode != GIMP_LAYER_COMPOSITE_AUTO &&
-      mode_info->composite_mode != GIMP_LAYER_COMPOSITE_SRC_OVER)
+      mode_info->composite_mode != GIMP_LAYER_COMPOSITE_UNION)
     {
       if (CONVERSION_WARNINGS)
         g_message ("Unsupported composite mode: %s. "
-                   "Composite mode reverts to src-over",
+                   "Composite mode reverts to union",
                    get_enum_value_nick (GIMP_TYPE_LAYER_COMPOSITE_MODE,
                                         mode_info->composite_mode));
     }


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