/* tga.h - header file for Targa files */ /* Header definition. */ struct ImageHeader { unsigned char IdLength; /* length of Identifier String */ unsigned char CoMapType; /* 0 = no map */ unsigned char ImgType; /* image type (see below for values) */ unsigned char Index_lo, Index_hi; /* index of first color map entry */ unsigned char Length_lo, Length_hi; /* number of entries in color map */ unsigned char CoSize; /* size of color map entry (15,16,24,32) */ unsigned char X_org_lo, X_org_hi; /* x origin of image */ unsigned char Y_org_lo, Y_org_hi; /* y origin of image */ unsigned char Width_lo, Width_hi; /* width of image */ unsigned char Height_lo, Height_hi; /* height of image */ unsigned char PixelSize; /* pixel size (8,16,24,32) */ unsigned char AttBits; /* 4 bits, number of attribute bits per pixel */ unsigned char Rsrvd; /* 1 bit, reserved */ unsigned char OrgBit; /* 1 bit, origin: 0=lower left, 1=upper left */ unsigned char IntrLve; /* 2 bits, interleaving flag */ const char * Id; /* Identifier String. Length is IDLength, above */ }; #define IMAGEIDFIELDMAXSIZE 256 typedef char ImageIDField[IMAGEIDFIELDMAXSIZE]; #define TGA_MAXVAL 255 /* Definitions for image types. */ #define TGA_Null 0 #define TGA_Map 1 #define TGA_RGB 2 #define TGA_Mono 3 #define TGA_RLEMap 9 #define TGA_RLERGB 10 #define TGA_RLEMono 11 #define TGA_CompMap 32 #define TGA_CompMap4 33 /* Definitions for interleave flag. */ #define TGA_IL_None 0 #define TGA_IL_Two 1 #define TGA_IL_Four 2 enum TGAbaseImageType {TGA_MAP_TYPE, TGA_MONO_TYPE, TGA_RGB_TYPE}; enum TGAmapType { /* A type of Targa color map */ TGA_MAPTYPE_SHORT, /* Each entry in the color map is 2 bytes: 5 bits each of red, green, and blue, and one optional alpha bit. */ TGA_MAPTYPE_LONG /* Each entry in the color map is 3 bytes: red, green, and blue, plus one optional alpha byte */ };