[gimp] plug-ins: port file-tga to GimpPlugIn and libgimp objects



commit 0ae833b0e01f1dacfbe8330bdc9f56e3428e9ae4
Author: Michael Natterer <mitch gimp org>
Date:   Sat Aug 24 18:34:53 2019 +0200

    plug-ins: port file-tga to GimpPlugIn and libgimp objects

 plug-ins/common/Makefile.am    |   2 -
 plug-ins/common/file-tga.c     | 552 ++++++++++++++++++++---------------------
 plug-ins/common/plugin-defs.pl |   2 +-
 3 files changed, 276 insertions(+), 280 deletions(-)
---
diff --git a/plug-ins/common/Makefile.am b/plug-ins/common/Makefile.am
index f47ec09d09..d5ce30b7a6 100644
--- a/plug-ins/common/Makefile.am
+++ b/plug-ins/common/Makefile.am
@@ -1108,8 +1108,6 @@ file_svg_LDADD = \
        $(INTLLIBS)             \
        $(file_svg_RC)
 
-file_tga_CPPFLAGS = $(AM_CPPFLAGS) -DGIMP_DEPRECATED_REPLACE_NEW_API
-
 file_tga_SOURCES = \
        file-tga.c
 
diff --git a/plug-ins/common/file-tga.c b/plug-ins/common/file-tga.c
index aabafa5b3e..99e3e5b30e 100644
--- a/plug-ins/common/file-tga.c
+++ b/plug-ins/common/file-tga.c
@@ -72,15 +72,8 @@
  *     one fully transparent color is allowed in INDEXEDA mode).
  */
 
-/* Set these for debugging. */
-/* #define PROFILE 1 */
-
 #include "config.h"
 
-#ifdef PROFILE
-# include <sys/times.h>
-#endif
-
 #include <errno.h>
 #include <string.h>
 
@@ -109,20 +102,6 @@ typedef struct _TgaSaveVals
   TgaOrigin  origin;
 } TgaSaveVals;
 
-static TgaSaveVals tsvals =
-{
-  TRUE,                 /* rle    */
-  ORIGIN_BOTTOM_LEFT    /* origin */
-};
-
-
- /* TRUEVISION-XFILE magic signature string */
-static guchar magic[18] =
-{
-  0x54, 0x52, 0x55, 0x45, 0x56, 0x49, 0x53, 0x49, 0x4f,
-  0x4e, 0x2d, 0x58, 0x46, 0x49, 0x4c, 0x45, 0x2e, 0x0
-};
-
 typedef struct tga_info_struct
 {
   guint8 idLength;
@@ -176,269 +155,288 @@ typedef struct tga_info_struct
 } tga_info;
 
 
-/* Declare some local functions.
- */
-static void      query         (void);
-static void      run           (const gchar      *name,
-                                gint              nparams,
-                                const GimpParam  *param,
-                                gint             *nreturn_vals,
-                                GimpParam       **return_vals);
+typedef struct _Tga      Tga;
+typedef struct _TgaClass TgaClass;
+
+struct _Tga
+{
+  GimpPlugIn      parent_instance;
+};
+
+struct _TgaClass
+{
+  GimpPlugInClass parent_class;
+};
+
+
+#define TGA_TYPE  (tga_get_type ())
+#define TGA (obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TGA_TYPE, Tga))
+
+GType                   tga_get_type         (void) G_GNUC_CONST;
+
+static GList          * tga_query_procedures (GimpPlugIn           *plug_in);
+static GimpProcedure  * tga_create_procedure (GimpPlugIn           *plug_in,
+                                               const gchar          *name);
+
+static GimpValueArray * tga_load             (GimpProcedure        *procedure,
+                                              GimpRunMode           run_mode,
+                                              GFile                *file,
+                                              const GimpValueArray *args,
+                                              gpointer              run_data);
+static GimpValueArray * tga_save             (GimpProcedure        *procedure,
+                                              GimpRunMode           run_mode,
+                                              GimpImage            *image,
+                                              GimpDrawable         *drawable,
+                                              GFile                *file,
+                                              const GimpValueArray *args,
+                                              gpointer              run_data);
+
+static GimpImage      * load_image           (const gchar          *filename,
+                                              GError              **error);
+static gboolean         save_image           (const gchar          *filename,
+                                              GimpImage            *image,
+                                              GimpDrawable         *drawable,
+                                              GError              **error);
 
