Author: Uiomae <uio...@gmail.com>
Date:   Sat Feb  7 15:26:22 2009 +0000

FIXED: Target BMP (broken at least in AMD64)

---

 synfig-core/src/modules/mod_bmp/trgt_bmp.cpp |   30 +++++++++++++-------------
 1 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/synfig-core/src/modules/mod_bmp/trgt_bmp.cpp 
b/synfig-core/src/modules/mod_bmp/trgt_bmp.cpp
index 9957bcc..7229929 100644
--- a/synfig-core/src/modules/mod_bmp/trgt_bmp.cpp
+++ b/synfig-core/src/modules/mod_bmp/trgt_bmp.cpp
@@ -58,34 +58,34 @@ namespace synfig {
 struct BITMAPFILEHEADER
 {
        unsigned char   bfType[2];
-       unsigned long   bfSize;
+       unsigned int    bfSize;
        unsigned short  bfReserved1;
        unsigned short  bfReserved2;
-       unsigned long   bfOffsetBits;
+       unsigned int    bfOffsetBits;
 };
 
 struct BITMAPINFOHEADER
 {
-       unsigned long   biSize;
-       long                    biWidth;
-       long                    biHeight;
+       unsigned int    biSize;
+       int                             biWidth;
+       int                             biHeight;
        unsigned short  biPlanes;
        unsigned short  biBitCount;
-       unsigned long   biCompression;
-       unsigned long   biSizeImage;
-       long                    biXPelsPerMeter;
-       long                    biYPelsPerMeter;
-       unsigned long   biClrUsed;
-       unsigned long   biClrImportant;
+       unsigned int    biCompression;
+       unsigned int    biSizeImage;
+       int                             biXPelsPerMeter;
+       int                             biYPelsPerMeter;
+       unsigned int    biClrUsed;
+       unsigned int    biClrImportant;
 };
 
 }
 /* === M E T H O D S ======================================================= */
 
 #ifdef WORDS_BIGENDIAN
-inline long little_endian(const long &x)
+inline int little_endian(const long &x)
 {
-       long ret;
+       int ret;
        char *big_e=(char *)&ret;
        char *lit_e=(char *)&x;
        big_e[0]=lit_e[3];
@@ -116,7 +116,7 @@ bmp::bmp(const char *Filename, const synfig::TargetParam& 
/* params */)
        buffer=0;
        color_buffer=0;
        // We specify an ALPHA to get 4 channels, even if one is discarded
-       target_format_ = PF_BGR | PF_A | PF_8BITS;
+       target_format_ = PF_BGR | PF_8BITS;
        set_remove_alpha();
 
 }
@@ -203,7 +203,7 @@ bmp::start_frame(synfig::ProgressCallback *callback)
 
        fileheader.bfType[0]='B';
        fileheader.bfType[1]='M';
-       
fileheader.bfSize=little_endian(sizeof(synfig::BITMAPFILEHEADER)+sizeof(synfig::BITMAPINFOHEADER)+rowspan*h);
+       
fileheader.bfSize=little_endian(sizeof(synfig::BITMAPFILEHEADER)+sizeof(synfig::BITMAPINFOHEADER)+rowspan*h
 - 2);
        fileheader.bfReserved1=0;
        fileheader.bfReserved2=0;
        
fileheader.bfOffsetBits=little_endian(sizeof(synfig::BITMAPFILEHEADER)+sizeof(synfig::BITMAPINFOHEADER)-2);


------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software 
be a part of the solution? Download the Intel(R) Manageability Checker 
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
Synfig-devl mailing list
Synfig-devl@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synfig-devl

Reply via email to