changeset 566:d400e32b62d9

Add a slightly different raw output format.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 30 Dec 2012 13:18:08 +0200
parents 2dbe70d40481
children b2b461829c61
files gfxconv.c libgfx.c libgfx.h
diffstat 3 files changed, 37 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/gfxconv.c	Thu Dec 20 01:44:01 2012 +0200
+++ b/gfxconv.c	Sun Dec 30 13:18:08 2012 +0200
@@ -72,7 +72,10 @@
         "IFF ILBM file", "lbm", TRUE, FALSE,
         FFMT_IMAGE  , IMGFMT_ILBM,
     },
-
+    {
+        "Bitplaned RAW (intl/non-intl) image file", "raw", FALSE, TRUE,
+        FFMT_IMAGE  , IMGFMT_RAW,
+    },
     {
         "IFFMaster RAW image file", "araw", FALSE, TRUE,
         FFMT_IMAGE  , IMGFMT_ARAW,
@@ -1019,6 +1022,7 @@
             if (info) dmMsg(2, "%s output.\n", spec->paletted ? "Indexed 8bpp" : "24bit RGB");
             return dmWritePCXImage(filename, image, spec);
 
+        case IMGFMT_RAW:
         case IMGFMT_ARAW:
             {
                 FILE *fp;
@@ -1057,7 +1061,9 @@
                             palID[i] = '_';
                     }
 
-                    fprintf(fp,
+                    if (iformat == IMGFMT_ARAW)
+                    {
+                        fprintf(fp,
                         "%s_width: dw.w %d\n"
                         "%s_height: dw.w %d\n"
                         "%s_nplanes: dw.w %d\n"
@@ -1069,18 +1075,29 @@
                         palID, image->ncolors,
                         palID);
 
-                    dmWriteIFFMasterRAWPalette(fp, image, 1 << optSpec.nplanes, NULL, NULL);
+                        dmWriteIFFMasterRAWPalette(fp, image, 1 << optSpec.nplanes, NULL, NULL);
 
-                    fprintf(fp,
+                        fprintf(fp,
                         "%s: incbin \"%s\"\n",
                         palID, filename);
+                    }
+                    else
+                    {
+                        fprintf(fp,
+                        "%s_width: dw.w %d\n"
+                        "%s_height: dw.w %d\n"
+                        "%s_nplanes: dw.w %d\n",
+                        palID, image->width,
+                        palID, image->height,
+                        palID, spec->nplanes);
+                    }
 
                     fclose(fp);
                     dmFree(palID);
                 }
 
                 if (info) dmMsg(2, "%d bitplanes, %s interleave.\n", spec->nplanes, spec->interleave ? "with" : "without");
-                return dmWriteIFFMasterRAWImage(filename, image, spec);
+                return dmWriteRAWImage(filename, image, spec);
             }
 
         default:
--- a/libgfx.c	Thu Dec 20 01:44:01 2012 +0200
+++ b/libgfx.c	Sun Dec 30 13:18:08 2012 +0200
@@ -248,7 +248,7 @@
 }
 
 
-int dmWriteIFFMasterRAWImageFILE(FILE *fp, DMImage *img, DMImageSpec *spec)
+int dmWriteRAWImageFILE(FILE *fp, DMImage *img, DMImageSpec *spec)
 {
     int xc, yc, plane, res;
     DMBitStream bs;
@@ -292,18 +292,19 @@
     return dmFlushBitStream(&bs);
 }
 
-int dmWriteIFFMasterRAWImage(const char *filename, DMImage *img, DMImageSpec *spec)
+
+int dmWriteRAWImage(const char *filename, DMImage *img, DMImageSpec *spec)
 {
     FILE *fp;
     int res;
 
     if ((fp = fopen(filename, "wb")) == NULL)
     {
-        dmError("IFFMasterRAW: Could not open file '%s' for writing.\n", filename);
+        dmError("RAW: Could not open file '%s' for writing.\n", filename);
         return DMERR_FOPEN;
     }
 
-    res = dmWriteIFFMasterRAWImageFILE(fp, img, spec);
+    res = dmWriteRAWImageFILE(fp, img, spec);
 
     fclose(fp);
     return res;
@@ -1767,10 +1768,16 @@
         NULL, NULL,
     },
     {
+        "RAW", "Plain bitplaned (interleaved or non-interleaved) RAW",
+        NULL,
+        NULL, NULL,
+        dmWriteRAWImage, dmWriteRAWImageFILE,
+    },
+    {
         "ARAW", "IFFMaster Amiga RAW",
         NULL,
         NULL, NULL,
-        dmWriteIFFMasterRAWImage, dmWriteIFFMasterRAWImageFILE,
+        dmWriteRAWImage, dmWriteRAWImageFILE,
     }
 };
 
--- a/libgfx.h	Thu Dec 20 01:44:01 2012 +0200
+++ b/libgfx.h	Sun Dec 30 13:18:08 2012 +0200
@@ -22,6 +22,7 @@
     IMGFMT_PPM,
     IMGFMT_PCX,
     IMGFMT_ILBM,
+    IMGFMT_RAW,
     IMGFMT_ARAW,
 
     IMGFMT_LAST
@@ -96,8 +97,8 @@
 int dmWriteImageData(DMImage *img, void *cbdata, BOOL (*writeRowCB)(void *, Uint8 *, size_t), const DMImageSpec *spec);
 
 int dmWriteIFFMasterRAWPalette(FILE *fp, DMImage *img, int ncolors, const char *indent, const char *type);
-int dmWriteIFFMasterRAWImageFILE(FILE *fp, DMImage *img, DMImageSpec *spec);
-int dmWriteIFFMasterRAWImage(const char *filename, DMImage *img, DMImageSpec *spec);
+int dmWriteRAWImageFILE(FILE *fp, DMImage *img, DMImageSpec *spec);
+int dmWriteRAWImage(const char *filename, DMImage *img, DMImageSpec *spec);
 
 int dmWritePPMImageFILE(FILE *fp, DMImage *img, DMImageSpec *spec);
 int dmWritePPMImage(const char *filename, DMImage *img, DMImageSpec *spec);