[gimp] app: follow the GEGL invert -> invert-linear vs. invert-gamma change



commit f56f6d125563ca2ad5eb5663b39ba0ff2f22f038
Author: Michael Natterer <mitch gimp org>
Date:   Mon Jun 24 00:45:04 2013 +0200

    app: follow the GEGL invert -> invert-linear vs. invert-gamma change
    
    and invert masks using invert-linear and other drawables using
    invert-gamma. drawable_invert_cmd_callback() still always uses
    invert-gamma even though it can be used on layer masks.

 app/actions/drawable-commands.c      |    3 ++-
 app/core/gimpchannel.c               |    8 ++++----
 app/gegl/gimp-gegl-apply-operation.c |   30 +++++++++++++++++++++++++-----
 app/gegl/gimp-gegl-apply-operation.h |    7 ++++++-
 app/pdb/color-cmds.c                 |    2 +-
 app/tools/gimpgegltool.c             |    3 ++-
 tools/pdbgen/pdb/color.pdb           |    2 +-
 7 files changed, 41 insertions(+), 14 deletions(-)
---
diff --git a/app/actions/drawable-commands.c b/app/actions/drawable-commands.c
index e697a86..50d61b3 100644
--- a/app/actions/drawable-commands.c
+++ b/app/actions/drawable-commands.c
@@ -67,8 +67,9 @@ drawable_invert_cmd_callback (GtkAction *action,
   return_if_no_drawable (image, drawable, data);
   return_if_no_display (display, data);
 
+  /* FIXME invert masks? */
   gimp_drawable_apply_operation_by_name (drawable, GIMP_PROGRESS (display),
-                                         _("Invert"), "gegl:invert",
+                                         _("Invert"), "gegl:invert-gamma",
                                          NULL);
   gimp_image_flush (image);
 }
diff --git a/app/core/gimpchannel.c b/app/core/gimpchannel.c
index 83f44e7..300869d 100644
--- a/app/core/gimpchannel.c
+++ b/app/core/gimpchannel.c
@@ -430,7 +430,7 @@ gimp_channel_get_node (GimpFilter *filter)
   g_warn_if_fail (channel->invert_node == NULL);
 
   channel->invert_node = gegl_node_new_child (node,
-                                              "operation", "gegl:invert",
+                                              "operation", "gegl:invert-linear",
                                               NULL);
 
   if (channel->show_masked)
