Render changes

This commit is contained in:
Simon Robertshaw 2011-05-28 14:57:07 +01:00
parent 380a45a4c9
commit edc6339369

View File

@ -1312,6 +1312,7 @@ int main(int argc, char *argv[])
int load_size, i=0, j=0;
void *load_data = file_load(argv[1], &load_size);
unsigned char c[3];
char ppmfilename[256], ptifilename[256], ptismallfilename[256];
FILE *f;
cmode = CM_FIRE;
@ -1327,6 +1328,10 @@ int main(int argc, char *argv[])
fire_bg = calloc(XRES*YRES, PIXELSIZE);
prepare_alpha();
sprintf(ppmfilename, "%s.ppm", argv[2]);
sprintf(ptifilename, "%s.pti", argv[2]);
sprintf(ptismallfilename, "%s-small.pti", argv[2]);
if(load_data && load_size){
int parsestate = 0;
@ -1347,34 +1352,42 @@ int main(int argc, char *argv[])
info_box(vid_buf, "Save file invalid or from newer version");
}
if(!strncmp(argv[3], "pti", 3)){
char * datares = NULL, *scaled_buf;
int res = 0, sw, sh;
scaled_buf = rescale_img(vid_buf, XRES, YRES, &sw, &sh, 4);
datares = ptif_pack(scaled_buf, sw, sh, &res);
if(datares!=NULL){
f=fopen(argv[2], "wb");
fwrite(datares, res, 1, f);
fclose(f);
free(datares);
}
free(scaled_buf);
} else {
f=fopen(argv[2],"wb");
fprintf(f,"P6\n%d %d\n255\n",XRES,YRES);
for (j=0; j<YRES; j++)
{
for (i=0; i<XRES; i++)
{
c[0] = PIXR(vid_buf[i]);
c[1] = PIXG(vid_buf[i]);
c[2] = PIXB(vid_buf[i]);
fwrite(c,3,1,f);
}
vid_buf+=XRES+BARSIZE;
}
//Save PTi images
char * datares = NULL, *scaled_buf;
int res = 0, sw, sh;
datares = ptif_pack(vid_buf, XRES, YRES, &res);
if(datares!=NULL){
f=fopen(ptifilename, "wb");
fwrite(datares, res, 1, f);
fclose(f);
free(datares);
datares = NULL;
}
scaled_buf = rescale_img(vid_buf, XRES, YRES, &sw, &sh, 4);
datares = ptif_pack(scaled_buf, sw, sh, &res);
if(datares!=NULL){
f=fopen(ptismallfilename, "wb");
fwrite(datares, res, 1, f);
fclose(f);
free(datares);
datares = NULL;
}
free(scaled_buf);
//Save PPM image
f=fopen(ppmfilename, "wb");
fprintf(f,"P6\n%d %d\n255\n",XRES,YRES);
for (j=0; j<YRES; j++)
{
for (i=0; i<XRES; i++)
{
c[0] = PIXR(vid_buf[i]);
c[1] = PIXG(vid_buf[i]);
c[2] = PIXB(vid_buf[i]);
fwrite(c,3,1,f);
}
vid_buf+=XRES+BARSIZE;
}
fclose(f);
return 1;
}