-static gint32    load_image    (const gchar      *filename,
-                                GError          **error);
-static gint      save_image    (const gchar      *filename,
-                                gint32            image_ID,
-                                gint32            drawable_ID,
-                                GError          **error);
+static gboolean         save_dialog          (void);
 
-static gboolean  save_dialog   (void);
+static GimpImage      * ReadImage            (FILE                 *fp,
+                                              tga_info             *info,
+                                              const gchar          *filename);
 
-static gint32    ReadImage     (FILE             *fp,
-                                tga_info         *info,
-                                const gchar      *filename);
 
+G_DEFINE_TYPE (Tga, tga, GIMP_TYPE_PLUG_IN)
 
-const GimpPlugInInfo PLUG_IN_INFO =
+GIMP_MAIN (TGA_TYPE)
+
+
+static TgaSaveVals tsvals =
 {
-  NULL,  /* init_proc  */
-  NULL,  /* quit_proc  */
-  query, /* query_proc */
-  run,   /* run_proc   */
+  TRUE,                 /* rle    */
+  ORIGIN_BOTTOM_LEFT    /* origin */
 };
 
+/* TRUEVISION-XFILE magic signature string */
+static guchar magic[18] =
+{
+  0x54, 0x52, 0x55, 0x45, 0x56, 0x49, 0x53, 0x49, 0x4f,
+  0x4e, 0x2d, 0x58, 0x46, 0x49, 0x4c, 0x45, 0x2e, 0x0
+};
 
-MAIN ()
 
 static void
-query (void)
+tga_class_init (TgaClass *klass)
 {
-  static const GimpParamDef load_args[] =
-  {
-    { GIMP_PDB_INT32,  "run-mode",     "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }" },
-    { GIMP_PDB_STRING, "filename",     "The name of the file to load" },
-    { GIMP_PDB_STRING, "raw-filename", "The name entered"             }
-  };
-
-  static const GimpParamDef load_return_vals[] =
-  {
-    { GIMP_PDB_IMAGE, "image", "Output image" }
-  };
-
-  static const GimpParamDef save_args[] =
-  {
-    { GIMP_PDB_INT32,    "run-mode",     "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }" },
-    { GIMP_PDB_IMAGE,    "image",        "Input image"                  },
-    { GIMP_PDB_DRAWABLE, "drawable",     "Drawable to export"           },
-    { GIMP_PDB_STRING,   "filename",     "The name of the file to export the image in" },
-    { GIMP_PDB_STRING,   "raw-filename", "The name of the file to export the image in" },
-    { GIMP_PDB_INT32,    "rle",          "Use RLE compression"          },
-    { GIMP_PDB_INT32,    "origin",       "Image origin (0 = top-left, 1 = bottom-left)"}
-  } ;
-
-  gimp_install_procedure (LOAD_PROC,
-                          "Loads files of Targa file format",
-                          "FIXME: write help for tga_load",
-                          "Raphael FRANCOIS, Gordon Matzigkeit",
-                          "Raphael FRANCOIS, Gordon Matzigkeit",
-                          "1997,2000,2007",
-                          N_("TarGA image"),
-                          NULL,
-                          GIMP_PLUGIN,
-                          G_N_ELEMENTS (load_args),
-                          G_N_ELEMENTS (load_return_vals),
-                          load_args, load_return_vals);
-
-  gimp_register_file_handler_mime (LOAD_PROC, "image/x-tga");
-  gimp_register_magic_load_handler (LOAD_PROC,
-                                    "tga,vda,icb,vst",
-                                    "",
-                                    "-18&,string,TRUEVISION-XFILE.,-1,byte,0");
-
-  gimp_install_procedure (SAVE_PROC,
-                          "exports files in the Targa file format",
-                          "FIXME: write help for tga_save",
-                          "Raphael FRANCOIS, Gordon Matzigkeit",
-                          "Raphael FRANCOIS, Gordon Matzigkeit",
-                          "1997,2000",
-                          N_("TarGA image"),
-                          "RGB*, GRAY*, INDEXED*",
-                          GIMP_PLUGIN,
-                          G_N_ELEMENTS (save_args), 0,
-                          save_args, NULL);
-
-  gimp_register_file_handler_mime (SAVE_PROC, "image/x-tga");
-  gimp_register_save_handler (SAVE_PROC, "tga", "");
+  GimpPlugInClass *plug_in_class = GIMP_PLUG_IN_CLASS (klass);
+
+  plug_in_class->query_procedures = tga_query_procedures;
+  plug_in_class->create_procedure = tga_create_procedure;
 }
 
 static void
