DOSBox-X
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines
include/bitmapinfoheader.h
00001 
00002 #ifndef __ISP_UTILS_V4_BITMAPINFOHEADER
00003 #define __ISP_UTILS_V4_BITMAPINFOHEADER
00004 
00005 #include <stdint.h>
00006 #include "informational.h"
00007 
00008 /* [doc] windows_BITMAPFILEHEADER
00009  *
00010  * Packed portable representation of the Microsoft Windows BITMAPFILEHEADER
00011  * structure.
00012  */
00013 typedef struct {                                                /* (sizeof) (offset hex) (offset dec) */
00014         uint16_t _Little_Endian_        bfType;                 /* (2) +0x00 +0 */
00015         uint32_t _Little_Endian_        bfSize;                 /* (4) +0x02 +2 */
00016         uint16_t _Little_Endian_        bfReserved1;            /* (2) +0x06 +6 */
00017         uint16_t _Little_Endian_        bfReserved2;            /* (2) +0x08 +8 */
00018         uint32_t _Little_Endian_        bfOffBits;              /* (4) +0x0A +10 */
00019 } GCC_ATTRIBUTE(packed) windows_BITMAPFILEHEADER;               /* (14) =0x0E =14 */
00020 
00021 static const windows_BITMAPFILEHEADER WINDOWS_BITMAPFILEHEADER_INIT = {
00022         0,
00023         0,
00024         0,
00025         0,
00026         0
00027 };
00028 
00029 /* [doc] windows_BITMAPINFOHEADER
00030  *
00031  * Packed portable representation of the Microsoft Windows BITMAPINFOHEADER
00032  * structure.
00033  */
00034 typedef struct {                                                /* (sizeof) (offset hex) (offset dec) */
00035         uint32_t _Little_Endian_        biSize;                 /* (4) +0x00 +0 */
00036         int32_t _Little_Endian_         biWidth;                /* (4) +0x04 +4 */
00037         int32_t _Little_Endian_         biHeight;               /* (4) +0x08 +8 */
00038         uint16_t _Little_Endian_        biPlanes;               /* (2) +0x0C +12 */
00039         uint16_t _Little_Endian_        biBitCount;             /* (2) +0x0E +14 */
00040         uint32_t _Little_Endian_        biCompression;          /* (4) +0x10 +16 */
00041         uint32_t _Little_Endian_        biSizeImage;            /* (4) +0x14 +20 */
00042         int32_t _Little_Endian_         biXPelsPerMeter;        /* (4) +0x18 +24 */
00043         int32_t _Little_Endian_         biYPelsPerMeter;        /* (4) +0x1C +28 */
00044         uint32_t _Little_Endian_        biClrUsed;              /* (4) +0x20 +32 */
00045         uint32_t _Little_Endian_        biClrImportant;         /* (4) +0x24 +36 */
00046 } GCC_ATTRIBUTE(packed) windows_BITMAPINFOHEADER;               /* (40) =0x28 =40 */
00047 
00048 static const windows_BITMAPINFOHEADER WINDOWS_BITMAPINFOHEADER_INIT = {
00049         0,
00050         0,
00051         0,
00052         0,
00053         0,
00054         0,
00055         0,
00056         0,
00057         0,
00058         0,
00059         0
00060 };
00061 
00062 /* [doc] windows_CIEXYZ
00063  *
00064  * Packed portable representation of the Microsoft Windows CIEXYZ
00065  * structure.
00066  */
00067 typedef struct {                                                /* (sizeof) (offset hex) (offset dec) */
00068         uint32_t _Little_Endian_        ciexyzX;                /* (4) +0x00 +0 */
00069         uint32_t _Little_Endian_        ciexyzY;                /* (4) +0x04 +4 */
00070         uint32_t _Little_Endian_        ciexyzZ;                /* (4) +0x08 +8 */
00071 } GCC_ATTRIBUTE(packed) windows_CIEXYZ;                 /* (12) =0x0C =12 */
00072 
00073 /* [doc] windows_CIEXYZTRIPLE
00074  *
00075  * Packed portable representation of the Microsoft Windows CIEXYZTRIPLE
00076  * structure.
00077  */
00078 typedef struct {                                                /* (sizeof) (offset hex) (offset dec) */
00079         windows_CIEXYZ                  ciexyzRed;              /* (12) +0x00 +0 */
00080         windows_CIEXYZ                  ciexyzGreen;            /* (12) +0x0C +12 */
00081         windows_CIEXYZ                  ciexyzBlue;             /* (12) +0x18 +24 */
00082 } GCC_ATTRIBUTE(packed) windows_CIEXYZTRIPLE;                   /* (36) =0x24 =36 */
00083 
00084 /* [doc] windows_BITMAPV4HEADER
00085  *
00086  * Packed portable representation of the Microsoft Windows BITMAPV4HEADER
00087  * structure.
00088  */
00089 typedef struct {                                                /* (sizeof) (offset hex) (offset dec) */
00090         uint32_t _Little_Endian_        bV4Size;                /* (4) +0x00 +0 */
00091         int32_t _Little_Endian_         bV4Width;               /* (4) +0x04 +4 */
00092         int32_t _Little_Endian_         bV4Height;              /* (4) +0x08 +8 */
00093         uint16_t _Little_Endian_        bV4Planes;              /* (2) +0x0C +12 */
00094         uint16_t _Little_Endian_        bV4BitCount;            /* (2) +0x0E +14 */
00095         uint32_t _Little_Endian_        bV4V4Compression;       /* (4) +0x10 +16 */
00096         uint32_t _Little_Endian_        bV4SizeImage;           /* (4) +0x14 +20 */
00097         int32_t _Little_Endian_         bV4XPelsPerMeter;       /* (4) +0x18 +24 */
00098         int32_t _Little_Endian_         bV4YPelsPerMeter;       /* (4) +0x1C +28 */
00099         uint32_t _Little_Endian_        bV4ClrUsed;             /* (4) +0x20 +32 */
00100         uint32_t _Little_Endian_        bV4ClrImportant;        /* (4) +0x24 +36 */
00101         uint32_t _Little_Endian_        bV4RedMask;             /* (4) +0x28 +40 */
00102         uint32_t _Little_Endian_        bV4GreenMask;           /* (4) +0x2C +44 */
00103         uint32_t _Little_Endian_        bV4BlueMask;            /* (4) +0x30 +48 */
00104         uint32_t _Little_Endian_        bV4AlphaMask;           /* (4) +0x34 +52 */
00105         uint32_t _Little_Endian_        bV4CSType;              /* (4) +0x38 +56 */
00106         windows_CIEXYZTRIPLE            bV4Endpoints;           /* (36) +0x3C +60 */
00107         uint32_t _Little_Endian_        bV4GammaRed;            /* (4) +0x60 +96 */
00108         uint32_t _Little_Endian_        bV4GammaGreen;          /* (4) +0x64 +100 */
00109         uint32_t _Little_Endian_        bV4GammaBlue;           /* (4) +0x68 +104 */
00110 } GCC_ATTRIBUTE(packed) windows_BITMAPV4HEADER;         /* (84) =0x6C =108 */
00111 
00112 /* [doc] windows_BITMAPV5HEADER
00113  *
00114  * Packed portable representation of the Microsoft Windows BITMAPV5HEADER
00115  * structure.
00116  */
00117 typedef struct {                                                /* (sizeof) (offset hex) (offset dec) */
00118         uint32_t _Little_Endian_        bV5Size;                /* (4) +0x00 +0 */
00119         int32_t _Little_Endian_         bV5Width;               /* (4) +0x04 +4 */
00120         int32_t _Little_Endian_         bV5Height;              /* (4) +0x08 +8 */
00121         uint16_t _Little_Endian_        bV5Planes;              /* (2) +0x0C +12 */
00122         uint16_t _Little_Endian_        bV5BitCount;            /* (2) +0x0E +14 */
00123         uint32_t _Little_Endian_        bV5Compression;         /* (4) +0x10 +16 */
00124         uint32_t _Little_Endian_        bV5SizeImage;           /* (4) +0x14 +20 */
00125         int32_t _Little_Endian_         bV5XPelsPerMeter;       /* (4) +0x18 +24 */
00126         int32_t _Little_Endian_         bV5YPelsPerMeter;       /* (4) +0x1C +28 */
00127         uint32_t _Little_Endian_        bV5ClrUsed;             /* (4) +0x20 +32 */
00128         uint32_t _Little_Endian_        bV5ClrImportant;        /* (4) +0x24 +36 */
00129         uint32_t _Little_Endian_        bV5RedMask;             /* (4) +0x28 +40 */
00130         uint32_t _Little_Endian_        bV5GreenMask;           /* (4) +0x2C +44 */
00131         uint32_t _Little_Endian_        bV5BlueMask;            /* (4) +0x30 +48 */
00132         uint32_t _Little_Endian_        bV5AlphaMask;           /* (4) +0x34 +52 */
00133         uint32_t _Little_Endian_        bV5CSType;              /* (4) +0x38 +56 */
00134         windows_CIEXYZTRIPLE            bV5Endpoints;           /* (36) +0x3C +60 */
00135         uint32_t _Little_Endian_        bV5GammaRed;            /* (4) +0x60 +96 */
00136         uint32_t _Little_Endian_        bV5GammaGreen;          /* (4) +0x64 +100 */
00137         uint32_t _Little_Endian_        bV5GammaBlue;           /* (4) +0x68 +104 */
00138         uint32_t _Little_Endian_        bV5Intent;              /* (4) +0x6C +108 */
00139         uint32_t _Little_Endian_        bV5ProfileData;         /* (4) +0x70 +112 */
00140         uint32_t _Little_Endian_        bV5ProfileSize;         /* (4) +0x74 +116 */
00141         uint32_t _Little_Endian_        bV5Reserved;            /* (4) +0x78 +120 */
00142 } GCC_ATTRIBUTE(packed) windows_BITMAPV5HEADER;         /* (100) =0x7C =124 */
00143 
00144 #endif
00145 
00146