home *** CD-ROM | disk | FTP | other *** search
-
- /* Routine to decode Targa 16 bit RGB file
- */
-
- /* 16 bit .tga files were generated for continuous potential "potfile"s
- from version 9.? thru version 14. Replaced by double row gif type
- file (.pot) in version 15. Delete this code after a few more revs.
- */
-
- #include <stdio.h>
- #include "fractint.h"
- #include "targa_lc.h"
- #include "port.h"
-
- extern char readname[]; /* file name */
- extern unsigned int boxx[]; /* write-line routines use this */
- extern int colors;
- extern int rowcount;
-
- static FILE *fptarga = NULL; /* FILE pointer */
- extern unsigned int height; /* image height */
- extern int (*outln)();
-
- /* Main entry decoder */
- tgaview()
- {
- int i;
- int cs;
- unsigned int width;
- struct fractal_info info;
- FILE *t16_open();
-
- if((fptarga = t16_open(readname, &width, &height, &cs, (int *)&info))==NULL)
- return(-1);
-
- rowcount = 0;
- for (i=0; i<height; ++i)
- {
- t16_getline(fptarga, width, (U16 *)boxx);
- if ((*outln)(boxx,width))
- {
- fclose(fptarga);
- fptarga = NULL;
- return(-1);
- }
- if (keypressed())
- {
- fclose(fptarga);
- fptarga = NULL;
- return(-1);
- }
- }
- fclose(fptarga);
- fptarga = NULL;
- return(0);
- }
- /* Outline function for 16 bit data with 8 bit fudge */
- outlin16(unsigned int *buffer,int linelen)
- {
- extern int rowcount;
- int i;
- for(i=0;i<linelen;i++)
- putcolor(i,rowcount,buffer[i]>>8);
- rowcount++;
- return(0);
- }
-