-run (const gchar      *name,
-     gint              nparams,
-     const GimpParam  *param,
-     gint             *nreturn_vals,
-     GimpParam       **return_vals)
+tga_init (Tga *tga)
 {
-  static GimpParam   values[2];
-  GimpRunMode        run_mode;
-  GimpPDBStatusType  status = GIMP_PDB_SUCCESS;
-  gint32             image_ID;
-  gint32             drawable_ID;
-  GimpExportReturn   export = GIMP_EXPORT_CANCEL;
-  GError            *error  = NULL;
+}
 
-#ifdef PROFILE
-  struct tms tbuf1, tbuf2;
-#endif
+static GList *
+tga_query_procedures (GimpPlugIn *plug_in)
+{
+  GList *list = NULL;
+
+  list = g_list_append (list, g_strdup (LOAD_PROC));
+  list = g_list_append (list, g_strdup (SAVE_PROC));
+
+  return list;
+}
+
+static GimpProcedure *
+tga_create_procedure (GimpPlugIn  *plug_in,
+                      const gchar *name)
+{
+  GimpProcedure *procedure = NULL;
+
+  if (! strcmp (name, LOAD_PROC))
+    {
+      procedure = gimp_load_procedure_new (plug_in, name, GIMP_PLUGIN,
+                                           tga_load, NULL, NULL);
+
+      gimp_procedure_set_menu_label (procedure, N_("TarGA image"));
+
+      gimp_procedure_set_documentation (procedure,
+                                        "Loads files of Targa file format",
+                                        "FIXME: write help for tga_load",
+                                        name);
+      gimp_procedure_set_attribution (procedure,
+                                      "Raphael FRANCOIS, Gordon Matzigkeit",
+                                      "Raphael FRANCOIS, Gordon Matzigkeit",
+                                      "1997,2000,2007");
+
+      gimp_file_procedure_set_mime_types (GIMP_FILE_PROCEDURE (procedure),
+                                          "image/x-tga");
+      gimp_file_procedure_set_extensions (GIMP_FILE_PROCEDURE (procedure),
+                                          "tga,vda,icb,vst");
+      gimp_file_procedure_set_magics (GIMP_FILE_PROCEDURE (procedure),
+                                      "-18&,string,TRUEVISION-XFILE.,-1,byte,0");
+    }
+  else if (! strcmp (name, SAVE_PROC))
+    {
+      procedure = gimp_save_procedure_new (plug_in, name, GIMP_PLUGIN,
+                                           tga_save, NULL, NULL);
+
+      gimp_procedure_set_image_types (procedure, "*");
+
+      gimp_procedure_set_menu_label (procedure, N_("TarGA image"));
+
+      gimp_procedure_set_documentation (procedure,
+                                        "Exports files in the Targa file format",
+                                        "FIXME: write help for tga_save",
+                                        name);
+      gimp_procedure_set_attribution (procedure,
+                                      "Raphael FRANCOIS, Gordon Matzigkeit",
+                                      "Raphael FRANCOIS, Gordon Matzigkeit",
+                                      "1997,2000");
+
+      gimp_file_procedure_set_mime_types (GIMP_FILE_PROCEDURE (procedure),
+                                          "image/x-tga");
+      gimp_file_procedure_set_extensions (GIMP_FILE_PROCEDURE (procedure),
+                                          "tga");
+
+      GIMP_PROC_ARG_BOOLEAN (procedure, "rle",
+                             "RLE",
+                             "Use RLE compression",
+                             TRUE,
+                             G_PARAM_READWRITE);
+
+      GIMP_PROC_ARG_INT (procedure, "origin",
+                         "Origin",
+                         "Image origin (0 = top-left, 1 = bottom-left)",
+                         0, 1, ORIGIN_BOTTOM_LEFT,
+                         G_PARAM_READWRITE);
+    }
+
+  return procedure;
+}
+
+static GimpValueArray *
+tga_load (GimpProcedure        *procedure,
+          GimpRunMode           run_mode,
+          GFile                *file,
+          const GimpValueArray *args,
+          gpointer              run_data)
+{
+  GimpValueArray *return_vals;
+  GimpImage      *image;
+  GError         *error = NULL;
 
   INIT_I18N ();
   gegl_init (NULL, NULL);
 
-  run_mode = param[0].data.d_int32;
+  image = load_image (g_file_get_path (file), &error);
 
-  *nreturn_vals = 1;
-  *return_vals  = values;
+  if (! image)
+    return gimp_procedure_new_return_values (procedure,
+                                             GIMP_PDB_EXECUTION_ERROR,
+                                             error);
 
-  values[0].type          = GIMP_PDB_STATUS;
-  values[0].data.d_status = GIMP_PDB_EXECUTION_ERROR;
+  return_vals = gimp_procedure_new_return_values (procedure,
+                                                  GIMP_PDB_SUCCESS,
+                                                  NULL);
 
-  if (strcmp (name, LOAD_PROC) == 0)
-    {
-      GFile *file = g_file_new_for_uri (param[1].data.d_string);
+  GIMP_VALUES_SET_IMAGE (return_vals, 1, image);
 
-#ifdef PROFILE
-      times (&tbuf1);
-#endif
+  return return_vals;
+}
 
-      image_ID = load_image (g_file_get_path (file), &error);
+static GimpValueArray *
+tga_save (GimpProcedure        *procedure,
+          GimpRunMode           run_mode,
+          GimpImage            *image,
+          GimpDrawable         *drawable,
+          GFile                *file,
+          const GimpValueArray *args,
+          gpointer              run_data)
+{
+  GimpPDBStatusType  status = GIMP_PDB_SUCCESS;
+  GimpExportReturn   export = GIMP_EXPORT_CANCEL;
+  GError            *error = NULL;
 
-      if (image_ID != -1)
-        {
-          *nreturn_vals = 2;
-          values[1].type         = GIMP_PDB_IMAGE;
-          values[1].data.d_image = image_ID;
-        }
-      else
-        {
-          status = GIMP_PDB_EXECUTION_ERROR;
-        }
-    }
-  else if (strcmp (name, SAVE_PROC) == 0)
-    {
-      GFile *file = g_file_new_for_uri (param[3].data.d_string);
+  INIT_I18N ();
+  gegl_init (NULL, NULL);
 
+  switch (run_mode)
+    {
+    case GIMP_RUN_INTERACTIVE:
+    case GIMP_RUN_WITH_LAST_VALS:
       gimp_ui_init (PLUG_IN_BINARY, FALSE);
 
-      image_ID     = param[1].data.d_int32;
-      drawable_ID  = param[2].data.d_int32;
+      export = gimp_export_image (&image, &drawable, "TGA",
+                                  GIMP_EXPORT_CAN_HANDLE_RGB     |
+                                  GIMP_EXPORT_CAN_HANDLE_GRAY    |
+                                  GIMP_EXPORT_CAN_HANDLE_INDEXED |
+                                  GIMP_EXPORT_CAN_HANDLE_ALPHA);
 
-      /*  eventually export the image */
-      switch (run_mode)
-        {
-        case GIMP_RUN_INTERACTIVE:
-        case GIMP_RUN_WITH_LAST_VALS:
-          export = gimp_export_image (&image_ID, &drawable_ID, "TGA",
-                                      GIMP_EXPORT_CAN_HANDLE_RGB     |
-                                      GIMP_EXPORT_CAN_HANDLE_GRAY    |
-                                      GIMP_EXPORT_CAN_HANDLE_INDEXED |
-                                      GIMP_EXPORT_CAN_HANDLE_ALPHA);
-
-          if (export == GIMP_EXPORT_CANCEL)
-            {
-              values[0].data.d_status = GIMP_PDB_CANCEL;
-              return;
-            }
-          break;
-        default:
-          break;
-        }
+      if (export == GIMP_EXPORT_CANCEL)
+        return gimp_procedure_new_return_values (procedure,
+                                                 GIMP_PDB_CANCEL,
+                                                 NULL);
+      break;
 
-      switch (run_mode)
-        {
-        case GIMP_RUN_INTERACTIVE:
-          /*  Possibly retrieve data  */
-          gimp_get_data (SAVE_PROC, &tsvals);
-
-          /*  First acquire information with a dialog  */
-          if (! save_dialog ())
-            status = GIMP_PDB_CANCEL;
-          break;
-
-        case GIMP_RUN_NONINTERACTIVE:
-          /*  Make sure all the arguments are there!  */
-          if (nparams != 7)
-            {
-              status = GIMP_PDB_CALLING_ERROR;
-            }
-          else
-            {
-              tsvals.rle = (param[5].data.d_int32) ? TRUE : FALSE;
-            }
-          break;
+    default:
+      break;
+    }
 
-        case GIMP_RUN_WITH_LAST_VALS:
-          /*  Possibly retrieve data  */
-          gimp_get_data (SAVE_PROC, &tsvals);
-          break;
+  switch (run_mode)
+    {
+    case GIMP_RUN_INTERACTIVE:
+      gimp_get_data (SAVE_PROC, &tsvals);
 
-        default:
-          break;
-        }
+      if (! save_dialog ())
+        status = GIMP_PDB_CANCEL;
+      break;
 
-#ifdef PROFILE
-      times (&tbuf1);
-#endif
+    case GIMP_RUN_NONINTERACTIVE:
+      tsvals.rle = GIMP_VALUES_GET_BOOLEAN (args, 0);
+      break;
 
-      if (status == GIMP_PDB_SUCCESS)
-        {
-          if (save_image (g_file_get_path (file),
-                          image_ID, drawable_ID,
-                          &error))
-            {
-              /*  Store psvals data  */
-              gimp_set_data (SAVE_PROC, &tsvals, sizeof (tsvals));
-            }
-          else
-            {
-              status = GIMP_PDB_EXECUTION_ERROR;
-            }
-        }
+    case GIMP_RUN_WITH_LAST_VALS:
+      gimp_get_data (SAVE_PROC, &tsvals);
+      break;
 
-      if (export == GIMP_EXPORT_EXPORT)
-        gimp_image_delete (image_ID);
-    }
-  else
-    {
-      status = GIMP_PDB_CALLING_ERROR;
+    default:
+      break;
     }
 
-  if (status != GIMP_PDB_SUCCESS && error)
+  if (status == GIMP_PDB_SUCCESS)
     {
-      *nreturn_vals = 2;
-      values[1].type          = GIMP_PDB_STRING;
-      values[1].data.d_string = error->message;
+      if (save_image (g_file_get_path (file),
+                      image, drawable,
+                      &error))
+        {
+          gimp_set_data (SAVE_PROC, &tsvals, sizeof (tsvals));
+        }
+      else
+        {
+          status = GIMP_PDB_EXECUTION_ERROR;
+        }
     }
 
-  values[0].data.d_status = status;
+  if (export == GIMP_EXPORT_EXPORT)
+    gimp_image_delete (image);
 
-#ifdef PROFILE
-  times (&tbuf2);
-  printf ("TGA: %s profile: %ld user %ld system\n", name,
-          (long) tbuf2.tms_utime - tbuf1.tms_utime,
-          (long) tbuf2.tms_stime - tbuf2.tms_stime);
-#endif
+  return gimp_procedure_new_return_values (procedure, status, error);
 }
 
-static gint32
+static GimpImage *
 load_image (const gchar  *filename,
             GError      **error)
 {
-  FILE     *fp;
-  tga_info  info;
-  guchar    header[18];
-  guchar    footer[26];
-  guchar    extension[495];
-  long      offset;
-  gint32    image_ID = -1;
+  FILE      *fp;
+  tga_info   info;
+  guchar     header[18];
+  guchar     footer[26];
+  guchar     extension[495];
+  long       offset;
+  GimpImage *image = NULL;
 
   gimp_progress_init_printf (_("Opening '%s'"),
                              gimp_filename_to_utf8 (filename));
@@ -450,7 +448,7 @@ load_image (const gchar  *filename,
       g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno),
                    _("Could not open '%s' for reading: %s"),
                    gimp_filename_to_utf8 (filename), g_strerror (errno));
-      return -1;
+      return NULL;
     }
 
   /* Is file big enough for a footer? */
