ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/util/ranimate.c
(Generate patch)

Comparing ray/src/util/ranimate.c (file contents):
Revision 2.11 by greg, Tue Apr 16 10:38:19 1996 UTC vs.
Revision 2.15 by greg, Mon Jun 24 09:19:36 1996 UTC

# Line 118 | Line 118 | struct pslot   *findpslot();
118   VIEW    *getview();
119   char    *getexp();
120  
121 + extern time_t   fdate(), time();
122  
123 +
124   main(argc, argv)
125   int     argc;
126   char    *argv[];
# Line 190 | Line 192 | userr:
192  
193   getastat()                      /* check/set animation status */
194   {
195 <        char    buf[256];
195 >        char    sfname[256];
196          FILE    *fp;
197  
198 <        sprintf(buf, "%s/%s", vval(DIRECTORY), SFNAME);
199 <        if ((fp = fopen(buf, "r")) == NULL) {
198 >        sprintf(sfname, "%s/%s", vval(DIRECTORY), SFNAME);
199 >        if ((fp = fopen(sfname, "r")) == NULL) {
200                  if (errno != ENOENT) {
201 <                        perror(buf);
201 >                        perror(sfname);
202                          return(-1);
203                  }
204                  astat.rnext = astat.fnext = astat.tnext = 0;
# Line 234 | Line 236 | getastat()                     /* check/set animation status */
236                                  progname, astat.cfname);
237                  return(-1);
238          }
239 +                                                /* check control file mods. */
240 +        if (!nowarn && fdate(cfname) > fdate(sfname))
241 +                fprintf(stderr,
242 +                        "%s: warning - control file modified since last run\n",
243 +                                progname);
244   setours:                                        /* set our values */
245          strcpy(astat.host, myhostname());
246          astat.pid = getpid();
# Line 241 | Line 248 | setours:                                       /* set our values */
248          return(0);
249   fmterr:
250          fprintf(stderr, "%s: format error in status file \"%s\"\n",
251 <                        progname, buf);
251 >                        progname, sfname);
252          fclose(fp);
253          return(-1);
254   }
# Line 505 | Line 512 | animate()                      /* run animation */
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) {
# Line 834 | Line 841 | int    rvr;
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);
# Line 980 | Line 987 | int    n;
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          }
# Line 1013 | Line 1020 | int    n;
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 */
# Line 1054 | Line 1063 | int    n;
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                  }
1063                *cp = '\0';
1075          }
1076          return(expval);                         /* return value */
1077   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines