From a24e232522b11cb68248fce36740c6fe6fc0b7c1 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Sun, 15 Jan 2017 15:23:57 +0100 Subject: [PATCH] app: move functions on enum GimpLayerMode to new files gimp-layer-modes.[ch] --- app/Makefile.am | 3 +- app/core/Makefile.am | 2 + app/core/gimp-layer-modes.c | 324 +++++++++++++++++++++++++++++++++ app/core/gimp-layer-modes.h | 32 ++++ app/gegl/gimp-gegl-nodes.c | 347 +----------------------------------- app/gegl/gimp-gegl-nodes.h | 3 - 6 files changed, 365 insertions(+), 346 deletions(-) create mode 100644 app/core/gimp-layer-modes.c create mode 100644 app/core/gimp-layer-modes.h diff --git a/app/Makefile.am b/app/Makefile.am index d5e3734504..0e941298f3 100644 --- a/app/Makefile.am +++ b/app/Makefile.am @@ -133,7 +133,8 @@ AM_LDFLAGS = \ -Wl,-u,$(SYMPREFIX)xcf_init \ -Wl,-u,$(SYMPREFIX)internal_procs_init \ -Wl,-u,$(SYMPREFIX)gimp_plug_in_manager_restore \ - -Wl,-u,$(SYMPREFIX)gimp_pdb_compat_param_spec + -Wl,-u,$(SYMPREFIX)gimp_pdb_compat_param_spec \ + -Wl,-u,$(SYMPREFIX)gimp_layer_mode_is_linear gimpconsoleldadd = \ xcf/libappxcf.a \ diff --git a/app/core/Makefile.am b/app/core/Makefile.am index 20f439f452..3a28eb44ff 100644 --- a/app/core/Makefile.am +++ b/app/core/Makefile.am @@ -44,6 +44,8 @@ libappcore_a_sources = \ gimp-gradients.h \ gimp-gui.c \ gimp-gui.h \ + gimp-layer-modes.c \ + gimp-layer-modes.h \ gimp-memsize.c \ gimp-memsize.h \ gimp-modules.c \ diff --git a/app/core/gimp-layer-modes.c b/app/core/gimp-layer-modes.c new file mode 100644 index 0000000000..5e58a7dd55 --- /dev/null +++ b/app/core/gimp-layer-modes.c @@ -0,0 +1,324 @@ +/* GIMP - The GNU Image Manipulation Program + * Copyright (C) 1995 Spencer Kimball and Peter Mattis + * + * gimp-layer-modes.c + * Copyright (C) 2017 Michael Natterer + * Øyvind Kolås + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "config.h" + +#include + +#include "core-types.h" + +#include "gimp-layer-modes.h" + + +gboolean +gimp_layer_mode_is_legacy (GimpLayerMode mode) +{ + switch (mode) + { + case GIMP_LAYER_MODE_MULTIPLY_LEGACY: + case GIMP_LAYER_MODE_SCREEN_LEGACY: + case GIMP_LAYER_MODE_OVERLAY_LEGACY: + case GIMP_LAYER_MODE_DIFFERENCE_LEGACY: + case GIMP_LAYER_MODE_ADDITION_LEGACY: + case GIMP_LAYER_MODE_SUBTRACT_LEGACY: + case GIMP_LAYER_MODE_DARKEN_ONLY_LEGACY: + case GIMP_LAYER_MODE_LIGHTEN_ONLY_LEGACY: + case GIMP_LAYER_MODE_HSV_HUE_LEGACY: + case GIMP_LAYER_MODE_HSV_SATURATION_LEGACY: + case GIMP_LAYER_MODE_HSV_COLOR_LEGACY: + case GIMP_LAYER_MODE_HSV_VALUE_LEGACY: + case GIMP_LAYER_MODE_DIVIDE_LEGACY: + case GIMP_LAYER_MODE_DODGE_LEGACY: + case GIMP_LAYER_MODE_BURN_LEGACY: + case GIMP_LAYER_MODE_HARDLIGHT_LEGACY: + case GIMP_LAYER_MODE_SOFTLIGHT_LEGACY: + case GIMP_LAYER_MODE_GRAIN_EXTRACT_LEGACY: + case GIMP_LAYER_MODE_GRAIN_MERGE_LEGACY: + return TRUE; + + default: + break; + } + + return FALSE; +} + +gboolean +gimp_layer_mode_is_linear (GimpLayerMode mode) +{ + switch (mode) + { + case GIMP_LAYER_MODE_NORMAL_NON_LINEAR: + return FALSE; + + case GIMP_LAYER_MODE_DISSOLVE: + return TRUE; + + case GIMP_LAYER_MODE_BEHIND: + return FALSE; + + case GIMP_LAYER_MODE_MULTIPLY_LEGACY: + case GIMP_LAYER_MODE_SCREEN_LEGACY: + case GIMP_LAYER_MODE_OVERLAY_LEGACY: + case GIMP_LAYER_MODE_DIFFERENCE_LEGACY: + case GIMP_LAYER_MODE_ADDITION_LEGACY: + case GIMP_LAYER_MODE_SUBTRACT_LEGACY: + case GIMP_LAYER_MODE_DARKEN_ONLY_LEGACY: + case GIMP_LAYER_MODE_LIGHTEN_ONLY_LEGACY: + case GIMP_LAYER_MODE_HSV_HUE_LEGACY: + case GIMP_LAYER_MODE_HSV_SATURATION_LEGACY: + case GIMP_LAYER_MODE_HSV_COLOR_LEGACY: + case GIMP_LAYER_MODE_HSV_VALUE_LEGACY: + case GIMP_LAYER_MODE_DIVIDE_LEGACY: + case GIMP_LAYER_MODE_DODGE_LEGACY: + case GIMP_LAYER_MODE_BURN_LEGACY: + case GIMP_LAYER_MODE_HARDLIGHT_LEGACY: + case GIMP_LAYER_MODE_SOFTLIGHT_LEGACY: + case GIMP_LAYER_MODE_GRAIN_EXTRACT_LEGACY: + case GIMP_LAYER_MODE_GRAIN_MERGE_LEGACY: + return FALSE; + + case GIMP_LAYER_MODE_COLOR_ERASE: + case GIMP_LAYER_MODE_OVERLAY: + case GIMP_LAYER_MODE_LCH_HUE: + case GIMP_LAYER_MODE_LCH_CHROMA: + case GIMP_LAYER_MODE_LCH_COLOR: + case GIMP_LAYER_MODE_LCH_LIGHTNESS: + return FALSE; + + case GIMP_LAYER_MODE_NORMAL: + return TRUE; + + case GIMP_LAYER_MODE_MULTIPLY: + case GIMP_LAYER_MODE_SCREEN: + case GIMP_LAYER_MODE_DIFFERENCE: + case GIMP_LAYER_MODE_ADDITION: + case GIMP_LAYER_MODE_SUBTRACT: + case GIMP_LAYER_MODE_DARKEN_ONLY: + case GIMP_LAYER_MODE_LIGHTEN_ONLY: + case GIMP_LAYER_MODE_HSV_HUE: + case GIMP_LAYER_MODE_HSV_SATURATION: + case GIMP_LAYER_MODE_HSV_COLOR: + case GIMP_LAYER_MODE_HSV_VALUE: + case GIMP_LAYER_MODE_DIVIDE: + case GIMP_LAYER_MODE_DODGE: + case GIMP_LAYER_MODE_BURN: + case GIMP_LAYER_MODE_HARDLIGHT: + case GIMP_LAYER_MODE_SOFTLIGHT: + case GIMP_LAYER_MODE_GRAIN_EXTRACT: + case GIMP_LAYER_MODE_GRAIN_MERGE: + return FALSE; + + case GIMP_LAYER_MODE_BEHIND_LINEAR: + case GIMP_LAYER_MODE_MULTIPLY_LINEAR: + case GIMP_LAYER_MODE_DIFFERENCE_LINEAR: + case GIMP_LAYER_MODE_ADDITION_LINEAR: + case GIMP_LAYER_MODE_SUBTRACT_LINEAR: + case GIMP_LAYER_MODE_DARKEN_ONLY_LINEAR: + case GIMP_LAYER_MODE_LIGHTEN_ONLY_LINEAR: + case GIMP_LAYER_MODE_DIVIDE_LINEAR: + case GIMP_LAYER_MODE_DODGE_LINEAR: + case GIMP_LAYER_MODE_BURN_LINEAR: + case GIMP_LAYER_MODE_GRAIN_EXTRACT_LINEAR: + case GIMP_LAYER_MODE_GRAIN_MERGE_LINEAR: + return TRUE; + + case GIMP_LAYER_MODE_ERASE: + return TRUE; + + case GIMP_LAYER_MODE_REPLACE: + return FALSE; + + case GIMP_LAYER_MODE_ANTI_ERASE: + return TRUE; + } + + return FALSE; +} + +const gchar * +gimp_layer_mode_get_operation (GimpLayerMode mode) +{ + switch (mode) + { + case GIMP_LAYER_MODE_NORMAL_NON_LINEAR: + case GIMP_LAYER_MODE_NORMAL: + return "gimp:normal"; + + case GIMP_LAYER_MODE_DISSOLVE: + return "gimp:dissolve"; + + case GIMP_LAYER_MODE_BEHIND: + case GIMP_LAYER_MODE_BEHIND_LINEAR: + return "gimp:behind"; + + case GIMP_LAYER_MODE_MULTIPLY_LEGACY: + return "gimp:multiply-legacy"; + + case GIMP_LAYER_MODE_MULTIPLY: + case GIMP_LAYER_MODE_MULTIPLY_LINEAR: + return "gimp:multiply"; + + case GIMP_LAYER_MODE_SCREEN_LEGACY: + return "gimp:screen-legacy"; + + case GIMP_LAYER_MODE_SCREEN: + return "gimp:screen"; + + case GIMP_LAYER_MODE_OVERLAY_LEGACY: + return "gimp:softlight-legacy"; + + case GIMP_LAYER_MODE_DIFFERENCE_LEGACY: + return "gimp:difference-legacy"; + + case GIMP_LAYER_MODE_DIFFERENCE: + case GIMP_LAYER_MODE_DIFFERENCE_LINEAR: + return "gimp:difference"; + + case GIMP_LAYER_MODE_ADDITION_LEGACY: + return "gimp:addition-legacy"; + + case GIMP_LAYER_MODE_ADDITION: + case GIMP_LAYER_MODE_ADDITION_LINEAR: + return "gimp:addition"; + + case GIMP_LAYER_MODE_SUBTRACT_LEGACY: + return "gimp:subtract-legacy"; + + case GIMP_LAYER_MODE_SUBTRACT: + case GIMP_LAYER_MODE_SUBTRACT_LINEAR: + return "gimp:subtract"; + + case GIMP_LAYER_MODE_DARKEN_ONLY_LEGACY: + return "gimp:darken-only-legacy"; + + case GIMP_LAYER_MODE_DARKEN_ONLY: + case GIMP_LAYER_MODE_DARKEN_ONLY_LINEAR: + return "gimp:darken-only"; + + case GIMP_LAYER_MODE_LIGHTEN_ONLY_LEGACY: + return "gimp:lighten-only-legacy"; + + case GIMP_LAYER_MODE_LIGHTEN_ONLY: + case GIMP_LAYER_MODE_LIGHTEN_ONLY_LINEAR: + return "gimp:lighten-only"; + + case GIMP_LAYER_MODE_HSV_HUE_LEGACY: + return "gimp:hsv-hue-legacy"; + + case GIMP_LAYER_MODE_HSV_HUE: + return "gimp:hsv-hue"; + + case GIMP_LAYER_MODE_HSV_SATURATION_LEGACY: + return "gimp:hsv-saturation-legacy"; + + case GIMP_LAYER_MODE_HSV_SATURATION: + return "gimp:hsv-saturation"; + + case GIMP_LAYER_MODE_HSV_COLOR_LEGACY: + return "gimp:hsv-color-legacy"; + + case GIMP_LAYER_MODE_HSV_COLOR: + return "gimp:hsv-color"; + + case GIMP_LAYER_MODE_HSV_VALUE_LEGACY: + return "gimp:hsv-value-legacy"; + + case GIMP_LAYER_MODE_HSV_VALUE: + return "gimp:hsv-value"; + + case GIMP_LAYER_MODE_DIVIDE_LEGACY: + return "gimp:divide-legacy"; + + case GIMP_LAYER_MODE_DIVIDE: + case GIMP_LAYER_MODE_DIVIDE_LINEAR: + return "gimp:divide"; + + case GIMP_LAYER_MODE_DODGE_LEGACY: + return "gimp:dodge-legacy"; + + case GIMP_LAYER_MODE_DODGE: + case GIMP_LAYER_MODE_DODGE_LINEAR: + return "gimp:dodge"; + + case GIMP_LAYER_MODE_BURN_LEGACY: + return "gimp:burn-legacy"; + + case GIMP_LAYER_MODE_BURN: + case GIMP_LAYER_MODE_BURN_LINEAR: + return "gimp:burn"; + + case GIMP_LAYER_MODE_HARDLIGHT_LEGACY: + return "gimp:hardlight-legacy"; + + case GIMP_LAYER_MODE_HARDLIGHT: + return "gimp:hardlight"; + + case GIMP_LAYER_MODE_SOFTLIGHT_LEGACY: + return "gimp:softlight-legacy"; + + case GIMP_LAYER_MODE_SOFTLIGHT: + return "gimp:softlight"; + + case GIMP_LAYER_MODE_GRAIN_EXTRACT_LEGACY: + return "gimp:grain-extract-legacy"; + + case GIMP_LAYER_MODE_GRAIN_EXTRACT: + case GIMP_LAYER_MODE_GRAIN_EXTRACT_LINEAR: + return "gimp:grain-extract"; + + case GIMP_LAYER_MODE_GRAIN_MERGE_LEGACY: + return "gimp:grain-merge-legacy"; + + case GIMP_LAYER_MODE_GRAIN_MERGE: + case GIMP_LAYER_MODE_GRAIN_MERGE_LINEAR: + return "gimp:grain-merge"; + + case GIMP_LAYER_MODE_COLOR_ERASE: + return "gimp:color-erase"; + + case GIMP_LAYER_MODE_OVERLAY: + return "gimp:overlay"; + + case GIMP_LAYER_MODE_LCH_HUE: + return "gimp:lch-hue"; + + case GIMP_LAYER_MODE_LCH_CHROMA: + return "gimp:lch-chroma"; + + case GIMP_LAYER_MODE_LCH_COLOR: + return "gimp:lch-color"; + + case GIMP_LAYER_MODE_LCH_LIGHTNESS: + return "gimp:lch-lightness"; + + case GIMP_LAYER_MODE_ERASE: + return "gimp:erase"; + + case GIMP_LAYER_MODE_REPLACE: + return "gimp:replace"; + + case GIMP_LAYER_MODE_ANTI_ERASE: + return "gimp:anti-erase"; + } + + return NULL; +} diff --git a/app/core/gimp-layer-modes.h b/app/core/gimp-layer-modes.h new file mode 100644 index 0000000000..9c0962821f --- /dev/null +++ b/app/core/gimp-layer-modes.h @@ -0,0 +1,32 @@ +/* GIMP - The GNU Image Manipulation Program + * Copyright (C) 1995 Spencer Kimball and Peter Mattis + * + * gimp-layer-modes.h + * Copyright (C) 2017 Michael Natterer + * Øyvind Kolås + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef __GIMP_LAYER_MODES_H__ +#define __GIMP_LAYER_MODES_H__ + + +gboolean gimp_layer_mode_is_legacy (GimpLayerMode mode); +gboolean gimp_layer_mode_is_linear (GimpLayerMode mode); + +const gchar * gimp_layer_mode_get_operation (GimpLayerMode mode); + + +#endif /* __GIMP_LAYER_MODES_H__ */ diff --git a/app/gegl/gimp-gegl-nodes.c b/app/gegl/gimp-gegl-nodes.c index 8afa19eb9d..87fc1ba823 100644 --- a/app/gegl/gimp-gegl-nodes.c +++ b/app/gegl/gimp-gegl-nodes.c @@ -24,6 +24,8 @@ #include "gimp-gegl-types.h" +#include "core/gimp-layer-modes.h" + #include "gimp-gegl-nodes.h" #include "gimp-gegl-utils.h" @@ -138,354 +140,15 @@ gimp_gegl_add_buffer_source (GeglNode *parent, return buffer_source; } -gboolean -gimp_gegl_mode_is_legacy (GimpLayerMode mode) -{ - switch (mode) - { - case GIMP_LAYER_MODE_MULTIPLY_LEGACY: - case GIMP_LAYER_MODE_SCREEN_LEGACY: - case GIMP_LAYER_MODE_OVERLAY_LEGACY: - case GIMP_LAYER_MODE_DIFFERENCE_LEGACY: - case GIMP_LAYER_MODE_ADDITION_LEGACY: - case GIMP_LAYER_MODE_SUBTRACT_LEGACY: - case GIMP_LAYER_MODE_DARKEN_ONLY_LEGACY: - case GIMP_LAYER_MODE_LIGHTEN_ONLY_LEGACY: - case GIMP_LAYER_MODE_HSV_HUE_LEGACY: - case GIMP_LAYER_MODE_HSV_SATURATION_LEGACY: - case GIMP_LAYER_MODE_HSV_COLOR_LEGACY: - case GIMP_LAYER_MODE_HSV_VALUE_LEGACY: - case GIMP_LAYER_MODE_DIVIDE_LEGACY: - case GIMP_LAYER_MODE_DODGE_LEGACY: - case GIMP_LAYER_MODE_BURN_LEGACY: - case GIMP_LAYER_MODE_HARDLIGHT_LEGACY: - case GIMP_LAYER_MODE_SOFTLIGHT_LEGACY: - case GIMP_LAYER_MODE_GRAIN_EXTRACT_LEGACY: - case GIMP_LAYER_MODE_GRAIN_MERGE_LEGACY: - return TRUE; - - default: - break; - } - - return FALSE; -} - -gboolean -gimp_gegl_mode_is_linear (GimpLayerMode mode) -{ - switch (mode) - { - case GIMP_LAYER_MODE_NORMAL_NON_LINEAR: - return FALSE; - - case GIMP_LAYER_MODE_DISSOLVE: - return TRUE; - - case GIMP_LAYER_MODE_BEHIND: - return FALSE; - - case GIMP_LAYER_MODE_MULTIPLY_LEGACY: - case GIMP_LAYER_MODE_SCREEN_LEGACY: - case GIMP_LAYER_MODE_OVERLAY_LEGACY: - case GIMP_LAYER_MODE_DIFFERENCE_LEGACY: - case GIMP_LAYER_MODE_ADDITION_LEGACY: - case GIMP_LAYER_MODE_SUBTRACT_LEGACY: - case GIMP_LAYER_MODE_DARKEN_ONLY_LEGACY: - case GIMP_LAYER_MODE_LIGHTEN_ONLY_LEGACY: - case GIMP_LAYER_MODE_HSV_HUE_LEGACY: - case GIMP_LAYER_MODE_HSV_SATURATION_LEGACY: - case GIMP_LAYER_MODE_HSV_COLOR_LEGACY: - case GIMP_LAYER_MODE_HSV_VALUE_LEGACY: - case GIMP_LAYER_MODE_DIVIDE_LEGACY: - case GIMP_LAYER_MODE_DODGE_LEGACY: - case GIMP_LAYER_MODE_BURN_LEGACY: - case GIMP_LAYER_MODE_HARDLIGHT_LEGACY: - case GIMP_LAYER_MODE_SOFTLIGHT_LEGACY: - case GIMP_LAYER_MODE_GRAIN_EXTRACT_LEGACY: - case GIMP_LAYER_MODE_GRAIN_MERGE_LEGACY: - return FALSE; - - case GIMP_LAYER_MODE_COLOR_ERASE: - case GIMP_LAYER_MODE_OVERLAY: - case GIMP_LAYER_MODE_LCH_HUE: - case GIMP_LAYER_MODE_LCH_CHROMA: - case GIMP_LAYER_MODE_LCH_COLOR: - case GIMP_LAYER_MODE_LCH_LIGHTNESS: - return FALSE; - - case GIMP_LAYER_MODE_NORMAL: - return TRUE; - - case GIMP_LAYER_MODE_MULTIPLY: - case GIMP_LAYER_MODE_SCREEN: - case GIMP_LAYER_MODE_DIFFERENCE: - case GIMP_LAYER_MODE_ADDITION: - case GIMP_LAYER_MODE_SUBTRACT: - case GIMP_LAYER_MODE_DARKEN_ONLY: - case GIMP_LAYER_MODE_LIGHTEN_ONLY: - case GIMP_LAYER_MODE_HSV_HUE: - case GIMP_LAYER_MODE_HSV_SATURATION: - case GIMP_LAYER_MODE_HSV_COLOR: - case GIMP_LAYER_MODE_HSV_VALUE: - case GIMP_LAYER_MODE_DIVIDE: - case GIMP_LAYER_MODE_DODGE: - case GIMP_LAYER_MODE_BURN: - case GIMP_LAYER_MODE_HARDLIGHT: - case GIMP_LAYER_MODE_SOFTLIGHT: - case GIMP_LAYER_MODE_GRAIN_EXTRACT: - case GIMP_LAYER_MODE_GRAIN_MERGE: - return FALSE; - - case GIMP_LAYER_MODE_BEHIND_LINEAR: - case GIMP_LAYER_MODE_MULTIPLY_LINEAR: - case GIMP_LAYER_MODE_DIFFERENCE_LINEAR: - case GIMP_LAYER_MODE_ADDITION_LINEAR: - case GIMP_LAYER_MODE_SUBTRACT_LINEAR: - case GIMP_LAYER_MODE_DARKEN_ONLY_LINEAR: - case GIMP_LAYER_MODE_LIGHTEN_ONLY_LINEAR: - case GIMP_LAYER_MODE_DIVIDE_LINEAR: - case GIMP_LAYER_MODE_DODGE_LINEAR: - case GIMP_LAYER_MODE_BURN_LINEAR: - case GIMP_LAYER_MODE_GRAIN_EXTRACT_LINEAR: - case GIMP_LAYER_MODE_GRAIN_MERGE_LINEAR: - return TRUE; - - case GIMP_LAYER_MODE_ERASE: - return TRUE; - - case GIMP_LAYER_MODE_REPLACE: - return FALSE; - - case GIMP_LAYER_MODE_ANTI_ERASE: - return TRUE; - } - - return FALSE; -} - void gimp_gegl_mode_node_set_mode (GeglNode *node, GimpLayerMode mode, gboolean linear) { - const gchar *operation; - gdouble opacity; + gdouble opacity; g_return_if_fail (GEGL_IS_NODE (node)); - switch (mode) - { - case GIMP_LAYER_MODE_NORMAL_NON_LINEAR: - case GIMP_LAYER_MODE_NORMAL: - operation = "gimp:normal"; - break; - - case GIMP_LAYER_MODE_DISSOLVE: - operation = "gimp:dissolve"; - break; - - case GIMP_LAYER_MODE_BEHIND: - case GIMP_LAYER_MODE_BEHIND_LINEAR: - operation = "gimp:behind"; - break; - - case GIMP_LAYER_MODE_MULTIPLY_LEGACY: - operation = "gimp:multiply-legacy"; - break; - - case GIMP_LAYER_MODE_MULTIPLY: - case GIMP_LAYER_MODE_MULTIPLY_LINEAR: - operation = "gimp:multiply"; - break; - - case GIMP_LAYER_MODE_SCREEN_LEGACY: - operation = "gimp:screen-legacy"; - break; - - case GIMP_LAYER_MODE_SCREEN: - operation = "gimp:screen"; - break; - - case GIMP_LAYER_MODE_OVERLAY_LEGACY: - operation = "gimp:softlight-legacy"; - break; - - case GIMP_LAYER_MODE_DIFFERENCE_LEGACY: - operation = "gimp:difference-legacy"; - break; - - case GIMP_LAYER_MODE_DIFFERENCE: - case GIMP_LAYER_MODE_DIFFERENCE_LINEAR: - operation = "gimp:difference"; - break; - - case GIMP_LAYER_MODE_ADDITION_LEGACY: - operation = "gimp:addition-legacy"; - break; - - case GIMP_LAYER_MODE_ADDITION: - case GIMP_LAYER_MODE_ADDITION_LINEAR: - operation = "gimp:addition"; - break; - - case GIMP_LAYER_MODE_SUBTRACT_LEGACY: - operation = "gimp:subtract-legacy"; - break; - - case GIMP_LAYER_MODE_SUBTRACT: - case GIMP_LAYER_MODE_SUBTRACT_LINEAR: - operation = "gimp:subtract"; - break; - - case GIMP_LAYER_MODE_DARKEN_ONLY_LEGACY: - operation = "gimp:darken-only-legacy"; - break; - - case GIMP_LAYER_MODE_DARKEN_ONLY: - case GIMP_LAYER_MODE_DARKEN_ONLY_LINEAR: - operation = "gimp:darken-only"; - break; - - case GIMP_LAYER_MODE_LIGHTEN_ONLY_LEGACY: - operation = "gimp:lighten-only-legacy"; - break; - - case GIMP_LAYER_MODE_LIGHTEN_ONLY: - case GIMP_LAYER_MODE_LIGHTEN_ONLY_LINEAR: - operation = "gimp:lighten-only"; - break; - - case GIMP_LAYER_MODE_HSV_HUE_LEGACY: - operation = "gimp:hsv-hue-legacy"; - break; - - case GIMP_LAYER_MODE_HSV_HUE: - operation = "gimp:hsv-hue"; - break; - - case GIMP_LAYER_MODE_HSV_SATURATION_LEGACY: - operation = "gimp:hsv-saturation-legacy"; - break; - - case GIMP_LAYER_MODE_HSV_SATURATION: - operation = "gimp:hsv-saturation"; - break; - - case GIMP_LAYER_MODE_HSV_COLOR_LEGACY: - operation = "gimp:hsv-color-legacy"; - break; - - case GIMP_LAYER_MODE_HSV_COLOR: - operation = "gimp:hsv-color"; - break; - - case GIMP_LAYER_MODE_HSV_VALUE_LEGACY: - operation = "gimp:hsv-value-legacy"; - break; - - case GIMP_LAYER_MODE_HSV_VALUE: - operation = "gimp:hsv-value"; - break; - - case GIMP_LAYER_MODE_DIVIDE_LEGACY: - operation = "gimp:divide-legacy"; - break; - - case GIMP_LAYER_MODE_DIVIDE: - case GIMP_LAYER_MODE_DIVIDE_LINEAR: - operation = "gimp:divide"; - break; - - case GIMP_LAYER_MODE_DODGE_LEGACY: - operation = "gimp:dodge-legacy"; - break; - - case GIMP_LAYER_MODE_DODGE: - case GIMP_LAYER_MODE_DODGE_LINEAR: - operation = "gimp:dodge"; - break; - - case GIMP_LAYER_MODE_BURN_LEGACY: - operation = "gimp:burn-legacy"; - break; - - case GIMP_LAYER_MODE_BURN: - case GIMP_LAYER_MODE_BURN_LINEAR: - operation = "gimp:burn"; - break; - - case GIMP_LAYER_MODE_HARDLIGHT_LEGACY: - operation = "gimp:hardlight-legacy"; - break; - - case GIMP_LAYER_MODE_HARDLIGHT: - operation = "gimp:hardlight"; - break; - - case GIMP_LAYER_MODE_SOFTLIGHT_LEGACY: - operation = "gimp:softlight-legacy"; - break; - - case GIMP_LAYER_MODE_SOFTLIGHT: - operation = "gimp:softlight"; - break; - - case GIMP_LAYER_MODE_GRAIN_EXTRACT_LEGACY: - operation = "gimp:grain-extract-legacy"; - break; - - case GIMP_LAYER_MODE_GRAIN_EXTRACT: - case GIMP_LAYER_MODE_GRAIN_EXTRACT_LINEAR: - operation = "gimp:grain-extract"; - break; - - case GIMP_LAYER_MODE_GRAIN_MERGE_LEGACY: - operation = "gimp:grain-merge-legacy"; - break; - - case GIMP_LAYER_MODE_GRAIN_MERGE: - case GIMP_LAYER_MODE_GRAIN_MERGE_LINEAR: - operation = "gimp:grain-merge"; - break; - - case GIMP_LAYER_MODE_COLOR_ERASE: - operation = "gimp:color-erase"; - break; - - case GIMP_LAYER_MODE_OVERLAY: - operation = "gimp:overlay"; - break; - - case GIMP_LAYER_MODE_LCH_HUE: - operation = "gimp:lch-hue"; - break; - - case GIMP_LAYER_MODE_LCH_CHROMA: - operation = "gimp:lch-chroma"; - break; - - case GIMP_LAYER_MODE_LCH_COLOR: - operation = "gimp:lch-color"; - break; - - case GIMP_LAYER_MODE_LCH_LIGHTNESS: - operation = "gimp:lch-lightness"; - break; - - case GIMP_LAYER_MODE_ERASE: - operation = "gimp:erase"; - break; - - case GIMP_LAYER_MODE_REPLACE: - operation = "gimp:replace"; - break; - - case GIMP_LAYER_MODE_ANTI_ERASE: - operation = "gimp:anti-erase"; - break; - } - gegl_node_get (node, "opacity", &opacity, NULL); @@ -494,9 +157,9 @@ gimp_gegl_mode_node_set_mode (GeglNode *node, * all its properties */ gegl_node_set (node, - "operation", operation, + "operation", gimp_layer_mode_get_operation (mode), "opacity", opacity, - "linear", gimp_gegl_mode_is_linear (mode), + "linear", gimp_layer_mode_is_linear (mode), NULL); } diff --git a/app/gegl/gimp-gegl-nodes.h b/app/gegl/gimp-gegl-nodes.h index c9701b8dda..70abbb19d7 100644 --- a/app/gegl/gimp-gegl-nodes.h +++ b/app/gegl/gimp-gegl-nodes.h @@ -42,8 +42,5 @@ void gimp_gegl_node_set_matrix (GeglNode *node, void gimp_gegl_node_set_color (GeglNode *node, const GimpRGB *color); -gboolean gimp_gegl_mode_is_legacy (GimpLayerMode mode); -gboolean gimp_gegl_mode_is_linear (GimpLayerMode mode); - #endif /* __GIMP_GEGL_NODES_H__ */