kora-bot/Source/BWEM/EasyBMP_1.06/EasyBMP_DataStructures.h

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