[gimp] libgimpwidgets: add GimpColorDisplay::convert_buffer()



commit 50d4fe3496750cdebd3a36a81e4ef632275544c7
Author: Michael Natterer <mitch gimp org>
Date:   Fri Nov 1 22:34:09 2013 +0100

    libgimpwidgets: add GimpColorDisplay::convert_buffer()
    
    which takes a GeglBuffer and a GeglRectangle.

 libgimpwidgets/gimpcolordisplay.c      |   31 ++++++++++++++++++++++++++++-
 libgimpwidgets/gimpcolordisplay.h      |   12 +++++++++-
 libgimpwidgets/gimpcolordisplaystack.c |   34 +++++++++++++++++++++++++++++++-
 libgimpwidgets/gimpcolordisplaystack.h |    6 ++++-
 libgimpwidgets/gimpwidgets.def         |    2 +
 5 files changed, 80 insertions(+), 5 deletions(-)
---
diff --git a/libgimpwidgets/gimpcolordisplay.c b/libgimpwidgets/gimpcolordisplay.c
index 37e8dc0..c3dcc80 100644
--- a/libgimpwidgets/gimpcolordisplay.c
+++ b/libgimpwidgets/gimpcolordisplay.c
@@ -141,6 +141,7 @@ gimp_color_display_class_init (GimpColorDisplayClass *klass)
   klass->stock_id        = GIMP_STOCK_DISPLAY_FILTER;
 
   klass->clone           = NULL;
+  klass->convert_buffer  = NULL;
   klass->convert_surface = NULL;
   klass->convert         = NULL;
   klass->load_state      = NULL;
