[gimp] plug-ins: port map-objects to libgimp objects



commit 1f4a5d4004fa814ef58051e22648212b6aab8f72
Author: Michael Natterer <mitch gimp org>
Date:   Tue Sep 3 10:28:21 2019 +0200

    plug-ins: port map-objects to libgimp objects

 plug-ins/map-object/Makefile.am        |  3 +-
 plug-ins/map-object/map-object-apply.c | 78 +++++++++++++++++-----------------
 plug-ins/map-object/map-object-image.c | 36 ++++++++--------
 plug-ins/map-object/map-object-image.h | 14 +++---
 plug-ins/map-object/map-object-main.c  | 43 ++++++++++---------
 plug-ins/map-object/map-object-ui.c    | 38 +++++++----------
 plug-ins/map-object/map-object-ui.h    |  2 +-
 7 files changed, 106 insertions(+), 108 deletions(-)
---
diff --git a/plug-ins/map-object/Makefile.am b/plug-ins/map-object/Makefile.am
index f7c1b5c693..39e64e7b05 100644
--- a/plug-ins/map-object/Makefile.am
+++ b/plug-ins/map-object/Makefile.am
@@ -48,10 +48,9 @@ map_object_SOURCES = \
        ../lighting/images/lighting-icon-images.h
 
 AM_CPPFLAGS = \
-       -DGIMP_DEPRECATED_REPLACE_NEW_API \
        -I$(top_srcdir) \
        $(GTK_CFLAGS)   \
-       $(GEGL_CFLAGS) \
+       $(GEGL_CFLAGS)  \
        -I$(includedir)
 
 LDADD = \
diff --git a/plug-ins/map-object/map-object-apply.c b/plug-ins/map-object/map-object-apply.c
index 0a2fb9baf6..b71a6b4344 100644
--- a/plug-ins/map-object/map-object-apply.c
+++ b/plug-ins/map-object/map-object-apply.c
@@ -133,9 +133,9 @@ init_compute (void)
 
         for (i = 0; i < 6; i++)
           {
-            box_drawable_ids[i] = mapvals.boxmap_id[i];
+            box_drawables[i] = gimp_drawable_get_by_id (mapvals.boxmap_id[i]);
 
-            box_buffers[i] = gimp_drawable_get_buffer (box_drawable_ids[i]);
+            box_buffers[i] = gimp_drawable_get_buffer (box_drawables[i]);
           }
 
         break;
@@ -170,9 +170,9 @@ init_compute (void)
 
         for (i = 0; i < 2; i++)
           {
-            cylinder_drawable_ids[i] = mapvals.cylindermap_id[i];
+            cylinder_drawables[i] = gimp_drawable_get_by_id (mapvals.cylindermap_id[i]);;
 
-            cylinder_buffers[i] = gimp_drawable_get_buffer (cylinder_drawable_ids[i]);
+            cylinder_buffers[i] = gimp_drawable_get_buffer (cylinder_drawables[i]);
           }
         break;
     }
@@ -216,27 +216,27 @@ compute_image (void)
   GimpRGB      color;
   glong        progress_counter = 0;
   GimpVector3  p;
-  gint32       new_image_id = -1;
-  gint32       new_layer_id = -1;
+  GimpImage   *new_image    = NULL;
+  GimpLayer   *new_layer    = NULL;
   gboolean     insert_layer = FALSE;
 
   init_compute ();
 
   if (mapvals.create_new_image)
     {
-      new_image_id = gimp_image_new (width, height, GIMP_RGB);
+      new_image = gimp_image_new (width, height, GIMP_RGB);
     }
   else
     {
-      new_image_id = image_id;
+      new_image = image;
     }
 
