style cleanup: follow style guide for formatting of if/for/while loops, and else...
[blender.git] / source / blender / imbuf / intern / bmp.c
index bdcf60090c3bbb7f3436fae679c5464a695a38c1..768aa51874294bae4359b84bcdbabfacefcdc7e9 100644 (file)
@@ -1,6 +1,4 @@
-/**
- * $Id$
- *
+/*
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  * ***** END GPL LICENSE BLOCK *****
  */
 
+/** \file blender/imbuf/intern/bmp.c
+ *  \ingroup imbuf
+ */
+
+
 #include "BLI_blenlib.h"
 
 #include "imbuf.h"
@@ -37,9 +40,9 @@
 #include "IMB_filetype.h"
 
 /* some code copied from article on microsoft.com, copied
-  here for enhanced BMP support in the future
-  http://www.microsoft.com/msj/defaultframe.asp?page=/msj/0197/mfcp1/mfcp1.htm&nav=/msj/0197/newnav.htm
-*/
* here for enhanced BMP support in the future
* http://www.microsoft.com/msj/defaultframe.asp?page=/msj/0197/mfcp1/mfcp1.htm&nav=/msj/0197/newnav.htm
+ */
 
 typedef struct BMPINFOHEADER{
        unsigned int    biSize;
@@ -75,7 +78,8 @@ static int checkbmp(unsigned char *mem)
                if ((mem[0] == 'B') && (mem[1] == 'M')) {
                        /* skip fileheader */
                        mem += BMP_FILEHEADER_SIZE;
-               } else {
+               }
+               else {
                }
 
                /* for systems where an int needs to be 4 bytes aligned */
@@ -96,20 +100,22 @@ static int checkbmp(unsigned char *mem)
        return(ret_val);
 }
 
-int imb_is_a_bmp(unsigned char *buf) {
-       
+int imb_is_a_bmp(unsigned char *buf)
+{
        return checkbmp(buf);
 }
 
-struct ImBuf *imb_bmp_decode(unsigned char *mem, int size, int flags)
+struct ImBuf *imb_bmp_decode(unsigned char *mem, size_t size, int flags)
 {
-       struct ImBuf *ibuf = 0;
+       struct ImBuf *ibuf = NULL;
        BMPINFOHEADER bmi;
        int x, y, depth, skip, i;
        unsigned char *bmp, *rect;
        unsigned short col;
+       
+       (void)size; /* unused */
 
-       if (checkbmp(mem) == 0) return(0);
+       if (checkbmp(mem) == 0) return(NULL);
 
        if ((mem[0] == 'B') && (mem[1] == 'M')) {
                /* skip fileheader */
@@ -124,14 +130,18 @@ struct ImBuf *imb_bmp_decode(unsigned char *mem, int size, int flags)
        y = LITTLE_LONG(bmi.biHeight);
        depth = LITTLE_SHORT(bmi.biBitCount);
 
-       /* printf("skip: %d, x: %d y: %d, depth: %d (%x)\n", skip, x, y, 
-               depth, bmi.biBitCount); */
-       /* printf("skip: %d, x: %d y: %d, depth: %d (%x)\n", skip, x, y, 
-               depth, bmi.biBitCount); */
+#if 0
+       printf("skip: %d, x: %d y: %d, depth: %d (%x)\n", skip, x, y,
+              depth, bmi.biBitCount);
+       printf("skip: %d, x: %d y: %d, depth: %d (%x)\n", skip, x, y,
+              depth, bmi.biBitCount);
+#endif
+
        if (flags & IB_test) {
-               ibuf = IMB_allocImBuf(x, y, depth, 0, 0);
-       } else {
-               ibuf = IMB_allocImBuf(x, y, depth, IB_rect, 0);
+               ibuf = IMB_allocImBuf(x, y, depth, 0);
+       }
+       else {
+               ibuf = IMB_allocImBuf(x, y, depth, IB_rect);
                bmp = mem + skip;
                rect = (unsigned char *) ibuf->rect;
 
@@ -146,7 +156,8 @@ struct ImBuf *imb_bmp_decode(unsigned char *mem, int size, int flags)
                                rect += 4; bmp += 2;
                        }
 
-               } else if (depth == 24) {
+               }
+               else if (depth == 24) {
                        for (i = y; i > 0; i--) {
                                int j;
                                for (j = x ; j > 0; j--) {
@@ -160,7 +171,8 @@ struct ImBuf *imb_bmp_decode(unsigned char *mem, int size, int flags)
                                /* for 24-bit images, rows are padded to multiples of 4 */
                                bmp += x % 4;   
                        }
-               } else if (depth == 32) {
+               }
+               else if (depth == 32) {
                        for (i = x * y; i > 0; i--) {
                                rect[0] = bmp[2];
                                rect[1] = bmp[1];
@@ -180,31 +192,35 @@ struct ImBuf *imb_bmp_decode(unsigned char *mem, int size, int flags)
 }
 
 /* Couple of helper functions for writing our data */
-static int putIntLSB(unsigned int ui,FILE *ofile) { 
+static int putIntLSB(unsigned int ui,FILE *ofile)
+{
        putc((ui>>0)&0xFF,ofile); 
        putc((ui>>8)&0xFF,ofile); 
        putc((ui>>16)&0xFF,ofile); 
        return putc((ui>>24)&0xFF,ofile); 
 }
 
-static int putShortLSB(unsigned short us,FILE *ofile) { 
+static int putShortLSB(unsigned short us,FILE *ofile)
+{
        putc((us>>0)&0xFF,ofile); 
        return putc((us>>8)&0xFF,ofile); 
 } 
 
 /* Found write info at http://users.ece.gatech.edu/~slabaugh/personal/c/bitmapUnix.c */
-int imb_savebmp(struct ImBuf *ibuf, char *name, int flags) {
-
+int imb_savebmp(struct ImBuf *ibuf, const char *name, int flags)
+{
        BMPINFOHEADER infoheader;
        int bytesize, extrabytes, x, y, t, ptr;
        uchar *data;
        FILE *ofile;
+       
+       (void)flags; /* unused */
 
        extrabytes = (4 - ibuf->x*3 % 4) % 4;
        bytesize = (ibuf->x * 3 + extrabytes) * ibuf->y;
 
        data = (uchar *) ibuf->rect;
-       ofile = fopen(name,"wb");
+       ofile = BLI_fopen(name,"wb");
                if (!ofile) return 0;
 
        putShortLSB(19778,ofile); /* "BM" */