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