diff --git a/ChangeLog b/ChangeLog index 7f8081a192..1e28df46f3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-05-21 Sven Neumann + + * app/base/desaturate.[ch]: changed to take a pointer as first + argument as all PixelProcessor functions. + + * app/core/gimpdrawable-desaturate.c: changed accordingly. + + * app/tools/gimpdesaturatetool.[ch]: added legacy code path. + 2008-05-21 Sven Neumann * app/base/Makefile.am diff --git a/app/base/desaturate.c b/app/base/desaturate.c index df29d9904b..122a8b5991 100644 --- a/app/base/desaturate.c +++ b/app/base/desaturate.c @@ -40,14 +40,15 @@ static void desaturate_region_average (PixelRegion *srcPR, void -desaturate_region (GimpDesaturateMode mode, +desaturate_region (GimpDesaturateMode *mode, PixelRegion *srcPR, PixelRegion *destPR) { + g_return_if_fail (mode != NULL); g_return_if_fail (srcPR->bytes == destPR->bytes); g_return_if_fail (srcPR->bytes == 3 || srcPR->bytes == 4); - switch (mode) + switch (*mode) { case GIMP_DESATURATE_LIGHTNESS: desaturate_region_lightness (srcPR, destPR, srcPR->bytes == 4); diff --git a/app/base/desaturate.h b/app/base/desaturate.h index 0efab4bdaa..054c34116c 100644 --- a/app/base/desaturate.h +++ b/app/base/desaturate.h @@ -20,7 +20,7 @@ #define __DESATURATE_H__ -void desaturate_region (GimpDesaturateMode mode, +void desaturate_region (GimpDesaturateMode *mode, PixelRegion *srcPR, PixelRegion *destPR); diff --git a/app/core/gimpdrawable-desaturate.c b/app/core/gimpdrawable-desaturate.c index cfc622a2aa..bc33bb1672 100644 --- a/app/core/gimpdrawable-desaturate.c +++ b/app/core/gimpdrawable-desaturate.c @@ -88,7 +88,7 @@ gimp_drawable_desaturate (GimpDrawable *drawable, x, y, width, height, TRUE); pixel_regions_process_parallel ((PixelProcessorFunc) desaturate_region, - GINT_TO_POINTER (mode), + &mode, 2, &srcPR, &destPR); gimp_drawable_merge_shadow_tiles (drawable, TRUE, _("Desaturate")); diff --git a/app/tools/gimpdesaturatetool.c b/app/tools/gimpdesaturatetool.c index 291b5c5cdc..4bed99777b 100644 --- a/app/tools/gimpdesaturatetool.c +++ b/app/tools/gimpdesaturatetool.c @@ -27,8 +27,7 @@ #include "tools-types.h" -#include "base/gimplut.h" -#include "base/lut-funcs.h" +#include "base/desaturate.h" #include "gegl/gimpdesaturateconfig.h" @@ -106,6 +105,10 @@ gimp_desaturate_tool_class_init (GimpDesaturateToolClass *klass) static void gimp_desaturate_tool_init (GimpDesaturateTool *desaturate_tool) { + GimpImageMapTool *im_tool = GIMP_IMAGE_MAP_TOOL (desaturate_tool); + + im_tool->apply_func = (GimpImageMapApplyFunc) desaturate_region; + im_tool->apply_data = &desaturate_tool->mode; } static gboolean @@ -114,7 +117,7 @@ gimp_desaturate_tool_initialize (GimpTool *tool, GError **error) { GimpDesaturateTool *desaturate_tool = GIMP_DESATURATE_TOOL (tool); - GimpDrawable *drawable; + GimpDrawable *drawable; drawable = gimp_image_get_active_drawable (display->image); @@ -145,7 +148,7 @@ gimp_desaturate_tool_get_operation (GimpImageMapTool *image_map_tool, GObject **config) { GimpDesaturateTool *desaturate_tool = GIMP_DESATURATE_TOOL (image_map_tool); - GeglNode *node; + GeglNode *node; node = g_object_new (GEGL_TYPE_NODE, "operation", "gimp-desaturate", @@ -169,6 +172,9 @@ gimp_desaturate_tool_get_operation (GimpImageMapTool *image_map_tool, static void gimp_desaturate_tool_map (GimpImageMapTool *image_map_tool) { + GimpDesaturateTool *desaturate_tool = GIMP_DESATURATE_TOOL (image_map_tool); + + desaturate_tool->mode = desaturate_tool->config->mode; } @@ -195,9 +201,9 @@ gimp_desaturate_tool_dialog (GimpImageMapTool *image_map_tool) } static void -gimp_desaturate_tool_config_notify (GObject *object, - GParamSpec *pspec, - GimpDesaturateTool *desaturate_tool) +gimp_desaturate_tool_config_notify (GObject *object, + GParamSpec *pspec, + GimpDesaturateTool *desaturate_tool) { GimpDesaturateConfig *config = GIMP_DESATURATE_CONFIG (object); diff --git a/app/tools/gimpdesaturatetool.h b/app/tools/gimpdesaturatetool.h index 7adeab4c7b..94ae3662f7 100644 --- a/app/tools/gimpdesaturatetool.h +++ b/app/tools/gimpdesaturatetool.h @@ -39,6 +39,7 @@ struct _GimpDesaturateTool GimpImageMapTool parent_instance; GimpDesaturateConfig *config; + GimpDesaturateMode mode; /* only for legacy mode */ /* dialog */ GtkWidget *button;