gimp/app/operations
Ell 3635cf04ab app: move bottom-layer special casing to GimpOperationLayerMode
GimpFilter's is_last_node field only reflects the item's position
within the parent stack.  When a layer is contained in a pass-
through group, it can be the last layer of the group, while not
being the last layer in the graph as a whole (paticularly, if
there are visible layers below the group).  In fact, when we have
nested pass-through groups, whether or not a layer is the last
node depends on which group we're considering as the root (since
we exclude the backdrop from the group's projection, resulting in
different graphs for different groups).

Instead of rolling our own graph traversal, just move the relevant
logic to GimpOperationLayerMode, and let GEGL do the work for us.
At processing time, we can tell if we're the last node by checking
if we have any input.

For this to work, GimpOperationLayerMode's process() function needs
to have control over what's going on.  Replace the derived op
classes, which override process(), with a call to the layer mode's
function (as per gimp_layer_mode_get_function()) in
GimpOperationLayerMode's process() function.  (Well, actually, this
commit keeps the ops around, and just hacks around them in
gimp_layer_mode_get_operation(), because laziness :P)

Keep using the layer's is_last_node property to do the invalidation.
2017-08-08 15:39:28 -04:00
..
layer-modes app: move bottom-layer special casing to GimpOperationLayerMode 2017-08-08 15:39:28 -04:00
layer-modes-legacy app: rename "Color (HSV) (legacy)" mode to "Color (HSL) (legacy)" 2017-03-16 06:23:30 -04:00
tests app, plug-ins, libgimp*: clean out all remaining trailing spaces/tabs. 2016-06-02 02:04:26 +02:00
.gitignore SSE2 & SSE4.1 versions of GimpOperationNormalMode 2013-06-25 20:42:15 -07:00
Makefile.am enums: don't use comments in generated enum recipes 2017-06-02 11:15:43 -04:00
gimp-operation-config.c app: change some gimp-operation-config.[ch] parameters to GObject 2017-07-09 19:20:55 +02:00
gimp-operation-config.h app: change some gimp-operation-config.[ch] parameters to GObject 2017-07-09 19:20:55 +02:00
gimp-operations.c app: register the "settings folder" (e.g. GIMPDIR/curves) with the settings type 2017-06-05 22:00:17 +02:00
gimp-operations.h Bug 780015 - Filter settings are not properly restored after Gimp restart 2017-03-24 01:29:50 +01:00
gimpbrightnesscontrastconfig.c app: port tons of files to the new GIMP_CONFIG_PROP_FOO() macros 2016-02-11 23:46:24 +01:00
gimpbrightnesscontrastconfig.h app: rename GimpImageMapConfig to GimpSettings 2013-05-25 15:26:18 +02:00
gimpcageconfig.c fix bogus checks against unsigned variables. 2014-08-16 00:37:13 +02:00
gimpcageconfig.h app: rename GimpImageMapConfig to GimpSettings 2013-05-25 15:26:18 +02:00
gimpcolorbalanceconfig.c app: port tons of files to the new GIMP_CONFIG_PROP_FOO() macros 2016-02-11 23:46:24 +01:00
gimpcolorbalanceconfig.h app: rename GimpImageMapConfig to GimpSettings 2013-05-25 15:26:18 +02:00
gimpcolorizeconfig.c app: remove the colorize tool and replace it by a generic filter action 2017-06-04 21:21:43 +02:00
gimpcolorizeconfig.h app: use gimp_prop_color_button_new() in GimpColorizeTool 2013-05-29 00:45:24 +02:00
gimpcurvesconfig.c app: clean out tab indentations. 2016-12-21 04:05:32 +01:00
gimpcurvesconfig.h app: port GimpImageMapTool settings import/export to streams 2014-07-04 18:31:00 +02:00
gimphuesaturationconfig.c libgimpbase: rename enum GimpHueRange's values 2017-01-09 02:45:16 +01:00
gimphuesaturationconfig.h app: rename GimpImageMapConfig to GimpSettings 2013-05-25 15:26:18 +02:00
gimplevelsconfig.c app: clean out tab indentations. 2016-12-21 04:05:32 +01:00
gimplevelsconfig.h app: port GimpImageMapTool settings import/export to streams 2014-07-04 18:31:00 +02:00
gimpoperationblend.c app: clean out tab indentations. 2016-12-21 04:05:32 +01:00
gimpoperationblend.h operations: Make GimpOperationBlend a filter. 2016-02-01 21:18:51 +01:00
gimpoperationborder.c Bug 784799 - select > shrink and border produce horizontal gaps in selection 2017-07-11 16:49:49 -04:00
gimpoperationborder.h
gimpoperationbrightnesscontrast.c app: brightness-contrast move a tan call out of the loop 2013-05-21 19:26:43 +02:00
gimpoperationbrightnesscontrast.h
gimpoperationcagecoefcalc.c app: use a lot of g_clear_object() and g_clear_pointer() 2017-07-15 18:42:44 +02:00
gimpoperationcagecoefcalc.h
gimpoperationcagetransform.c app: use a lot of g_clear_object() and g_clear_pointer() 2017-07-15 18:42:44 +02:00
gimpoperationcagetransform.h Bug 678085 - Cage tool freezes GIMP 2016-02-02 12:21:15 +01:00
gimpoperationcolorbalance.c app: restore color balance's tooltip 2017-06-05 13:16:59 +02:00
gimpoperationcolorbalance.h
gimpoperationcolorize.c app: remove the colorize tool and replace it by a generic filter action 2017-06-04 21:21:43 +02:00
gimpoperationcolorize.h
gimpoperationcomposecrop.c Bug 766369: Split view shows transparency filtering... 2016-05-16 18:08:48 +02:00
gimpoperationcomposecrop.h Bug 766369: Split view shows transparency filtering... 2016-05-16 18:08:48 +02:00
gimpoperationcurves.c app,libgimp*: fix includes to follow our include policy 2013-10-15 01:58:39 +02:00
gimpoperationcurves.h
gimpoperationdesaturate.c Bug 780065 - Change default way to desaturate to Luminance 2017-03-17 17:16:03 -04:00
gimpoperationdesaturate.h app: turn the desaturate tool into a normal GEGL filter 2016-01-16 22:38:12 +01:00
gimpoperationequalize.c app: use a lot of g_clear_object() and g_clear_pointer() 2017-07-15 18:42:44 +02:00
gimpoperationequalize.h Bug 742623: Equalize operation fills buffer with nan values in floating point precision 2015-02-10 12:08:04 +01:00
gimpoperationflood.c Flood op: improve descriptions 2016-04-08 08:52:12 +00:00
gimpoperationflood.h app: Add "gimp:flood" GEGL operation 2016-01-25 22:58:24 +01:00
gimpoperationgrow.c Bug 784799 - select > shrink and border produce horizontal gaps in selection 2017-07-11 16:49:49 -04:00
gimpoperationgrow.h
gimpoperationhistogramsink.c app: use a lot of g_clear_object() and g_clear_pointer() 2017-07-15 18:42:44 +02:00
gimpoperationhistogramsink.h
gimpoperationhuesaturation.c app: replace the hue-saturation tool by a generic filter action 2017-06-05 18:35:05 +02:00
gimpoperationhuesaturation.h
gimpoperationlevels.c app,libgimp*: fix includes to follow our include policy 2013-10-15 01:58:39 +02:00
gimpoperationlevels.h
gimpoperationmaskcomponents.c app: rename mask enum values GIMP_COMPONENT_RED,GREEN,BLUE etc. 2015-09-07 00:35:02 +02:00
gimpoperationmaskcomponents.h
gimpoperationpointfilter.c app: use a lot of g_clear_object() and g_clear_pointer() 2017-07-15 18:42:44 +02:00
gimpoperationpointfilter.h
gimpoperationposterize.c app: use the new GIMP_CONFIG_PROP_FOO() 2016-02-10 01:38:08 +01:00
gimpoperationposterize.h app: turn the posterize tool into an ordinary GEGL filter 2016-01-16 21:41:00 +01:00
gimpoperationprofiletransform.c app: use a lot of g_clear_object() and g_clear_pointer() 2017-07-15 18:42:44 +02:00
gimpoperationprofiletransform.h app: cleanup in GimpOperationProfileTransform 2016-11-06 21:08:10 +01:00
gimpoperationscalarmultiply.c app: add GimpOperationScalarMultiply 2014-11-07 00:42:58 +01:00
gimpoperationscalarmultiply.h app: fix parent_class type of GimpOperationScalarMultiplyClass 2017-06-30 16:24:49 -04:00
gimpoperationsemiflatten.c app: fix some oprtation descriptions and make them translatable 2013-05-20 16:42:26 +02:00
gimpoperationsemiflatten.h
gimpoperationsetalpha.c app: fix the (unused) "mask and value" case in GimpOperationSetAlpha 2012-06-11 12:41:32 +02:00
gimpoperationsetalpha.h
gimpoperationshapeburst.c Bug 766128: Use gegl_operation_progress 2016-05-11 19:09:56 +02:00
gimpoperationshapeburst.h Bug 678085 - Cage tool freezes GIMP 2016-02-02 12:21:15 +01:00
gimpoperationshrink.c Bug 784799 - select > shrink and border produce horizontal gaps in selection 2017-07-11 16:49:49 -04:00
gimpoperationshrink.h
gimpoperationthreshold.c app, pdb, libgimp: allow to choose the channel when thresholding 2016-11-01 22:45:37 +01:00
gimpoperationthreshold.h app, pdb, libgimp: allow to choose the channel when thresholding 2016-11-01 22:45:37 +01:00
gimpoperationthresholdalpha.c app: fix some oprtation descriptions and make them translatable 2013-05-20 16:42:26 +02:00
gimpoperationthresholdalpha.h
operations-enums.c app: add pass-through layer mode 2017-08-08 15:39:26 -04:00
operations-enums.h app: add pass-through layer mode 2017-08-08 15:39:26 -04:00
operations-types.h app: rename GimpOperationPointLayerMode to GimpOperationLayerMode 2017-01-21 21:35:52 +01:00