@@ -1299,9 +1299,9 @@ gimp_channel_real_invert (GimpChannel *channel,
     }
   else
     {
-      gimp_gegl_apply_invert (gimp_drawable_get_buffer (drawable),
-                              NULL, NULL,
-                              gimp_drawable_get_buffer (drawable));
+      gimp_gegl_apply_invert_linear (gimp_drawable_get_buffer (drawable),
+                                     NULL, NULL,
+                                     gimp_drawable_get_buffer (drawable));
 
       channel->bounds_known = FALSE;
 
diff --git a/app/gegl/gimp-gegl-apply-operation.c b/app/gegl/gimp-gegl-apply-operation.c
index 43385a6..439e3c6 100644
--- a/app/gegl/gimp-gegl-apply-operation.c
+++ b/app/gegl/gimp-gegl-apply-operation.c
@@ -232,10 +232,10 @@ gimp_gegl_apply_gaussian_blur (GeglBuffer   *src_buffer,
 }
 
 void
-gimp_gegl_apply_invert (GeglBuffer    *src_buffer,
-                        GimpProgress  *progress,
-                        const gchar   *undo_desc,
-                        GeglBuffer    *dest_buffer)
+gimp_gegl_apply_invert_gamma (GeglBuffer    *src_buffer,
+                              GimpProgress  *progress,
+                              const gchar   *undo_desc,
+                              GeglBuffer    *dest_buffer)
 {
   GeglNode *node;
 
@@ -244,7 +244,7 @@ gimp_gegl_apply_invert (GeglBuffer    *src_buffer,
   g_return_if_fail (GEGL_IS_BUFFER (dest_buffer));
 
   node = gegl_node_new_child (NULL,
-                              "operation", "gegl:invert",
+                              "operation", "gegl:invert-gamma",
                               NULL);
 
   gimp_gegl_apply_operation (src_buffer, progress, undo_desc,
@@ -252,6 +252,26 @@ gimp_gegl_apply_invert (GeglBuffer    *src_buffer,
   g_object_unref (node);
 }
 
+void
+gimp_gegl_apply_invert_linear (GeglBuffer    *src_buffer,
+                               GimpProgress  *progress,
+                               const gchar   *undo_desc,
+                               GeglBuffer    *dest_buffer)
+{
+  GeglNode *node;
+
+  g_return_if_fail (GEGL_IS_BUFFER (src_buffer));
+  g_return_if_fail (progress == NULL || GIMP_IS_PROGRESS (progress));
+  g_return_if_fail (GEGL_IS_BUFFER (dest_buffer));
+
+  node = gegl_node_new_child (NULL,
+                              "operation", "gegl:invert-linear",
+                              NULL);
+
+  gimp_gegl_apply_operation (src_buffer, progress, undo_desc,
+                             node, dest_buffer, NULL);
+  g_object_unref (node);
+}
 
 void
 gimp_gegl_apply_opacity (GeglBuffer    *src_buffer,
diff --git a/app/gegl/gimp-gegl-apply-operation.h b/app/gegl/gimp-gegl-apply-operation.h
index 11365d7..14e3822 100644
--- a/app/gegl/gimp-gegl-apply-operation.h
+++ b/app/gegl/gimp-gegl-apply-operation.h
@@ -63,7 +63,12 @@ void   gimp_gegl_apply_gaussian_blur   (GeglBuffer            *src_buffer,
                                         gdouble                std_dev_x,
                                         gdouble                std_dev_y);
 
-void   gimp_gegl_apply_invert          (GeglBuffer            *src_buffer,
+void   gimp_gegl_apply_invert_gamma    (GeglBuffer            *src_buffer,
+                                        GimpProgress          *progress,
+                                        const gchar           *undo_desc,
+                                        GeglBuffer            *dest_buffer);
+
+void   gimp_gegl_apply_invert_linear   (GeglBuffer            *src_buffer,
                                         GimpProgress          *progress,
                                         const gchar           *undo_desc,
                                         GeglBuffer            *dest_buffer);
diff --git a/app/pdb/color-cmds.c b/app/pdb/color-cmds.c
index 05724a3..cda0ddd 100644
--- a/app/pdb/color-cmds.c
+++ b/app/pdb/color-cmds.c
@@ -385,7 +385,7 @@ invert_invoker (GimpProcedure         *procedure,
         {
           gimp_drawable_apply_operation_by_name (drawable, progress,
                                                  _("Invert"),
-                                                 "gegl:invert",
+                                                 "gegl:invert-gamma",
                                                  NULL);
         }
       else
diff --git a/app/tools/gimpgegltool.c b/app/tools/gimpgegltool.c
index 3b444ad..2435556 100644
--- a/app/tools/gimpgegltool.c
+++ b/app/tools/gimpgegltool.c
@@ -132,7 +132,8 @@ gimp_gegl_tool_operation_blacklisted (const gchar *name,
     "gegl:fractal-trace",
     "gegl:gaussian-blur",
     "gegl:grid",
-    "gegl:invert",
+    "gegl:invert-linear",
+    "gegl:invert-gamma",
     "gegl:lens-distortion",
     "gegl:mono-mixer",
     "gegl:motion-blur-circular",
diff --git a/tools/pdbgen/pdb/color.pdb b/tools/pdbgen/pdb/color.pdb
index 55bec29..a6430b7 100644
--- a/tools/pdbgen/pdb/color.pdb
+++ b/tools/pdbgen/pdb/color.pdb
@@ -388,7 +388,7 @@ HELP
     {
       gimp_drawable_apply_operation_by_name (drawable, progress,
                                              _("Invert"),
-                                             "gegl:invert",
+                                             "gegl:invert-gamma",
                                              NULL);
     }
   else


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