1 #define MAXXSIZE 8192 2 #define HSIZE 5003 3 typedef int code_int; 4 typedef long int count_int; 5 typedef unsigned char char_type; 6 7 /***************************************************************************** 8 * vgl_GIFWriter 9 * This structure holds all the variables that were GLOBAL and non-constant 10 * in the original Haeberli TOGIF source. 11 ***************************************************************************** 12 */ 13 typedef struct _vgl_GIFWriter 14 { 15 unsigned long *buffer; /* standard 32 bit pixel buffer */ 16 unsigned short xsize; /* width of image */ 17 unsigned short ysize; /* height of image */ 18 int iscolor; /* color or bw flag */ 19 20 /************** getgifpix2() variables ************************/ 21 int currow; 22 short rbuf[MAXXSIZE]; 23 short gbuf[MAXXSIZE]; 24 short bbuf[MAXXSIZE]; 25 short obuf[MAXXSIZE]; 26 27 /************** GIF specific variables *****************/ 28 unsigned short curx, cury; 29 long countDown; 30 int pass; 31 int interlace; 32 unsigned long cur_accum; 33 int cur_bits; 34 35 /************ GIF image compression variables **************/ 36 int n_bits; /* number of bits/code */ 37 int maxbits; /* user settable max # bits/code */ 38 code_int maxcode; /* maximum code, given n_bits */ 39 code_int maxmaxcode; /* should NEVER generate this code */ 40 count_int htab[HSIZE]; 41 unsigned short codetab[HSIZE]; 42 code_int hsize; /* for dynamic table sizing */ 43 code_int free_ent; /* first unused entry */ 44 int clear_flg; 45 int offset; 46 long int in_count; /* length of input */ 47 long int out_count; /* # of codes output (for debugging) */ 48 int g_init_bits; 49 int clearCode; 50 int EOFCode; 51 FILE *g_outfile; 52 int a_count; 53 char accum[256]; 54 55 /************** gammawarp() variables ************************/ 56 float curgamma; 57 short gamtab[256]; 58 59 /************** ditherrow() variables ************************/ 60 short **rtab; 61 short **gtab; 62 short **btab; 63 64 } vgl_GIFWriter; 65 vgl_GIFWriter *vgl_GIFWriterBegin(void); 66 void vgl_GIFWriterWriteGIFFile(vgl_GIFWriter * gifwriter, 67 unsigned long *buffer, int xsize, int ysize, 68 int bwflag, FILE * outf); 69 void vgl_GIFWriterEnd(vgl_GIFWriter * gifwriter); 70