Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1788 → Rev 1789

/programs/demos/cubetext/trunk/bmp.h
0,0 → 1,142
//
// bmp.h - header file / freeware
//
// David Henry - tfc_duke@hotmail.com
//
 
#ifndef __BITMAP_H_
#define __BITMAP_H_
 
 
 
// magic number "BM"
#define BITMAP_ID ('B' + ('M'<<8))
 
 
 
// header byte type for RLE
#define RLE_COMMAND 0
#define RLE_ENDOFLINE 0
#define RLE_ENDOFBITMAP 1
#define RLE_DELTA 2
 
#define BI_OS2 -1
 
 
// compression type
#define BI_RGB 0
#define BI_RLE8 1
#define BI_RLE4 2
#define BI_BITFIELDS 3
 
 
 
#pragma warning( disable : 4103 )
 
 
 
// --------------------------------------------
// tagBITMAPFILEHEADER - bitmap file header.
// --------------------------------------------
 
#pragma pack(2)
 
typedef struct tagBITMAPFILEHEADER // bmfh
{
unsigned short bfType; // magic number "BM"
unsigned int bfSize; // file size
unsigned short bfReserved1; // reserved
unsigned short bfReserved2; // reserved
unsigned int bfOffBits; // offset to bitmap data
 
} BITMAPFILEHEADER, *PBITMAPFILEHEADER;
 
#pragma pack(4)
 
 
 
// --------------------------------------------
// tagBITMAPCOREHEADER - bitmap core header.
// --------------------------------------------
 
typedef struct tagBITMAPCOREHEADER // bmch
{
unsigned int bcSize; // size of the structure
unsigned short bcWidth; // image width
unsigned short bcHeight; // image height
unsigned short bcPlanes; // must be equal to 1
unsigned short bcBitCount; // number of bits per pixel
 
} BITMAPCOREHEADER, *PBITMAPCOREHEADER;
 
 
 
// --------------------------------------------
// tagRGBTRIPLE - 24 bits pixel
// --------------------------------------------
 
typedef struct tagRGBTRIPLE // rgbt
{
unsigned char rgbtBlue; // blue
unsigned char rgbtGreen; // green
unsigned char rgbtRed; // red
 
} RGBTRIPLE, *PRGBTRIPLE;
 
 
 
// --------------------------------------------
// tagRGBQUAD - 32 bits pixel
// --------------------------------------------
 
typedef struct tagRGBQUAD // rgbt
{
unsigned char rgbBlue; // blue
unsigned char rgbGreen; // green
unsigned char rgbRed; // red
unsigned char rgbReserved; // reserved
 
} RGBQUAD, *PRGBQUAD;
 
 
 
// --------------------------------------------
// tagBITMAPCOREINFO - bitmap core info.
// --------------------------------------------
 
typedef struct tagBITMAPCOREINFO // bmci
{
BITMAPCOREHEADER bmciHeader; // size of the structure
RGBTRIPLE bcmiColors[1]; // color palette
 
} BITMAPCOREINFO, *PBITMAPCOREINFO;
 
 
// --------------------------------------------
// BITMAPFILEHEADER - bitmap info header.
// --------------------------------------------
 
typedef struct tagBITMAPINFOHEADER
{
unsigned int biSize; // size of the structure
int biWidth; // image width
int biHeight; // image height
unsigned short biPlanes; // must be equal to 1
unsigned short biBitCount; // number of bits per pixel
unsigned int biCompression; // compression type
unsigned int biSizeImage; // size of data bitmap
int biXPelsPerMeter; // number of pixels per meter on the X axis
int biYPelsPerMeter; // number of pixels per meter on the Y axis
unsigned int biClrUsed; // number of colors used
unsigned int biClrImportant; // number of important colors
 
} BITMAPINFOHEADER, *PBITMAPINFOHEADER;
 
 
// prototype
int LoadFileBMP( const char *filename, unsigned char **pixels, int *width, int *height, bool flipvert );
 
 
#endif // __BITMAP_H_