65 |
|
} |
66 |
|
|
67 |
|
|
68 |
< |
normaspect(vp, ap, xp, yp) /* fix pixel aspect or resolution */ |
69 |
< |
VIEW *vp; |
70 |
< |
double *ap; |
71 |
< |
int *xp, *yp; |
68 |
> |
normaspect(va, ap, xp, yp) /* fix pixel aspect or resolution */ |
69 |
> |
double va; /* view aspect ratio */ |
70 |
> |
double *ap; /* pixel aspect in (or out if 0) */ |
71 |
> |
int *xp, *yp; /* x and y resolution in (or out if *ap!=0) */ |
72 |
|
{ |
73 |
– |
double va = viewaspect(vp); |
74 |
– |
|
73 |
|
if (*ap <= FTINY) |
74 |
< |
*ap = (double)*yp / *xp / va; /* compute pixel aspect */ |
74 |
> |
*ap = va * *xp / *yp; /* compute pixel aspect */ |
75 |
|
else if (va * *xp > *ap * *yp) |
76 |
|
*xp = *yp / va * *ap; /* reduce x resolution */ |
77 |
|
else |
258 |
|
|
259 |
|
|
260 |
|
int |
261 |
< |
viewfile(fname, vp) /* get view from file */ |
261 |
> |
viewfile(fname, vp, xp, yp) /* get view from file */ |
262 |
|
char *fname; |
263 |
|
VIEW *vp; |
264 |
+ |
int *xp, *yp; |
265 |
|
{ |
266 |
|
extern char *progname; |
267 |
|
FILE *fp; |
274 |
|
gothview = 0; |
275 |
|
|
276 |
|
getheader(fp, gethview); |
277 |
+ |
|
278 |
+ |
if (xp != NULL && yp != NULL |
279 |
+ |
&& fgetresolu(xp, yp, fp) == -1) |
280 |
+ |
gothview = 0; |
281 |
|
|
282 |
|
fclose(fp); |
283 |
|
|