OSDN Git Service

Merge branch 'master' of git://git.sourceforge.jp/gitroot/eos/base
[eos/hostdependX86LINUX64.git] / include / tgaFile.h
1 #ifndef   TGA_FILE_H 
2 #define   TGA_FILE_H
3
4 typedef enum tgaFileColorMap {
5         tgaFileColorMapNoColorMap=0,
6         tgaFileColorMapColorMap=1
7 } tgaFileColorMap;
8
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
17 } tgaFileImageType;
18
19 typedef struct tgaFileColorMapSpecification {
20         short FirstEntryIndex;
21         short ColorMapLength;
22         unsigned char ColorMapEntrySize;
23 } tgaFileColorMapSpecification;
24
25 typedef enum tgaFileImageOrigin {
26         tgaFileImageOriginBottomLeft  = 0,
27         tgaFileImageOriginBottomRight = 1,
28         tgaFileImageOriginTopLeft     = 2,
29         tgaFileImageOriginTopRight    = 3 
30 } tgaFileImageOrigin;
31
32 typedef union tgaFileDescriptor {
33         unsigned char All;
34         struct {
35                 unsigned char AlphaChannelBits:4;
36                 unsigned char ImageOrigin:2;
37                 unsigned char Unused:2;
38         } Bit;
39 } tgaFileDescriptor;
40
41 typedef struct tgaFileImageSpecification {
42         short Xorigin;
43         short Yorigin;
44         short Width;
45         short Height;
46         unsigned char Depth;
47         tgaFileDescriptor Descriptor;
48 } tgaFileImageSpecification;
49
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 */ 
57
58 typedef unsigned char tgaFileImageID;
59 typedef unsigned char tgaFileColorMapData;
60 typedef unsigned char tgaFileImageData;
61 typedef unsigned char tgaFileDeveloperData;
62
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 */ 
69
70         /* Additional Information */
71         int flagHeader; 
72         int ImageDataOffset;
73         int ImageDataBytes;
74 } tgaFile;
75
76 #ifdef __cplusplust
77 extern "C" {
78 #endif
79 extern tgaFile* tgaFileInit(tgaFile* tga, FILE* fpt, int mode);
80 extern tgaFile* tgaFileImageInit(tgaFile* tga, FILE* fpt, int mode);
81
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);
86
87 /* in tgaFilePrint */
88 extern void tgaFileHeaderPrint(tgaFile* tga, FILE* out, int mode);
89
90 #ifdef __cplusplust
91 };
92 #endif
93
94 #endif /* TGA_FILE_H */