[gimp] app: merge the GimpLayerModeFunc into gimp-layer-modes.c's array
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: merge the GimpLayerModeFunc into gimp-layer-modes.c's array
- Date: Wed, 15 Feb 2017 01:27:45 +0000 (UTC)
commit ebd939cb6def19025fc4338533db3408c0acc698
Author: Michael Natterer <mitch gimp org>
Date: Wed Feb 15 02:25:44 2017 +0100
app: merge the GimpLayerModeFunc into gimp-layer-modes.c's array
and remove gimplayermodefunctions.[ch].
Make gimp_operation_normal_process() a normal function and redirect to
SSE internally.
app/operations/layer-modes/Makefile.am | 3 +-
app/operations/layer-modes/gimp-layer-modes.c | 121 +++++++++++++-
app/operations/layer-modes/gimp-layer-modes.h | 2 +
.../layer-modes/gimplayermodefunctions.c | 175 --------------------
.../layer-modes/gimplayermodefunctions.h | 28 ---
app/operations/layer-modes/gimpoperationnormal.c | 22 ++-
app/operations/layer-modes/gimpoperationnormal.h | 9 +-
app/paint/gimppaintcore-loops.c | 3 +-
8 files changed, 149 insertions(+), 214 deletions(-)
---
diff --git a/app/operations/layer-modes/Makefile.am b/app/operations/layer-modes/Makefile.am
index 59d4117..0c12c31 100644
--- a/app/operations/layer-modes/Makefile.am
+++ b/app/operations/layer-modes/Makefile.am
@@ -21,10 +21,9 @@ noinst_LIBRARIES = \
libapplayermodes_generic_a_sources = \
gimp-layer-modes.c \
gimp-layer-modes.h \
+ \
gimpoperationlayermode.c \
gimpoperationlayermode.h \
- gimplayermodefunctions.c \
- gimplayermodefunctions.h \
\
gimpoperationantierase.c \
gimpoperationantierase.h \
diff --git a/app/operations/layer-modes/gimp-layer-modes.c b/app/operations/layer-modes/gimp-layer-modes.c
index ff7e4cb..f0c535c 100644
--- a/app/operations/layer-modes/gimp-layer-modes.c
+++ b/app/operations/layer-modes/gimp-layer-modes.c
@@ -25,6 +25,33 @@
#include "../operations-types.h"
+#include "operations/layer-modes-legacy/gimpoperationadditionlegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationburnlegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationdarkenonlylegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationdifferencelegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationdividelegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationdodgelegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationgrainextractlegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationgrainmergelegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationhardlightlegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationhsvcolorlegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationhsvhuelegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationhsvsaturationlegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationhsvvaluelegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationlightenonlylegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationmultiplylegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationscreenlegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationsoftlightlegacy.h"
+#include "operations/layer-modes-legacy/gimpoperationsubtractlegacy.h"
+
+#include "gimpoperationantierase.h"
+#include "gimpoperationbehind.h"
+#include "gimpoperationcolorerase.h"
+#include "gimpoperationdissolve.h"
+#include "gimpoperationerase.h"
+#include "gimpoperationnormal.h"
+#include "gimpoperationreplace.h"
+
#include "gimp-layer-modes.h"
@@ -34,6 +61,7 @@ struct _GimpLayerModeInfo
{
GimpLayerMode layer_mode;
const gchar *op_name;
+ GimpLayerModeFunc function;
GimpLayerModeFlags flags;
GimpLayerCompositeMode paint_composite_mode;
GimpLayerCompositeMode composite_mode;
@@ -44,10 +72,11 @@ struct _GimpLayerModeInfo
/* static variables */
-static const GimpLayerModeInfo layer_mode_infos[]=
+static const GimpLayerModeInfo layer_mode_infos[] =
{
{ GIMP_LAYER_MODE_NORMAL,
"gimp:normal",
+ gimp_operation_normal_process,
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_OVER,
@@ -55,6 +84,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_DISSOLVE,
"gimp:dissolve",
+ gimp_operation_dissolve_process,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE,
@@ -64,6 +94,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_BEHIND,
"gimp:behind",
+ gimp_operation_behind_process,
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
GIMP_LAYER_COMPOSITE_DST_ATOP,
GIMP_LAYER_COMPOSITE_DST_ATOP
@@ -71,6 +102,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_MULTIPLY_LEGACY,
"gimp:multiply-legacy",
+ gimp_operation_multiply_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -81,6 +113,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_SCREEN_LEGACY,
"gimp:screen-legacy",
+ gimp_operation_screen_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -90,7 +123,8 @@ static const GimpLayerModeInfo layer_mode_infos[]=
},
{ GIMP_LAYER_MODE_OVERLAY_LEGACY,
- "gimp:overlay-legacy",
+ "gimp:softlight-legacy",
+ gimp_operation_softlight_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -101,6 +135,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_DIFFERENCE_LEGACY,
"gimp:difference-legacy",
+ gimp_operation_difference_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -111,6 +146,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_ADDITION_LEGACY,
"gimp:addition-legacy",
+ gimp_operation_addition_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -121,6 +157,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_SUBTRACT_LEGACY,
"gimp:subtract-legacy",
+ gimp_operation_subtract_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -131,6 +168,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_DARKEN_ONLY_LEGACY,
"gimp:darken-only-legacy",
+ gimp_operation_darken_only_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -141,6 +179,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_LIGHTEN_ONLY_LEGACY,
"gimp:lighten-only-legacy",
+ gimp_operation_lighten_only_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -151,6 +190,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_HSV_HUE_LEGACY,
"gimp:hsv-hue-legacy",
+ gimp_operation_hsv_hue_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -161,6 +201,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_HSV_SATURATION_LEGACY,
"gimp:hsv-saturation-legacy",
+ gimp_operation_hsv_saturation_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -171,6 +212,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_HSV_COLOR_LEGACY,
"gimp:hsv-color-legacy",
+ gimp_operation_hsv_color_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -181,6 +223,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_HSV_VALUE_LEGACY,
"gimp:hsv-value-legacy",
+ gimp_operation_hsv_value_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -191,6 +234,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_DIVIDE_LEGACY,
"gimp:divide-legacy",
+ gimp_operation_divide_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -201,6 +245,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_DODGE_LEGACY,
"gimp:dodge-legacy",
+ gimp_operation_dodge_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -211,6 +256,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_BURN_LEGACY,
"gimp:burn-legacy",
+ gimp_operation_burn_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -221,6 +267,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_HARDLIGHT_LEGACY,
"gimp:hardlight-legacy",
+ gimp_operation_hardlight_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -231,6 +278,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_SOFTLIGHT_LEGACY,
"gimp:softlight-legacy",
+ gimp_operation_softlight_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -241,6 +289,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_GRAIN_EXTRACT_LEGACY,
"gimp:grain-extract-legacy",
+ gimp_operation_grain_extract_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -251,6 +300,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_GRAIN_MERGE_LEGACY,
"gimp:grain-merge-legacy",
+ gimp_operation_grain_merge_legacy_process,
GIMP_LAYER_MODE_FLAG_LEGACY |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE |
@@ -261,6 +311,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_COLOR_ERASE,
"gimp:color-erase",
+ gimp_operation_color_erase_process,
0,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -268,6 +319,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_OVERLAY,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -277,6 +329,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_LCH_HUE,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
GIMP_LAYER_COMPOSITE_SRC_OVER,
@@ -287,6 +340,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_LCH_CHROMA,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
GIMP_LAYER_COMPOSITE_SRC_OVER,
@@ -297,6 +351,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_LCH_COLOR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
GIMP_LAYER_COMPOSITE_SRC_OVER,
@@ -307,6 +362,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_LCH_LIGHTNESS,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
GIMP_LAYER_COMPOSITE_SRC_OVER,
@@ -317,12 +373,14 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_NORMAL_LINEAR,
"gimp:normal",
+ gimp_operation_normal_process,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
},
{ GIMP_LAYER_MODE_BEHIND_LINEAR,
"gimp:behind",
+ gimp_operation_behind_process,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
GIMP_LAYER_COMPOSITE_DST_ATOP,
@@ -331,6 +389,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_MULTIPLY,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -340,6 +399,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_MULTIPLY_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -349,6 +409,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_SCREEN,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -358,6 +419,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_SCREEN_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -367,6 +429,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_OVERLAY_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -376,6 +439,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_DIFFERENCE,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -385,6 +449,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_DIFFERENCE_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -394,6 +459,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_ADDITION,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -403,6 +469,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_ADDITION_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -412,6 +479,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_SUBTRACT,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -421,6 +489,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_SUBTRACT_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -430,6 +499,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_DARKEN_ONLY,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
GIMP_LAYER_COMPOSITE_SRC_OVER,
@@ -440,6 +510,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_LIGHTEN_ONLY,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
GIMP_LAYER_COMPOSITE_SRC_OVER,
@@ -450,6 +521,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_HSV_HUE,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
GIMP_LAYER_COMPOSITE_SRC_OVER,
@@ -460,6 +532,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_HSV_SATURATION,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
GIMP_LAYER_COMPOSITE_SRC_OVER,
@@ -470,6 +543,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_HSV_COLOR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
GIMP_LAYER_COMPOSITE_SRC_OVER,
@@ -480,6 +554,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_HSV_VALUE,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
GIMP_LAYER_COMPOSITE_SRC_OVER,
@@ -490,6 +565,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_DIVIDE,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -499,6 +575,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_DIVIDE_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -508,6 +585,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_DODGE,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -517,6 +595,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_DODGE_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -526,6 +605,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_BURN,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -535,6 +615,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_BURN_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -544,6 +625,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_HARDLIGHT,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -553,6 +635,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_HARDLIGHT_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -562,6 +645,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_SOFTLIGHT,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -571,6 +655,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_SOFTLIGHT_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -580,6 +665,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_GRAIN_EXTRACT,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -589,6 +675,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_GRAIN_EXTRACT_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -598,6 +685,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_GRAIN_MERGE,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -607,6 +695,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_GRAIN_MERGE_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -616,6 +705,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_VIVID_LIGHT,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -625,6 +715,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_VIVID_LIGHT_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -634,6 +725,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_PIN_LIGHT,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -643,6 +735,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_PIN_LIGHT_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -652,6 +745,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_LINEAR_LIGHT,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -661,6 +755,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_LINEAR_LIGHT_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -670,6 +765,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_HARD_MIX,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -679,6 +775,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_HARD_MIX_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -688,6 +785,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_EXCLUSION,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -697,6 +795,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_EXCLUSION_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -706,6 +805,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_LINEAR_BURN,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -715,6 +815,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_LINEAR_BURN_LINEAR,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -724,6 +825,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_LUMA_DARKEN_ONLY,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -733,6 +835,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -742,6 +845,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_LUMA_LIGHTEN_ONLY,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -751,6 +855,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY,
"gimp:layer-mode",
+ gimp_operation_layer_mode_process_pixels,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA,
GIMP_LAYER_COMPOSITE_SRC_OVER,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -760,6 +865,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_ERASE,
"gimp:erase",
+ gimp_operation_erase_process,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
GIMP_LAYER_COMPOSITE_SRC_ATOP,
@@ -768,6 +874,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_REPLACE,
"gimp:replace",
+ gimp_operation_replace_process,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE,
GIMP_LAYER_COMPOSITE_SRC_OVER,
@@ -776,6 +883,7 @@ static const GimpLayerModeInfo layer_mode_infos[]=
{ GIMP_LAYER_MODE_ANTI_ERASE,
"gimp:anti-erase",
+ gimp_operation_anti_erase_process,
GIMP_LAYER_MODE_FLAG_WANTS_LINEAR_DATA |
GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE |
GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE,
@@ -1250,6 +1358,15 @@ gimp_layer_mode_get_operation (GimpLayerMode mode)
return info->op_name;
}
+GimpLayerModeFunc
+gimp_layer_mode_get_function (GimpLayerMode mode)
+{
+ const GimpLayerModeInfo *info = gimp_layer_mode_info (mode);
+ if (!info)
+ return gimp_operation_layer_mode_process_pixels;
+ return info->function;
+}
+
static gboolean
is_mode_in_array (const GimpLayerMode *modes,
gint n_modes,
diff --git a/app/operations/layer-modes/gimp-layer-modes.h b/app/operations/layer-modes/gimp-layer-modes.h
index 424abb5..cd779d3 100644
--- a/app/operations/layer-modes/gimp-layer-modes.h
+++ b/app/operations/layer-modes/gimp-layer-modes.h
@@ -40,6 +40,8 @@ GimpLayerCompositeMode gimp_layer_mode_get_paint_composite_mode
const gchar * gimp_layer_mode_get_operation (GimpLayerMode mode);
+GimpLayerModeFunc gimp_layer_mode_get_function (GimpLayerMode mode);
+
GimpLayerModeGroup gimp_layer_mode_get_group (GimpLayerMode mode);
const GimpLayerMode * gimp_layer_mode_get_group_array (GimpLayerModeGroup group,
diff --git a/app/operations/layer-modes/gimpoperationnormal.c
b/app/operations/layer-modes/gimpoperationnormal.c
index 3053236..2e4d5fb 100644
--- a/app/operations/layer-modes/gimpoperationnormal.c
+++ b/app/operations/layer-modes/gimpoperationnormal.c
@@ -52,7 +52,7 @@ static const gchar* reference_xml = "<?xml version='1.0' encoding='UTF-8'?>"
"</node>"
"</gegl>";
-GimpLayerModeFunc gimp_operation_normal_process = NULL;
+static GimpLayerModeFunc _gimp_operation_normal_process = NULL;
static void
@@ -71,16 +71,16 @@ gimp_operation_normal_class_init (GimpOperationNormalClass *klass)
"reference-composition", reference_xml,
NULL);
- gimp_operation_normal_process = gimp_operation_normal_process_core;
+ _gimp_operation_normal_process = gimp_operation_normal_process_core;
#if COMPILE_SSE2_INTRINISICS
if (gimp_cpu_accel_get_support() & GIMP_CPU_ACCEL_X86_SSE2)
- gimp_operation_normal_process = gimp_operation_normal_process_sse2;
+ _gimp_operation_normal_process = gimp_operation_normal_process_sse2;
#endif /* COMPILE_SSE2_INTRINISICS */
#if COMPILE_SSE4_1_INTRINISICS
if (gimp_cpu_accel_get_support() & GIMP_CPU_ACCEL_X86_SSE4_1)
- gimp_operation_normal_process = gimp_operation_normal_process_sse4;
+ _gimp_operation_normal_process = gimp_operation_normal_process_sse4;
#endif /* COMPILE_SSE4_1_INTRINISICS */
point_class->process = gimp_operation_normal_process;
@@ -92,6 +92,20 @@ gimp_operation_normal_init (GimpOperationNormal *self)
}
gboolean
+gimp_operation_normal_process (GeglOperation *op,
+ void *in,
+ void *aux,
+ void *mask,
+ void *out,
+ glong samples,
+ const GeglRectangle *roi,
+ gint level)
+{
+ return _gimp_operation_normal_process (op, in, aux, mask, out,
+ samples, roi, level);
+}
+
+gboolean
gimp_operation_normal_process_core (GeglOperation *op,
void *in_p,
void *layer_p,
diff --git a/app/operations/layer-modes/gimpoperationnormal.h
b/app/operations/layer-modes/gimpoperationnormal.h
index 3a3e0d0..ccd014c 100644
--- a/app/operations/layer-modes/gimpoperationnormal.h
+++ b/app/operations/layer-modes/gimpoperationnormal.h
@@ -49,7 +49,14 @@ struct _GimpOperationNormalClass
GType gimp_operation_normal_get_type (void) G_GNUC_CONST;
-extern GimpLayerModeFunc gimp_operation_normal_process;
+gboolean gimp_operation_normal_process (GeglOperation *op,
+ void *in,
+ void *aux,
+ void *mask,
+ void *out,
+ glong samples,
+ const GeglRectangle *roi,
+ gint level);
gboolean gimp_operation_normal_process_core (GeglOperation *op,
void *in,
diff --git a/app/paint/gimppaintcore-loops.c b/app/paint/gimppaintcore-loops.c
index 777f221..a1b7488 100644
--- a/app/paint/gimppaintcore-loops.c
+++ b/app/paint/gimppaintcore-loops.c
@@ -26,7 +26,6 @@
#include "core/gimptempbuf.h"
-#include "operations/layer-modes/gimplayermodefunctions.h"
#include "operations/layer-modes/gimpoperationlayermode.h"
#include "gimppaintcore-loops.h"
@@ -316,7 +315,7 @@ do_layer_blend (GeglBuffer *src_buffer,
paint_data = (gfloat *) gimp_temp_buf_get_data (paint_buf);
linear = gimp_layer_mode_wants_linear_data (paint_mode);
- apply_func = gimp_get_layer_mode_function (paint_mode);
+ apply_func = gimp_layer_mode_get_function (paint_mode);
blend_space = gimp_layer_mode_get_blend_space (paint_mode);
composite_space = gimp_layer_mode_get_composite_space (paint_mode);
composite_mode = gimp_layer_mode_get_paint_composite_mode (paint_mode);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]