@@ -460,7 +458,7 @@ load_image (const gchar  *filename,
         {
           g_message (_("Cannot read footer from '%s'"),
                      gimp_filename_to_utf8 (filename));
-          return -1;
+          return NULL;
         }
       else if (memcmp (footer + 8, magic, sizeof (magic)) == 0)
         {
@@ -478,7 +476,7 @@ load_image (const gchar  *filename,
                 {
                   g_message (_("Cannot read extension from '%s'"),
                              gimp_filename_to_utf8 (filename));
-                  return -1;
+                  return NULL;
                 }
               /* Eventually actually handle version 2 TGA here */
             }
@@ -490,7 +488,7 @@ load_image (const gchar  *filename,
     {
       g_message (_("Cannot read header from '%s'"),
                  gimp_filename_to_utf8 (filename));
-      return -1;
+      return NULL;
     }
 
   switch (header[2])
@@ -565,7 +563,7 @@ load_image (const gchar  *filename,
             g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u)",
                        gimp_filename_to_utf8 (filename),
                        info.imageType, info.bpp);
-            return -1;
+            return NULL;
           }
         break;
       case TGA_TYPE_COLOR:
@@ -580,7 +578,7 @@ load_image (const gchar  *filename,
             g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u, alpha = %u)",
                        gimp_filename_to_utf8 (filename),
                        info.imageType, info.bpp, info.alphaBits);