@@ -336,6 +337,32 @@ gimp_color_display_clone (GimpColorDisplay *display)
 }
 
 /**
+ * gimp_color_display_convert_buffer:
+ * @display: a #GimpColorDisplay
+ * @buffer:  a #GeglBuffer
+ * @area:    area in @buffer to convert
+ *
+ * Converts all pixels in @area of @buffer.
+ *
+ * Since: GIMP 2.10
+ **/
+void
+gimp_color_display_convert_buffer (GimpColorDisplay *display,
+                                   GeglBuffer       *buffer,
+                                   GeglRectangle    *area)
+{
+  g_return_if_fail (GIMP_IS_COLOR_DISPLAY (display));
+  g_return_if_fail (GEGL_IS_BUFFER (buffer));
+
+  if (display->enabled &&
+      GIMP_COLOR_DISPLAY_GET_CLASS (display)->convert_buffer)
+    {
+      GIMP_COLOR_DISPLAY_GET_CLASS (display)->convert_buffer (display, buffer,
+                                                              area);
+    }
+}
+
+/**
  * gimp_color_display_convert_surface:
  * @display: a #GimpColorDisplay
  * @surface: a #cairo_image_surface_t of type ARGB32
@@ -343,6 +370,8 @@ gimp_color_display_clone (GimpColorDisplay *display)
  * Converts all pixels in @surface.
  *
  * Since: GIMP 2.8
+ *
+ * Deprecated: GIMP 2.8: Use gimp_color_display_convert_buffer() instead.
  **/
 void
 gimp_color_display_convert_surface (GimpColorDisplay *display,
@@ -373,7 +402,7 @@ gimp_color_display_convert_surface (GimpColorDisplay *display,
  *
  * Converts all pixels in @buf.
  *
- * Deprecated: GIMP 2.8: Use gimp_color_display_convert_surface() instead.
+ * Deprecated: GIMP 2.8: Use gimp_color_display_convert_buffer() instead.
  **/
 void
 gimp_color_display_convert (GimpColorDisplay *display,
diff --git a/libgimpwidgets/gimpcolordisplay.h b/libgimpwidgets/gimpcolordisplay.h
index 3d45311..1556928 100644
--- a/libgimpwidgets/gimpcolordisplay.h
+++ b/libgimpwidgets/gimpcolordisplay.h
@@ -85,11 +85,15 @@ struct _GimpColorDisplayClass
 
   const gchar  *stock_id;
 
+  /*  implementing the GimpColorDisplay::convert_surface method is deprecated  */
   void               (* convert_surface) (GimpColorDisplay *display,
                                           cairo_surface_t  *surface);
 
+  void               (* convert_buffer)  (GimpColorDisplay *display,
+                                          GeglBuffer       *buffer,
+                                          GeglRectangle    *area);
+
   /* Padding for future expansion */
-  void (* _gimp_reserved3) (void);
   void (* _gimp_reserved4) (void);
 };
 
@@ -100,9 +104,13 @@ GIMP_DEPRECATED_FOR(g_object_new)
 GimpColorDisplay * gimp_color_display_new         (GType             display_type);
 GimpColorDisplay * gimp_color_display_clone       (GimpColorDisplay *display);
 
+void           gimp_color_display_convert_buffer  (GimpColorDisplay *display,
+                                                   GeglBuffer       *buffer,
+                                                   GeglRectangle    *area);
+GIMP_DEPRECATED_FOR(gimp_color_display_convert_buffer)
 void           gimp_color_display_convert_surface (GimpColorDisplay *display,
                                                    cairo_surface_t  *surface);
-GIMP_DEPRECATED_FOR(gimp_color_display_convert_surface)
+GIMP_DEPRECATED_FOR(gimp_color_display_convert_buffer)
 void           gimp_color_display_convert         (GimpColorDisplay *display,
                                                    guchar           *buf,
                                                    gint              width,
diff --git a/libgimpwidgets/gimpcolordisplaystack.c b/libgimpwidgets/gimpcolordisplaystack.c
index 5a0401d..6e3c435 100644
--- a/libgimpwidgets/gimpcolordisplaystack.c
+++ b/libgimpwidgets/gimpcolordisplaystack.c
@@ -286,6 +286,34 @@ gimp_color_display_stack_reorder_down (GimpColorDisplayStack *stack,
 }
 
 /**
+ * gimp_color_display_stack_convert_buffer:
+ * @stack:  a #GimpColorDisplayStack
+ * @buffer: a #GeglBuffer
+ * @area:   area of @buffer to convert
+ *
+ * Runs all the stack's filters on all pixels in @area of @buffer.
+ *
+ * Since: GIMP 2.10
+ **/
+void
+gimp_color_display_stack_convert_buffer (GimpColorDisplayStack *stack,
+                                         GeglBuffer            *buffer,
+                                         GeglRectangle         *area)
+{
+  GList *list;
+
+  g_return_if_fail (GIMP_IS_COLOR_DISPLAY_STACK (stack));
+  g_return_if_fail (GEGL_IS_BUFFER (buffer));
+
+  for (list = stack->filters; list; list = g_list_next (list))
+    {
+      GimpColorDisplay *display = list->data;
+
+      gimp_color_display_convert_buffer (display, buffer, area);
+    }
+}
+
+/**
  * gimp_color_display_stack_convert_surface:
  * @stack: a #GimpColorDisplayStack
  * @surface: a #cairo_image_surface_t of type ARGB32
@@ -293,6 +321,8 @@ gimp_color_display_stack_reorder_down (GimpColorDisplayStack *stack,
  * Runs all the stack's filters on all pixels in @surface.
  *
  * Since: GIMP 2.8
+ *
+ * Deprecated: GIMP 2.10: Use gimp_color_display_stack_convert_buffer() instead.
  **/
 void
 gimp_color_display_stack_convert_surface (GimpColorDisplayStack *stack,
@@ -309,7 +339,9 @@ gimp_color_display_stack_convert_surface (GimpColorDisplayStack *stack,
     {
       GimpColorDisplay *display = list->data;
 
+      G_GNUC_BEGIN_IGNORE_DEPRECATIONS
       gimp_color_display_convert_surface (display, surface);
+      G_GNUC_END_IGNORE_DEPRECATIONS
     }
 }
 
@@ -324,7 +356,7 @@ gimp_color_display_stack_convert_surface (GimpColorDisplayStack *stack,
  *
  * Converts all pixels in @buf.
  *
- * Deprecated: GIMP 2.8: Use gimp_color_display_stack_convert_surface() instead.
+ * Deprecated: GIMP 2.8: Use gimp_color_display_stack_convert_buffer() instead.
  **/
 void
 gimp_color_display_stack_convert (GimpColorDisplayStack *stack,
diff --git a/libgimpwidgets/gimpcolordisplaystack.h b/libgimpwidgets/gimpcolordisplaystack.h
index d3e0304..f3e9055 100644
--- a/libgimpwidgets/gimpcolordisplaystack.h
+++ b/libgimpwidgets/gimpcolordisplaystack.h
@@ -85,9 +85,13 @@ void   gimp_color_display_stack_reorder_up      (GimpColorDisplayStack *stack,
                                                  GimpColorDisplay      *display);
 void   gimp_color_display_stack_reorder_down    (GimpColorDisplayStack *stack,
                                                  GimpColorDisplay      *display);
+void   gimp_color_display_stack_convert_buffer  (GimpColorDisplayStack *stack,
+                                                 GeglBuffer            *buffer,
+                                                 GeglRectangle         *area);
+GIMP_DEPRECATED_FOR(gimp_color_display_stack_convert_buffer)
 void   gimp_color_display_stack_convert_surface (GimpColorDisplayStack *stack,
                                                  cairo_surface_t       *surface);
-GIMP_DEPRECATED_FOR(gimp_color_display_stack_convert_surface)
+GIMP_DEPRECATED_FOR(gimp_color_display_stack_convert_buffer)
 void   gimp_color_display_stack_convert         (GimpColorDisplayStack *stack,
                                                  guchar                *buf,
                                                  gint                   width,
diff --git a/libgimpwidgets/gimpwidgets.def b/libgimpwidgets/gimpwidgets.def
index 0fe2e50..3d83e51 100644
--- a/libgimpwidgets/gimpwidgets.def
+++ b/libgimpwidgets/gimpwidgets.def
@@ -44,6 +44,7 @@ EXPORTS
        gimp_color_display_configure
        gimp_color_display_configure_reset
        gimp_color_display_convert
+       gimp_color_display_convert_buffer
        gimp_color_display_convert_surface
        gimp_color_display_get_config
        gimp_color_display_get_enabled
@@ -57,6 +58,7 @@ EXPORTS
        gimp_color_display_stack_changed
        gimp_color_display_stack_clone
        gimp_color_display_stack_convert
+       gimp_color_display_stack_convert_buffer
        gimp_color_display_stack_convert_surface
        gimp_color_display_stack_get_type
        gimp_color_display_stack_new


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