4 typedef enum tgaFileColorMap {
5 tgaFileColorMapNoColorMap=0,
6 tgaFileColorMapColorMap=1
9 typedef enum tgaFileImageType {
10 tgaFileImageTypeNoImage = 0,
11 tgaFileImageTypeColorMappedImage = 1,
12 tgaFileImageTypeTrueColorImage = 2,
13 tgaFileImageTypeBlackAndWhite = 3,
14 tgaFileImageTypeRLEColorMappedImage = 9,
15 tgaFileImageTypeRLETrueColorImage = 10,
16 tgaFileImageTypeRLEBlackAndWhite = 11
19 typedef struct tgaFileColorMapSpecification {
20 short FirstEntryIndex;
22 unsigned char ColorMapEntrySize;
23 } tgaFileColorMapSpecification;
25 typedef enum tgaFileImageOrigin {
26 tgaFileImageOriginBottomLeft = 0,
27 tgaFileImageOriginBottomRight = 1,
28 tgaFileImageOriginTopLeft = 2,
29 tgaFileImageOriginTopRight = 3
32 typedef union tgaFileDescriptor {
35 unsigned char AlphaChannelBits:4;
36 unsigned char ImageOrigin:2;
37 unsigned char Unused:2;
41 typedef struct tgaFileImageSpecification {
47 tgaFileDescriptor Descriptor;
48 } tgaFileImageSpecification;
50 typedef struct tgaFileHeader {
51 unsigned char IDLength; /* 1 Byte */
52 unsigned char ColorMapType; /* 1 Byte */
53 unsigned char ImageType; /* 1 Byte */
54 tgaFileColorMapSpecification ColorMapSpec; /* 5 Bytes */
55 tgaFileImageSpecification ImageSpec; /* 10 Bytes */
56 } tgaFileHeader; /* 18 Bytes */
58 typedef unsigned char tgaFileImageID;
59 typedef unsigned char tgaFileColorMapData;
60 typedef unsigned char tgaFileImageData;
61 typedef unsigned char tgaFileDeveloperData;
63 typedef struct tgaFile {
64 tgaFileHeader Header; /* Field 1-5 : fixed: 18 Bytes */
65 tgaFileImageID* ImageID; /* Field 6: variable */
66 tgaFileColorMapData* ColorMapData; /* Field 7: variable */
67 tgaFileImageData* Image; /* Field 8: variable */
68 tgaFileDeveloperData* DeveloperData; /* Field 9: variable */
70 /* Additional Information */
79 extern tgaFile* tgaFileInit(tgaFile* tga, FILE* fpt, int mode);
80 extern tgaFile* tgaFileImageInit(tgaFile* tga, FILE* fpt, int mode);
82 /* in tgaFileRead.c */
83 extern tgaFile* tgaFileHeaderRead(tgaFile* tga, FILE* fpt, int mode);
84 extern tgaFile* tgaFileImageDataRead(tgaFile* tga, FILE* fpt, int mode);
85 extern tgaFile* tgaFileRead(tgaFile* tga, FILE* fpt, int mode);
88 extern void tgaFileHeaderPrint(tgaFile* tga, FILE* out, int mode);
94 #endif /* TGA_FILE_H */