-  gimp_image_undo_group_start (new_image_id);
+  gimp_image_undo_group_start (new_image);
 
   if (mapvals.create_new_image ||
       mapvals.create_new_layer ||
       (mapvals.transparent_background &&
-       ! gimp_drawable_has_alpha (output_drawable_id)))
+       ! gimp_drawable_has_alpha (output_drawable)))
     {
       gchar *layername[] = {_("Map to plane"),
                             _("Map to sphere"),
@@ -244,36 +244,36 @@ compute_image (void)
                             _("Map to cylinder"),
                             _("Background")};
 
-      new_layer_id = gimp_layer_new (new_image_id,
-                                     layername[mapvals.create_new_image ? 4 :
-                                               mapvals.maptype],
-                                     width, height,
-                                     mapvals.transparent_background ?
-                                     GIMP_RGBA_IMAGE :
-                                     GIMP_RGB_IMAGE,
-                                     100.0,
-                                     gimp_image_get_default_new_layer_mode (new_image_id));
+      new_layer = gimp_layer_new (new_image,
+                                  layername[mapvals.create_new_image ? 4 :
+                                            mapvals.maptype],
+                                  width, height,
+                                  mapvals.transparent_background ?
+                                  GIMP_RGBA_IMAGE :
+                                  GIMP_RGB_IMAGE,
+                                  100.0,
+                                  gimp_image_get_default_new_layer_mode (new_image));
 
       insert_layer = TRUE;
-      output_drawable_id = new_layer_id;
+      output_drawable = GIMP_DRAWABLE (new_layer);
     }
 
-  dest_buffer = gimp_drawable_get_shadow_buffer (output_drawable_id);
+  dest_buffer = gimp_drawable_get_shadow_buffer (output_drawable);
 
   switch (mapvals.maptype)
     {
-      case MAP_PLANE:
-        gimp_progress_init (_("Map to plane"));
-        break;
-      case MAP_SPHERE:
-        gimp_progress_init (_("Map to sphere"));
-        break;
-      case MAP_BOX:
-        gimp_progress_init (_("Map to box"));
-        break;
-      case MAP_CYLINDER:
-        gimp_progress_init (_("Map to cylinder"));
-        break;
+    case MAP_PLANE:
+      gimp_progress_init (_("Map to plane"));
+      break;
+    case MAP_SPHERE:
+      gimp_progress_init (_("Map to sphere"));
+      break;
+    case MAP_BOX:
+      gimp_progress_init (_("Map to box"));
+      break;
+    case MAP_CYLINDER:
+      gimp_progress_init (_("Map to cylinder"));
+      break;
     }
 
   if (! mapvals.antialiasing)
@@ -313,16 +313,16 @@ compute_image (void)
   g_object_unref (dest_buffer);
 
   if (insert_layer)
-    gimp_image_insert_layer (new_image_id, new_layer_id, -1, 0);
+    gimp_image_insert_layer (new_image, new_layer, NULL, 0);
 
-  gimp_drawable_merge_shadow (output_drawable_id, TRUE);
-  gimp_drawable_update (output_drawable_id, 0, 0, width, height);
+  gimp_drawable_merge_shadow (output_drawable, TRUE);
+  gimp_drawable_update (output_drawable, 0, 0, width, height);
 
-  if (new_image_id != image_id)
+  if (new_image != image)
     {
-      gimp_display_new (new_image_id);
+      gimp_display_new (new_image);
       gimp_displays_flush ();
     }
 
-  gimp_image_undo_group_end (new_image_id);
+  gimp_image_undo_group_end (new_image);
 }
diff --git a/plug-ins/map-object/map-object-image.c b/plug-ins/map-object/map-object-image.c
index 1f16279909..f8e1557ef1 100644
--- a/plug-ins/map-object/map-object-image.c
+++ b/plug-ins/map-object/map-object-image.c
@@ -23,23 +23,25 @@
 #include "map-object-image.h"
 
 
-gint32      input_drawable_id;
-gint32      output_drawable_id;
-GeglBuffer *source_buffer;
-GeglBuffer *dest_buffer;
+GimpImage    *image;
 