-            return -1;
+            return NULL;
           }
         break;
       case TGA_TYPE_GRAY:
@@ -590,14 +588,14 @@ load_image (const gchar  *filename,
             g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u)",
                        gimp_filename_to_utf8 (filename),
                        info.imageType, info.bpp);
-            return -1;
+            return NULL;
           }
         break;
 
       default:
         g_message ("Unknown image type %u for '%s'",
                    info.imageType, gimp_filename_to_utf8 (filename));
-        return -1;
+        return NULL;
     }
 
   /* Plausible but unhandled formats */
@@ -606,7 +604,7 @@ load_image (const gchar  *filename,
       g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u)",
                  gimp_filename_to_utf8 (filename),
                  info.imageType, info.bpp);
-      return -1;
+      return NULL;
     }
 
   /* Check that we have a color map only when we need it. */
@@ -614,13 +612,13 @@ load_image (const gchar  *filename,
     {
       g_message ("Indexed image has invalid color map type %u",
                  info.colorMapType);
-      return -1;
+      return NULL;
     }
   else if (info.imageType != TGA_TYPE_MAPPED && info.colorMapType != 0)
     {
       g_message ("Non-indexed image has invalid color map type %u",
                  info.colorMapType);
-      return -1;
+      return NULL;
     }
 
   /* Skip the image ID field. */
@@ -628,14 +626,14 @@ load_image (const gchar  *filename,
     {
       g_message ("File '%s' is truncated or corrupted",
                  gimp_filename_to_utf8 (filename));
-      return -1;
+      return NULL;
     }
 
-  image_ID = ReadImage (fp, &info, filename);
+  image = ReadImage (fp, &info, filename);
 
   fclose (fp);
 
-  return image_ID;
+  return image;
 }
 
 static void
@@ -970,13 +968,13 @@ read_line (FILE         *fp,
     }
 }
 
