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

Comparing ray/src/rt/ambient.c (file contents):
Revision 2.48 by greg, Tue Feb 25 02:47:22 2003 UTC vs.
Revision 2.53 by schorsch, Mon Jul 21 22:30:19 2003 UTC

# Line 9 | Line 9 | static const char      RCSid[] = "$Id$";
9  
10   #include "copyright.h"
11  
12 < #include  "ray.h"
12 > #include <string.h>
13  
14 + #include  "platform.h"
15 + #include  "ray.h"
16   #include  "otypes.h"
15
17   #include  "ambient.h"
17
18   #include  "random.h"
19  
20   #ifndef  OCTSCALE
# Line 35 | Line 35 | static FILE  *ambfp = NULL;    /* ambient file pointer */
35   static int  nunflshed = 0;      /* number of unflushed ambient values */
36  
37   #ifndef SORT_THRESH
38 < #ifdef BIGMEM
39 < #define SORT_THRESH     ((9L<<20)/sizeof(AMBVAL))
40 < #else
38 > #ifdef SMLMEM
39   #define SORT_THRESH     ((3L<<20)/sizeof(AMBVAL))
40 + #else
41 + #define SORT_THRESH     ((9L<<20)/sizeof(AMBVAL))
42   #endif
43   #endif
44   #ifndef SORT_INTVL
# Line 165 | Line 165 | setambient()                           /* initialize calculation */
165                                          (flen - pos)/AMBVALSIZ);
166                          error(WARNING, errmsg);
167                          fseek(ambfp, pos, 0);
168 + #ifndef _WIN32 /* XXX we need a replacement for that one */
169                          ftruncate(fileno(ambfp), (off_t)pos);
170 + #endif
171                  }
172          } else if ((ambfp = fopen(ambfile, "w+")) != NULL) {
173                  initambfile(1);                 /* else create new file */
# Line 474 | Line 476 | int  creat;
476   #ifdef  F_SETLKW
477          aflock(creat ? F_WRLCK : F_RDLCK);
478   #endif
479 < #ifdef MSDOS
478 <        setmode(fileno(ambfp), O_BINARY);
479 < #endif
479 >        SET_FILE_BINARY(ambfp);
480          if (mybuf == NULL)
481                  mybuf = (char *)bmalloc(BUFSIZ+8);
482          setbuf(ambfp, mybuf);
# Line 529 | Line 529 | register AMBVAL  *aval;
529  
530          if ((av = newambval()) == NULL)
531                  error(SYSTEM, "out of memory in avstore");
532 <        copystruct(av, aval);
532 >        *av = *aval;
533          av->latick = ambclock;
534          av->next = NULL;
535          nambvals++;
# Line 564 | Line 564 | newambtree()                           /* allocate 8 ambient tree structs */
564          }
565          atp = atfreelist;
566          atfreelist = atp->kid;
567 <        bzero((char *)atp, 8*sizeof(AMBTREE));
567 >        memset((char *)atp, '\0', 8*sizeof(AMBTREE));
568          return(atp);
569   }
570  
# Line 741 | Line 741 | int    always;
741                  if (avlist2 != NULL)
742                          free((void *)avlist2);
743                  if (always) {           /* rebuild without sorting */
744 <                        copystruct(&oldatrunk, &atrunk);
744 >                        oldatrunk = atrunk;
745                          atrunk.alist = NULL;
746                          atrunk.kid = NULL;
747                          unloadatree(&oldatrunk, avinsert);
# Line 772 | Line 772 | int    always;
772                          if (avlist1[i].p == NULL)
773                                  continue;
774                          tap = avlist2[i];
775 <                        copystruct(&tav, tap);
775 >                        tav = *tap;
776                          for (j = i; (pnext = avlist1[j].p) != tap;
777                                          j = avlmemi(pnext)) {
778 <                                copystruct(avlist2[j], pnext);
778 >                                *(avlist2[j]) = *pnext;
779                                  avinsert(avlist2[j]);
780                                  avlist1[j].p = NULL;
781                          }
782 <                        copystruct(avlist2[j], &tav);
782 >                        *(avlist2[j]) = tav;
783                          avinsert(avlist2[j]);
784                          avlist1[j].p = NULL;
785                  }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines