ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/hd/holo.h
(Generate patch)

Comparing ray/src/hd/holo.h (file contents):
Revision 3.16 by gwlarson, Thu Nov 5 09:09:32 1998 UTC vs.
Revision 3.21 by greg, Thu May 29 16:26:21 2003 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1998 Silicon Graphics, Inc. */
2 <
3 < /* SCCSid "$SunId$ SGI" */
4 <
1 > /* RCSid: $Id$ */
2   /*
3   * Header file for holodeck programs
4   *
# Line 15 | Line 12
12   #define HDMAX           128     /* maximum active holodeck sections */
13   #endif
14  
15 + #ifndef MAXDIRSE
16 + #define MAXDIRSE        32      /* maximum seeks per directory write */
17 + #endif
18 +
19   #define DCINF   (unsigned)((1L<<16)-1)  /* special value for infinity */
20   #define DCLIN   (unsigned)(1L<<11)      /* linear depth limit */
21  
# Line 43 | Line 44 | typedef struct {
44  
45   typedef struct {
46          unsigned int4   nrd;    /* number of beam rays bundled on disk */
47 <        long    fo;             /* position in file */
47 >        off_t   fo;             /* position in file */
48   } BEAMI;                /* beam index */
49  
50   typedef struct {
# Line 65 | Line 66 | typedef struct holo {
66          FVECT   xv[3];          /* side vectors (second) */
67          int2    grid[3];        /* grid resolution (third) */
68          int     fd;             /* file descriptor */
69 <        short   dirty;          /* beam index needs update to file */
69 >        struct {
70 >                int     s, n;           /* dirty section start, length */
71 >        } dirseg[MAXDIRSE+1];   /* dirty beam index segments */
72 >        short   dirty;          /* number of dirty segments */
73          double  tlin;           /* linear range for depth encoding */
74          FVECT   wg[3];          /* wall grid vectors (derived) */
71        double  wo[6];          /* wall grid offsets (derived) */
75          int     wi[6];          /* wall super-indices (derived) */
76          char    *priv;          /* pointer to private client data */
77          BEAM    **bl;           /* beam pointers (memory cache) */
# Line 93 | Line 96 | extern HOLO    *hdinit(), *hdalloc();
96   extern BEAM     *hdgetbeam();
97   extern RAYVAL   *hdnewrays();
98   extern unsigned hdmemuse();
99 < extern long     hdfiluse(), hdfilen(), hdallocfrag();
99 > extern off_t    hdfiluse(), hdfilen(), hdallocfrag();
100   extern double   hdray(), hdinter();
101   extern unsigned hdcode();
102   extern int      hdfilord();
103  
104 + #define FF_NEVER        0               /* never free fragments */
105 + #define FF_WRITE        01              /* free fragment on write */
106 + #define FF_ALLOC        02              /* free fragment on ray alloc */
107 + #define FF_READ         04              /* free fragment on read */
108 + #define FF_KILL         010             /* free fragment on beam kill */
109 +
110 + extern int      hdfragflags;            /* tells when to free fragments */
111   extern unsigned hdcachesize;            /* target cache size (bytes) */
112   extern unsigned long    hdclock;        /* holodeck system clock */
113   extern HOLO     *hdlist[HDMAX+1];       /* holodeck pointers (NULL term.) */
# Line 114 | Line 124 | extern int     hdwg1[6];               /* wall grid 1 index */
124  
125   #define HOLOFMT         "Holodeck"      /* file format identifier */
126   #define HOLOVERS        0               /* file format version number */
127 < #define HOLOMAGIC       (323+sizeof(long)+8*HOLOVERS)   /* file magic number */
127 > #define HOLOMAGIC       (323+sizeof(off_t)+8*HOLOVERS)  /* file magic number */
128  
129   /*
130   * A holodeck file consists of an information header terminated by a

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines