[gimp] app: implement gimp_layer_mode_get_blend_trc()



commit b809613be090e4be10fbe0abe87705e6dbc979e7
Author: Michael Natterer <mitch gimp org>
Date:   Tue Jan 17 17:41:05 2017 +0100

    app: implement gimp_layer_mode_get_blend_trc()

 app/core/gimp-layer-modes.c |   93 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 93 insertions(+), 0 deletions(-)
---
diff --git a/app/core/gimp-layer-modes.c b/app/core/gimp-layer-modes.c
index c60d54e..3a90b28 100644
--- a/app/core/gimp-layer-modes.c
+++ b/app/core/gimp-layer-modes.c
@@ -161,6 +161,99 @@ gimp_layer_mode_is_linear (GimpLayerMode  mode)
 GimpLayerBlendTRC
 gimp_layer_mode_get_blend_trc (GimpLayerMode  mode)
 {
+  switch (mode)
+    {
+    case GIMP_LAYER_MODE_NORMAL_NON_LINEAR:
+      return GIMP_LAYER_BLEND_RGB_PERCEPTUAL;
+
+    case GIMP_LAYER_MODE_DISSOLVE:
+      return GIMP_LAYER_BLEND_RGB_LINEAR;
+
+    case GIMP_LAYER_MODE_BEHIND:
+      return GIMP_LAYER_BLEND_RGB_PERCEPTUAL;
+
+    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:
+      return GIMP_LAYER_BLEND_RGB_PERCEPTUAL;
+
+    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 GIMP_LAYER_BLEND_LAB;
+
+    case GIMP_LAYER_MODE_NORMAL:
+      return GIMP_LAYER_BLEND_RGB_LINEAR;
+
+    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 GIMP_LAYER_BLEND_RGB_PERCEPTUAL;
+
+    case GIMP_LAYER_MODE_BEHIND_LINEAR:
+    case GIMP_LAYER_MODE_MULTIPLY_LINEAR:
+    case GIMP_LAYER_MODE_SCREEN_LINEAR:
+    case GIMP_LAYER_MODE_OVERLAY_LINEAR:
+    case GIMP_LAYER_MODE_DIFFERENCE_LINEAR:
+    case GIMP_LAYER_MODE_ADDITION_LINEAR:
+    case GIMP_LAYER_MODE_SUBTRACT_LINEAR:
+    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_HARDLIGHT_LINEAR:
+    case GIMP_LAYER_MODE_SOFTLIGHT_LINEAR:
+    case GIMP_LAYER_MODE_GRAIN_EXTRACT_LINEAR:
+    case GIMP_LAYER_MODE_GRAIN_MERGE_LINEAR:
+      return GIMP_LAYER_BLEND_RGB_LINEAR;
+
+    case GIMP_LAYER_MODE_ERASE:
+      return GIMP_LAYER_BLEND_RGB_LINEAR;
+
+    case GIMP_LAYER_MODE_REPLACE:
+      return GIMP_LAYER_BLEND_RGB_PERCEPTUAL;
+
+    case GIMP_LAYER_MODE_ANTI_ERASE:
+      return GIMP_LAYER_BLEND_RGB_LINEAR;
+  }
+
   return GIMP_LAYER_BLEND_RGB_LINEAR;
 }
 


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