-gint32      box_drawable_ids[6];
-GeglBuffer *box_buffers[6];
+GimpDrawable *input_drawable;
+GimpDrawable *output_drawable;
+GeglBuffer   *source_buffer;
+GeglBuffer   *dest_buffer;
 
-gint32      cylinder_drawable_ids[2];
-GeglBuffer *cylinder_buffers[2];
+GimpDrawable *box_drawables[6];
+GeglBuffer   *box_buffers[6];
+
+GimpDrawable *cylinder_drawables[2];
+GeglBuffer   *cylinder_buffers[2];
 
 guchar          *preview_rgb_data = NULL;
 gint             preview_rgb_stride;
 cairo_surface_t *preview_surface = NULL;
 
 glong    maxcounter, old_depth, max_depth;
-gint     width, height, image_id;
+gint     width, height;
 GimpRGB  background;
 
 gint border_x, border_y, border_w, border_h;
@@ -309,20 +311,20 @@ get_cylinder_image_color (gint    image,
 /****************************************/
 
 gint
-image_setup (gint32 drawable_id,
-             gint   interactive)
+image_setup (GimpDrawable *drawable,
+             gint          interactive)
 {
-  input_drawable_id  = drawable_id;
-  output_drawable_id = drawable_id;
+  input_drawable  = drawable;
+  output_drawable = drawable;
 
-  if (! gimp_drawable_mask_intersect (drawable_id, &border_x, &border_y,
+  if (! gimp_drawable_mask_intersect (drawable, &border_x, &border_y,
                                       &border_w, &border_h))
     return FALSE;
 
-  width  = gimp_drawable_width  (input_drawable_id);
-  height = gimp_drawable_height (input_drawable_id);
+  width  = gimp_drawable_width  (input_drawable);
+  height = gimp_drawable_height (input_drawable);
 
-  source_buffer = gimp_drawable_get_buffer (input_drawable_id);
+  source_buffer = gimp_drawable_get_buffer (input_drawable);
 
   maxcounter = (glong) width * (glong) height;
 
diff --git a/plug-ins/map-object/map-object-image.h b/plug-ins/map-object/map-object-image.h
index 189204b361..f6ad239630 100644
--- a/plug-ins/map-object/map-object-image.h
+++ b/plug-ins/map-object/map-object-image.h
@@ -4,15 +4,17 @@
 /* Externally visible variables */
 /* ============================ */
 
-extern gint32        input_drawable_id;
-extern gint32        output_drawable_id;
+extern GimpImage    *image;
+
+extern GimpDrawable *input_drawable;
+extern GimpDrawable *output_drawable;
 extern GeglBuffer   *source_buffer;
 extern GeglBuffer   *dest_buffer;
 
-extern gint32        box_drawable_ids[6];
+extern GimpDrawable *box_drawables[6];
 extern GeglBuffer   *box_buffers[6];
 
-extern gint32        cylinder_drawable_ids[2];
+extern GimpDrawable *cylinder_drawables[2];
 extern GeglBuffer   *cylinder_buffers[2];
 
 extern guchar          *preview_rgb_data;
@@ -20,7 +22,7 @@ extern gint             preview_rgb_stride;
 extern cairo_surface_t *preview_surface;
 
 extern glong    maxcounter, old_depth, max_depth;
-extern gint     width, height, image_id;
+extern gint     width, height;
 extern GimpRGB  background;
 
 extern gint border_x1, border_y1, border_x2, border_y2;
@@ -28,7 +30,7 @@ extern gint border_x1, border_y1, border_x2, border_y2;
 /* Externally visible functions */
 /* ============================ */
 
-extern gint        image_setup              (gint32        drawable_id,
+extern gint        image_setup              (GimpDrawable *drawable,
                                              gint          interactive);
 extern glong       in_xy_to_index           (gint          x,
                                              gint          y);
diff --git a/plug-ins/map-object/map-object-main.c b/plug-ins/map-object/map-object-main.c
index 6bf3d94c6f..76ddf9aceb 100644
--- a/plug-ins/map-object/map-object-main.c
+++ b/plug-ins/map-object/map-object-main.c
@@ -101,19 +101,20 @@ set_default_settings (void)
 }
 
 static void
-check_drawables (gint32 drawable_id)
+check_drawables (GimpDrawable *drawable)
 {
-  gint i;
+  GimpDrawable *map;
+  gint          i;
 
   /* Check that boxmap images are valid */
   /* ================================== */
 
   for (i = 0; i < 6; i++)
     {
-      if (mapvals.boxmap_id[i] == -1 ||
-          !gimp_item_is_valid (mapvals.boxmap_id[i]) ||
-          gimp_drawable_is_gray (mapvals.boxmap_id[i]))
-        mapvals.boxmap_id[i] = drawable_id;
+      map = gimp_drawable_get_by_id (mapvals.boxmap_id[i]);
+
+      if (! map || gimp_drawable_is_gray (map))
+        mapvals.boxmap_id[i] = gimp_item_get_id (GIMP_ITEM (drawable));
     }
 
   /* Check that cylindermap images are valid */
@@ -121,10 +122,10 @@ check_drawables (gint32 drawable_id)
 
   for (i = 0; i < 2; i++)
     {
-      if (mapvals.cylindermap_id[i] == -1 ||
-          !gimp_item_is_valid (mapvals.cylindermap_id[i]) ||
-          gimp_drawable_is_gray (mapvals.cylindermap_id[i]))
-        mapvals.cylindermap_id[i] = drawable_id;
+     map = gimp_drawable_get_by_id (mapvals.cylindermap_id[i]);
+
+     if (! map || gimp_drawable_is_gray (map))
+        mapvals.cylindermap_id[i] = gimp_item_get_id (GIMP_ITEM (drawable));
     }
 }
 
@@ -192,7 +193,7 @@ query (void)
                           "Version 1.2.0, July 16 1998",
                           N_("Map _Object..."),
                           "RGB*",
-                          GIMP_PLUGIN,
+                          GIMP_PDB_PROC_TYPE_PLUGIN,
                           G_N_ELEMENTS (args), 0,
                           args, NULL);
 
@@ -208,7 +209,7 @@ run (const gchar      *name,
 {
   static GimpParam   values[1];
   GimpRunMode        run_mode;
-  gint32             drawable_id;
+  GimpDrawable      *drawable;
   GimpPDBStatusType  status = GIMP_PDB_SUCCESS;
   gint               i;
 
@@ -228,9 +229,9 @@ run (const gchar      *name,
   /* Get the specified drawable */
   /* ========================== */
 
-  run_mode    = param[0].data.d_int32;
-  image_id    = param[1].data.d_int32;
-  drawable_id = param[2].data.d_int32;
+  run_mode = param[0].data.d_int32;
+  image    = gimp_image_get_by_id (param[1].data.d_int32);
+  drawable = gimp_drawable_get_by_id (param[2].data.d_int32);
 
   switch (run_mode)
     {
@@ -240,8 +241,8 @@ run (const gchar      *name,
         /* ====================== */
 
         gimp_get_data (PLUG_IN_PROC, &mapvals);
-        check_drawables (drawable_id);
-        if (main_dialog (drawable_id))
+        check_drawables (drawable);
+        if (main_dialog (drawable))
           {
             compute_image ();
 
@@ -251,8 +252,8 @@ run (const gchar      *name,
 
       case GIMP_RUN_WITH_LAST_VALS:
         gimp_get_data (PLUG_IN_PROC, &mapvals);
-        check_drawables (drawable_id);
-        if (image_setup (drawable_id, FALSE))
+        check_drawables (drawable);
+        if (image_setup (drawable, FALSE))
           compute_image ();
         break;
 
@@ -309,8 +310,8 @@ run (const gchar      *name,
             for (i = 0; i < 2; i++)
               mapvals.cylindermap_id[i] = param[47+i].data.d_drawable;
 
-            check_drawables (drawable_id);
-            if (image_setup (drawable_id, FALSE))
+            check_drawables (drawable);
+            if (image_setup (drawable, FALSE))
               compute_image ();
           }
         break;
diff --git a/plug-ins/map-object/map-object-ui.c b/plug-ins/map-object/map-object-ui.c
index 4f78c70d95..97fc4f7cd9 100644
--- a/plug-ins/map-object/map-object-ui.c
+++ b/plug-ins/map-object/map-object-ui.c
@@ -54,11 +54,11 @@ static void lightmenu_callback         (GtkWidget     *widget,
 static void preview_callback           (GtkWidget     *widget,
                                         gpointer       data);
 
-static gint box_constrain              (gint32         image_id,
-                                        gint32         drawable_id,
+static gint box_constrain              (GimpImage     *image,
+                                        GimpItem      *item,
                                         gpointer       data);
-static gint cylinder_constrain         (gint32         image_id,
-                                        gint32         drawable_id,
+static gint cylinder_constrain         (GimpImage     *image,
+                                        GimpItem      *item,
                                         gpointer       data);
 
 static GtkWidget * create_options_page     (void);
@@ -268,27 +268,21 @@ zoomed_callback (GimpZoomModel *model)
 /**********************************************/
 
 static gint
-box_constrain (gint32   image_id,
-               gint32   drawable_id,
-               gpointer data)
+box_constrain (GimpImage *image,
+               GimpItem  *item,
+               gpointer   data)
 {
-  if (drawable_id == -1)
-    return TRUE;
-
-  return (gimp_drawable_is_rgb (drawable_id) &&
-          !gimp_drawable_is_indexed (drawable_id));
+  return (gimp_drawable_is_rgb (GIMP_DRAWABLE (item)) &&
+          ! gimp_drawable_is_indexed (GIMP_DRAWABLE (item)));
 }
 
 static gint
-cylinder_constrain (gint32   image_id,
-                    gint32   drawable_id,
-                    gpointer data)
+cylinder_constrain (GimpImage *image,
+                    GimpItem  *item,
+                    gpointer   data)
 {
-  if (drawable_id == -1)
-    return TRUE;
-
-  return (gimp_drawable_is_rgb (drawable_id) &&
-          !gimp_drawable_is_indexed (drawable_id));
+  return (gimp_drawable_is_rgb (GIMP_DRAWABLE (item)) &&
+          ! gimp_drawable_is_indexed (GIMP_DRAWABLE (item)));
 }
 
 /******************************/
@@ -1295,7 +1289,7 @@ create_main_notebook (GtkWidget *container)
 /********************************/
 
 gboolean
-main_dialog (gint32 drawable_id)
+main_dialog (GimpDrawable *drawable)
 {
   GtkWidget     *main_hbox;
   GtkWidget     *vbox;
@@ -1426,7 +1420,7 @@ main_dialog (gint32 drawable_id)
     g_object_unref (cursor);
   }
 
-  image_setup (drawable_id, TRUE);
+  image_setup (drawable, TRUE);
 
   compute_preview_image ();
 
diff --git a/plug-ins/map-object/map-object-ui.h b/plug-ins/map-object/map-object-ui.h
index 69f6065a1a..2c619ac130 100644
--- a/plug-ins/map-object/map-object-ui.h
+++ b/plug-ins/map-object/map-object-ui.h
@@ -9,6 +9,6 @@ extern GtkWidget *previewarea;
 /* Externally visible functions */
 /* ============================ */
 
-gboolean main_dialog (gint32 drawable_id);
+gboolean main_dialog (GimpDrawable *drawable);
 
 #endif  /* __MAPOBJECT_UI_H__ */


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