-/*\r
- * File: ximabmp.h\r
- * Purpose: BMP Image Class Loader and Writer\r
- */\r
-/* ==========================================================\r
- * CxImageBMP (c) 07/Aug/2001 Davide Pizzolato - www.xdp.it\r
- * For conditions of distribution and use, see copyright notice in ximage.h\r
- *\r
- * Special thanks to Troels Knakkergaard for new features, enhancements and bugfixes\r
- *\r
- * original CImageBMP and CImageIterator implementation are:\r
- * Copyright: (c) 1995, Alejandro Aguilar Sierra <asierra(at)servidor(dot)unam(dot)mx>\r
- *\r
- * ==========================================================\r
- */\r
-\r
-#if !defined(__ximaBMP_h)\r
-#define __ximaBMP_h\r
-\r
-#include "ximage.h"\r
-\r
-const int RLE_COMMAND = 0;\r
-const int RLE_ENDOFLINE = 0;\r
-const int RLE_ENDOFBITMAP = 1;\r
-const int RLE_DELTA = 2;\r
-\r
-#if !defined(BI_RLE8)\r
- #define BI_RLE8 1L\r
-#endif\r
-#if !defined(BI_RLE4)\r
- #define BI_RLE4 2L\r
-#endif\r
-\r
-#if CXIMAGE_SUPPORT_BMP\r
-\r
-class CxImageBMP: public CxImage\r
-{\r
-public:\r
- CxImageBMP(): CxImage(CXIMAGE_FORMAT_BMP) {};\r
-\r
- bool Decode(CxFile * hFile);\r
- bool Decode(FILE *hFile) { CxIOFile file(hFile); return Decode(&file); }\r
-\r
-#if CXIMAGE_SUPPORT_ENCODE\r
- bool Encode(CxFile * hFile);\r
- bool Encode(FILE *hFile) { CxIOFile file(hFile); return Encode(&file); }\r
-#endif // CXIMAGE_SUPPORT_ENCODE\r
-\r
-protected:\r
- bool DibReadBitmapInfo(CxFile* fh, BITMAPINFOHEADER *pdib);\r
-};\r
-\r
-#define BFT_ICON 0x4349 /* 'IC' */\r
-#define BFT_BITMAP 0x4d42 /* 'BM' */\r
-#define BFT_CURSOR 0x5450 /* 'PT' */\r
-\r
-#ifndef WIDTHBYTES\r
-#define WIDTHBYTES(i) ((unsigned)((i+31)&(~31))/8) /* ULONG aligned ! */\r
-#endif\r
-\r
-#endif\r
-\r
-#define DibWidthBytesN(lpbi, n) (UINT)WIDTHBYTES((UINT)(lpbi)->biWidth * (UINT)(n))\r
-#define DibWidthBytes(lpbi) DibWidthBytesN(lpbi, (lpbi)->biBitCount)\r
-\r
-#define DibSizeImage(lpbi) ((lpbi)->biSizeImage == 0 \\r
- ? ((DWORD)(UINT)DibWidthBytes(lpbi) * (DWORD)(UINT)(lpbi)->biHeight) \\r
- : (lpbi)->biSizeImage)\r
-\r
-#define DibNumColors(lpbi) ((lpbi)->biClrUsed == 0 && (lpbi)->biBitCount <= 8 \\r
- ? (int)(1 << (int)(lpbi)->biBitCount) \\r
- : (int)(lpbi)->biClrUsed)\r
-\r
-#define FixBitmapInfo(lpbi) if ((lpbi)->biSizeImage == 0) \\r
- (lpbi)->biSizeImage = DibSizeImage(lpbi); \\r
- if ((lpbi)->biClrUsed == 0) \\r
- (lpbi)->biClrUsed = DibNumColors(lpbi); \\r
-\r
-#endif\r
+/*
+ * File: ximabmp.h
+ * Purpose: BMP Image Class Loader and Writer
+ */
+/* ==========================================================
+ * CxImageBMP (c) 07/Aug/2001 Davide Pizzolato - www.xdp.it
+ * For conditions of distribution and use, see copyright notice in ximage.h
+ *
+ * Special thanks to Troels Knakkergaard for new features, enhancements and bugfixes
+ *
+ * original CImageBMP and CImageIterator implementation are:
+ * Copyright: (c) 1995, Alejandro Aguilar Sierra <asierra(at)servidor(dot)unam(dot)mx>
+ *
+ * ==========================================================
+ */
+
+#if !defined(__ximaBMP_h)
+#define __ximaBMP_h
+
+#include "ximage.h"
+
+const int RLE_COMMAND = 0;
+const int RLE_ENDOFLINE = 0;
+const int RLE_ENDOFBITMAP = 1;
+const int RLE_DELTA = 2;
+
+#if !defined(BI_RLE8)
+ #define BI_RLE8 1L
+#endif
+#if !defined(BI_RLE4)
+ #define BI_RLE4 2L
+#endif
+
+#if CXIMAGE_SUPPORT_BMP
+
+class CxImageBMP: public CxImage
+{
+public:
+ CxImageBMP(): CxImage(CXIMAGE_FORMAT_BMP) {};
+
+ bool Decode(CxFile * hFile);
+ bool Decode(FILE *hFile) { CxIOFile file(hFile); return Decode(&file); }
+
+#if CXIMAGE_SUPPORT_ENCODE
+ bool Encode(CxFile * hFile);
+ bool Encode(FILE *hFile) { CxIOFile file(hFile); return Encode(&file); }
+#endif // CXIMAGE_SUPPORT_ENCODE
+
+protected:
+ bool DibReadBitmapInfo(CxFile* fh, BITMAPINFOHEADER *pdib);
+};
+
+#define BFT_ICON 0x4349 /* 'IC' */
+#define BFT_BITMAP 0x4d42 /* 'BM' */
+#define BFT_CURSOR 0x5450 /* 'PT' */
+
+#ifndef WIDTHBYTES
+#define WIDTHBYTES(i) ((unsigned)((i+31)&(~31))/8) /* ULONG aligned ! */
+#endif
+
+#endif
+
+#define DibWidthBytesN(lpbi, n) (UINT)WIDTHBYTES((UINT)(lpbi)->biWidth * (UINT)(n))
+#define DibWidthBytes(lpbi) DibWidthBytesN(lpbi, (lpbi)->biBitCount)
+
+#define DibSizeImage(lpbi) ((lpbi)->biSizeImage == 0 \
+ ? ((DWORD)(UINT)DibWidthBytes(lpbi) * (DWORD)(UINT)(lpbi)->biHeight) \
+ : (lpbi)->biSizeImage)
+
+#define DibNumColors(lpbi) ((lpbi)->biClrUsed == 0 && (lpbi)->biBitCount <= 8 \
+ ? (int)(1 << (int)(lpbi)->biBitCount) \
+ : (int)(lpbi)->biClrUsed)
+
+#define FixBitmapInfo(lpbi) if ((lpbi)->biSizeImage == 0) \
+ (lpbi)->biSizeImage = DibSizeImage(lpbi); \
+ if ((lpbi)->biClrUsed == 0) \
+ (lpbi)->biClrUsed = DibNumColors(lpbi); \
+
+#endif