105 lines
2.6 KiB
C++
105 lines
2.6 KiB
C++
/*************************************************
|
|
* *
|
|
* EasyBMP Cross-Platform Windows Bitmap Library *
|
|
* *
|
|
* Author: Paul Macklin *
|
|
* email: macklin01@users.sourceforge.net *
|
|
* support: http://easybmp.sourceforge.net *
|
|
* *
|
|
* file: EasyBMP_DataStructures.h *
|
|
* date added: 05-02-2005 *
|
|
* date modified: 12-01-2006 *
|
|
* version: 1.06 *
|
|
* *
|
|
* License: BSD (revised/modified) *
|
|
* Copyright: 2005-6 by the EasyBMP Project *
|
|
* *
|
|
* description: Defines basic data structures for *
|
|
* the BMP class *
|
|
* *
|
|
*************************************************/
|
|
|
|
#ifndef _EasyBMP_Custom_Math_Functions_
|
|
#define _EasyBMP_Custom_Math_Functions_
|
|
inline double Square( double number )
|
|
{ return number*number; }
|
|
|
|
inline int IntSquare( int number )
|
|
{ return number*number; }
|
|
#endif
|
|
|
|
int IntPow( int base, int exponent );
|
|
|
|
#ifndef _EasyBMP_Defined_WINGDI
|
|
#define _EasyBMP_Defined_WINGDI
|
|
typedef unsigned char ebmpBYTE;
|
|
typedef unsigned short ebmpWORD;
|
|
typedef unsigned int ebmpDWORD;
|
|
#endif
|
|
|
|
#ifndef _EasyBMP_DataStructures_h_
|
|
#define _EasyBMP_DataStructures_h_
|
|
|
|
inline bool IsBigEndian()
|
|
{
|
|
short word = 0x0001;
|
|
if((*(char *)& word) != 0x01 )
|
|
{ return true; }
|
|
return false;
|
|
}
|
|
|
|
inline ebmpWORD FlipWORD( ebmpWORD in )
|
|
{ return ( (in >> 8) | (in << 8) ); }
|
|
|
|
inline ebmpDWORD FlipDWORD( ebmpDWORD in )
|
|
{
|
|
return ( ((in&0xFF000000)>>24) | ((in&0x000000FF)<<24) |
|
|
((in&0x00FF0000)>>8 ) | ((in&0x0000FF00)<<8 ) );
|
|
}
|
|
|
|
// it's easier to use a struct than a class
|
|
// because we can read/write all four of the bytes
|
|
// at once (as we can count on them being continuous
|
|
// in memory
|
|
|
|
typedef struct RGBApixel {
|
|
ebmpBYTE Blue;
|
|
ebmpBYTE Green;
|
|
ebmpBYTE Red;
|
|
ebmpBYTE Alpha;
|
|
} RGBApixel;
|
|
|
|
class BMFH{
|
|
public:
|
|
ebmpWORD bfType;
|
|
ebmpDWORD bfSize;
|
|
ebmpWORD bfReserved1;
|
|
ebmpWORD bfReserved2;
|
|
ebmpDWORD bfOffBits;
|
|
|
|
BMFH();
|
|
void display( void );
|
|
void SwitchEndianess( void );
|
|
};
|
|
|
|
class BMIH{
|
|
public:
|
|
ebmpDWORD biSize;
|
|
ebmpDWORD biWidth;
|
|
ebmpDWORD biHeight;
|
|
ebmpWORD biPlanes;
|
|
ebmpWORD biBitCount;
|
|
ebmpDWORD biCompression;
|
|
ebmpDWORD biSizeImage;
|
|
ebmpDWORD biXPelsPerMeter;
|
|
ebmpDWORD biYPelsPerMeter;
|
|
ebmpDWORD biClrUsed;
|
|
ebmpDWORD biClrImportant;
|
|
|
|
BMIH();
|
|
void display( void );
|
|
void SwitchEndianess( void );
|
|
};
|
|
|
|
#endif
|