3 <H2>Information from source codes</H2>
15 typedef enum tgaFileColorMap {
16 tgaFileColorMapNoColorMap=0,
17 tgaFileColorMapColorMap=1
20 typedef enum tgaFileImageType {
21 tgaFileImageTypeNoImage = 0,
22 tgaFileImageTypeColorMappedImage = 1,
23 tgaFileImageTypeTrueColorImage = 2,
24 tgaFileImageTypeBlackAndWhite = 3,
25 tgaFileImageTypeRLEColorMappedImage = 9,
26 tgaFileImageTypeRLETrueColorImage = 10,
27 tgaFileImageTypeRLEBlackAndWhite = 11
30 typedef struct tgaFileColorMapSpecification {
31 short FirstEntryIndex;
33 unsigned char ColorMapEntrySize;
34 } tgaFileColorMapSpecification;
36 typedef enum tgaFileImageOrigin {
37 tgaFileImageOriginBottomLeft = 0,
38 tgaFileImageOriginBottomRight = 1,
39 tgaFileImageOriginTopLeft = 2,
40 tgaFileImageOriginTopRight = 3
43 typedef union tgaFileDescriptor {
46 unsigned char AlphaChannelBits:4;
47 unsigned char ImageOrigin:2;
48 unsigned char Unused:2;
52 typedef struct tgaFileImageSpecification {
58 tgaFileDescriptor Descriptor;
59 } tgaFileImageSpecification;
61 typedef struct tgaFileHeader {
62 unsigned char IDLength; /* 1 Byte */
63 unsigned char ColorMapType; /* 1 Byte */
64 unsigned char ImageType; /* 1 Byte */
65 tgaFileColorMapSpecification ColorMapSpec; /* 5 Bytes */
66 tgaFileImageSpecification ImageSpec; /* 10 Bytes */
67 } tgaFileHeader; /* 18 Bytes */
69 typedef unsigned char tgaFileImageID;
70 typedef unsigned char tgaFileColorMapData;
71 typedef unsigned char tgaFileImageData;
72 typedef unsigned char tgaFileDeveloperData;
74 typedef struct tgaFile {
75 tgaFileHeader Header; /* Field 1-5 : fixed: 18 Bytes */
76 tgaFileImageID* ImageID; /* Field 6: variable */
77 tgaFileColorMapData* ColorMapData; /* Field 7: variable */
78 tgaFileImageData* Image; /* Field 8: variable */
79 tgaFileDeveloperData* DeveloperData; /* Field 9: variable */
81 /* Additional Information */
90 extern tgaFile* tgaFileInit(tgaFile* tga, FILE* fpt, int mode);
91 extern tgaFile* tgaFileImageInit(tgaFile* tga, FILE* fpt, int mode);
93 /* in tgaFileRead.c */
94 extern tgaFile* tgaFileHeaderRead(tgaFile* tga, FILE* fpt, int mode);
95 extern tgaFile* tgaFileImageDataRead(tgaFile* tga, FILE* fpt, int mode);
96 extern tgaFile* tgaFileRead(tgaFile* tga, FILE* fpt, int mode);
99 extern void tgaFileHeaderPrint(tgaFile* tga, FILE* out, int mode);
105 #endif /* TGA_FILE_H */