482 |
|
i = sscanf(vval(RESOLUTION), "%d %d %f", &xres, &yres, &pa); |
483 |
|
mult = vflt(OVERSAMP); |
484 |
|
if (i == 3) { |
485 |
< |
sprintf(rresopt, "-x %d -y %d -pa %f", (int)(mult*xres), |
485 |
> |
sprintf(rresopt, "-x %d -y %d -pa %.3f", (int)(mult*xres), |
486 |
|
(int)(mult*yres), pa); |
487 |
< |
sprintf(fresopt, "-x %d -y %d -pa %f", xres, yres, pa); |
487 |
> |
sprintf(fresopt, "-x %d -y %d -pa %.3f", xres, yres, pa); |
488 |
|
} else if (i) { |
489 |
|
if (i == 1) yres = xres; |
490 |
|
sprintf(rresopt, "-x %d -y %d", (int)(mult*xres), |
512 |
|
/* figure # frames per batch */ |
513 |
|
d1 = mult*xres*mult*yres*4; /* space for orig. picture */ |
514 |
|
if ((i=vint(INTERP)) || atoi(vval(MBLUR))) |
515 |
< |
d1 += mult*xres*mult*yres*4; /* space for z-buffer */ |
515 |
> |
d1 += mult*xres*mult*yres*sizeof(float); /* Z-buffer */ |
516 |
|
d2 = xres*yres*4; /* space for final picture */ |
517 |
|
frames_batch = (i+1)*(vflt(DISKSPACE)*1048576.-d1)/(d1+i*d2); |
518 |
|
if (frames_batch < i+2) { |
841 |
|
while (*arcnext) arcnext++; |
842 |
|
strcpy(arcnext, ".unf"); |
843 |
|
arcnext += 4; |
844 |
< |
if (usepinterp || vint(INTERP)) { /* and z-buf */ |
844 |
> |
if (usepinterp || vint(INTERP)) { /* and Z-buf */ |
845 |
|
*arcnext++ = ' '; |
846 |
|
sprintf(arcnext, vval(BASENAME), |
847 |
|
frame-vint(INTERP)-1); |
987 |
|
} |
988 |
|
while (n > viewnum) { /* scan to desired view */ |
989 |
|
if (fgets(linebuf, sizeof(linebuf), viewfp) == NULL) |
990 |
< |
return(viewnum==1 ? &curview : NULL); |
990 |
> |
return(viewnum==1 ? &curview : (VIEW *)NULL); |
991 |
|
if (isview(linebuf) && sscanview(&curview, linebuf) > 0) |
992 |
|
viewnum++; |
993 |
|
} |
1020 |
|
if (n == 0) { /* signal to close file */ |
1021 |
|
if (expfp != NULL) { |
1022 |
|
fclose(expfp); |
1023 |
+ |
free((char *)exppos); |
1024 |
|
expfp = NULL; |
1025 |
|
} |
1026 |
|
return(NULL); |
1027 |
< |
} |
1027 |
> |
} else if (n > vint(END)) /* request past end (error?) */ |
1028 |
> |
return(NULL); |
1029 |
|
if (!vdef(EXPOSURE)) /* no setting (auto) */ |
1030 |
|
return(NULL); |
1031 |
|
if (isflt(vval(EXPOSURE))) /* always the same */ |
1063 |
|
} |
1064 |
|
curfrm++; |
1065 |
|
cp = fskip(expval); /* check format */ |
1066 |
< |
if (cp == NULL || *cp != '\n') { |
1066 |
> |
if (cp != NULL) |
1067 |
> |
while (isspace(*cp)) |
1068 |
> |
*cp++ = '\0'; |
1069 |
> |
if (cp == NULL || *cp) { |
1070 |
|
fprintf(stderr, |
1071 |
|
"%s: exposure format error on line %d\n", |
1072 |
|
vval(EXPOSURE), curfrm); |
1073 |
|
quit(1); |
1074 |
|
} |
1070 |
– |
*cp = '\0'; |
1075 |
|
} |
1076 |
|
return(expval); /* return value */ |
1077 |
|
} |