mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 14:16:07 -06:00
67 lines
1.6 KiB
C
67 lines
1.6 KiB
C
#ifndef _plugin_pcx_pcxhdr_h_
|
|
#define _plugin_pcx_pcxhdr_h_
|
|
|
|
#ifdef COMPILER_MSC
|
|
#pragma pack(push, 1)
|
|
#endif
|
|
|
|
struct PCXRGB {
|
|
byte r, g, b;
|
|
}
|
|
#ifdef COMPILER_GCC
|
|
__attribute__((packed))
|
|
#endif
|
|
;
|
|
|
|
struct PCXHeader {
|
|
byte manufacturer; // 10 == ZSoft
|
|
byte version; // 0 = Paintbrush 2.5
|
|
// 2 = 2.8 with palette
|
|
// 3 = 2.8 without palette
|
|
// 4 = PC Paintbrush for Windows
|
|
// 5 = Version 3.0+ and Publishers Paintbrush */
|
|
byte encode; // 1 = PCX RLE
|
|
byte bitsPerPixel; // 1, 2, 4, or 8
|
|
short minX;
|
|
short minY;
|
|
short maxX;
|
|
short maxY;
|
|
short horzDpi;
|
|
short vertDpi;
|
|
PCXRGB palette[16];
|
|
byte junk;
|
|
byte planes;
|
|
short bytesPerLine;
|
|
short paltype;
|
|
short hScreenSize;
|
|
short vScreenSize;
|
|
byte filler[54];
|
|
|
|
void SwapEndian()
|
|
{
|
|
#ifdef CPU_BIG_ENDIAN
|
|
biSize = UPP::SwapEndian(biSize);
|
|
biWidth = UPP::SwapEndian(biWidth);
|
|
biHeight = UPP::SwapEndian(biHeight);
|
|
biPlanes = UPP::SwapEndian(biPlanes);
|
|
biBitCount = UPP::SwapEndian(biBitCount);
|
|
biCompression = UPP::SwapEndian(biCompression);
|
|
biSizeImage = UPP::SwapEndian(biSizeImage);
|
|
biXPelsPerMeter = UPP::SwapEndian(biXPelsPerMeter);
|
|
biYPelsPerMeter = UPP::SwapEndian(biYPelsPerMeter);
|
|
biClrUsed = UPP::SwapEndian(biClrUsed);
|
|
biClrImportant = UPP::SwapEndian(biClrImportant);
|
|
#endif
|
|
}
|
|
|
|
}
|
|
#ifdef COMPILER_GCC
|
|
__attribute__((packed))
|
|
#endif
|
|
;
|
|
|
|
#ifdef COMPILER_MSC
|
|
#pragma pack(pop)
|
|
#endif
|
|
|
|
#endif
|