DOSBox-X
|
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