-static gint32
+static GimpImage *
 ReadImage (FILE        *fp,
            tga_info    *info,
            const gchar *filename)
 {
-  static gint32      image_ID;
-  gint32             layer_ID;
+  GimpImage         *image;
+  GimpLayer         *layer;
   GeglBuffer        *buffer;
   guchar            *data, *buf, *row;
   GimpImageType      dtype = 0;
@@ -1065,7 +1063,7 @@ ReadImage (FILE        *fp,
                 {
                   g_message ("Unsupported colormap depth: %u",
                              info->colorMapSize);
-                  return -1;
+                  return NULL;
                 }
             }
           else
@@ -1080,7 +1078,7 @@ ReadImage (FILE        *fp,
                 {
                   g_message ("Unsupported colormap depth: %u",
                              info->colorMapSize);
-                  return -1;
+                  return NULL;
                 }
             }
         }
@@ -1088,28 +1086,28 @@ ReadImage (FILE        *fp,
         {
           g_message ("File '%s' is truncated or corrupted",
                      gimp_filename_to_utf8 (filename));
-          return -1;
+          return NULL;
         }
     }
 
-  image_ID = gimp_image_new (info->width, info->height, itype);
-  gimp_image_set_filename (image_ID, filename);
+  image = gimp_image_new (info->width, info->height, itype);
+  gimp_image_set_filename (image, filename);
 
   if (gimp_cmap)
-    gimp_image_set_colormap (image_ID, gimp_cmap, info->colorMapLength);
+    gimp_image_set_colormap (image, gimp_cmap, info->colorMapLength);
 
-  layer_ID = gimp_layer_new (image_ID,
-                             _("Background"),
-                             info->width, info->height,
-                             dtype,
-                             100,
-                             gimp_image_get_default_new_layer_mode (image_ID));
+  layer = gimp_layer_new (image,
+                          _("Background"),
+                          info->width, info->height,
+                          dtype,
+                          100,
+                          gimp_image_get_default_new_layer_mode (image));
 
-  gimp_image_insert_layer (image_ID, layer_ID, -1, 0);
+  gimp_image_insert_layer (image, layer, NULL, 0);
 
-  buffer = gimp_drawable_get_buffer (layer_ID);
+  buffer = gimp_drawable_get_buffer (GIMP_DRAWABLE (layer));
 
-  bpp = gimp_drawable_bpp (layer_ID);
+  bpp = gimp_drawable_bpp (GIMP_DRAWABLE (layer));
 
   /* Allocate the data. */
   max_tileheight = gimp_tile_height ();
@@ -1171,15 +1169,15 @@ ReadImage (FILE        *fp,
 
   gimp_progress_update (1.0);
 
-  return image_ID;
+  return image;
 }
 
 
 static gboolean
-save_image (const gchar  *filename,
-            gint32        image_ID,
-            gint32        drawable_ID,
-            GError      **error)
+save_image (const gchar   *filename,
+            GimpImage     *image,
+            GimpDrawable  *drawable,
+            GError       **error)
 {
   GeglBuffer    *buffer;
   const Babl    *format = NULL;
@@ -1197,9 +1195,9 @@ save_image (const gchar  *filename,
   gint           num_colors;
   guchar        *gimp_cmap = NULL;
 
-  buffer = gimp_drawable_get_buffer (drawable_ID);
+  buffer = gimp_drawable_get_buffer (drawable);
 
-  dtype = gimp_drawable_type (drawable_ID);
+  dtype = gimp_drawable_type (drawable);
 
   width  = gegl_buffer_get_width  (buffer);
   height = gegl_buffer_get_height (buffer);
@@ -1219,7 +1217,7 @@ save_image (const gchar  *filename,
 
   if (dtype == GIMP_INDEXED_IMAGE)
     {
-      gimp_cmap = gimp_image_get_colormap (image_ID, &num_colors);
+      gimp_cmap = gimp_image_get_colormap (image, &num_colors);
 
       header[1] = 1; /* cmap type */
       header[2] = (tsvals.rle) ? 9 : 1;
@@ -1230,7 +1228,7 @@ save_image (const gchar  *filename,
     }
   else if (dtype == GIMP_INDEXEDA_IMAGE)
     {
-      gimp_cmap = gimp_image_get_colormap (image_ID, &num_colors);
+      gimp_cmap = gimp_image_get_colormap (image, &num_colors);
 
       header[1] = 1; /* cmap type */
       header[2] = (tsvals.rle) ? 9 : 1;
diff --git a/plug-ins/common/plugin-defs.pl b/plug-ins/common/plugin-defs.pl
index 5a032f3e1c..365ec827e3 100644
--- a/plug-ins/common/plugin-defs.pl
+++ b/plug-ins/common/plugin-defs.pl
@@ -45,7 +45,7 @@
     'file-raw-data' => { ui => 1, gegl => 1 },
     'file-sunras' => { ui => 1, gegl => 1, old_api => 1 },
     'file-svg' => { ui => 1, gegl => 1, libs => 'SVG_LIBS', cflags => 'SVG_CFLAGS' },
-    'file-tga' => { ui => 1, gegl => 1, old_api => 1 },
+    'file-tga' => { ui => 1, gegl => 1 },
     'file-wmf' => { ui => 1, gegl => 1, optional => 1, libs => 'WMF_LIBS', cflags => 'WMF_CFLAGS' },
     'file-xbm' => { ui => 1, gegl => 1 },
     'file-xmc' => { ui => 1, gegl => 1, optional => 1, libs => 'XMC_LIBS' },


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