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

Comparing ray/src/rt/preload.c (file contents):
Revision 2.17 by greg, Thu Apr 4 18:51:18 2024 UTC vs.
Revision 2.19 by greg, Fri Jun 20 23:47:43 2025 UTC

# Line 19 | Line 19 | static const char      RCSid[] = "$Id$";
19   #include "func.h"
20   #include "bsdf.h"
21  
22 + char    *shm_boundary = NULL;           /* boundary of shared memory */
23  
24 +
25   /* KEEP THIS ROUTINE CONSISTENT WITH THE DIFFERENT OBJECT FUNCTIONS! */
26  
27  
# Line 122 | Line 124 | load_os(                       /* load associated data for object */
124          case MAT_METAL2:        /* anisotropic metal */
125                  getfunc(op, 3, 0x7, 1);
126                  return(1);
127 +        case MAT_WGMDF:         /* WGMDfunc material */
128 +                getfunc(m, 12, 0xEEE, 1);
129 +                return(1);
130          case MAT_BRTDF:         /* BRDTfunc material */
131                  getfunc(op, 9, 0x3f, 0);
132                  return(1);
# Line 174 | Line 179 | preload_objs(void)             /* preload object data structures
179                                  /* note that nobjects may change during loop */
180          for (on = 0; on < nobjects; on++)
181                  load_os(objptr(on));
182 + }
183 +
184 +
185 + void
186 + cow_memshare(void)              /* set up copy-on-write memory sharing */
187 + {
188 +        if (shm_boundary != NULL)
189 +                return;                 /* assume we're good */
190 +
191 +        preload_objs();                 /* preload auxiliary data */
192 +                                        /* set shared memory boundary */
193 +        shm_boundary = (char *)malloc(16);
194 +        strcpy(shm_boundary, "SHM_BOUNDARY");
195 + }
196 +
197 +
198 + void
199 + cow_doneshare(void)             /* clear memory sharing boundary */
200 + {
201 +        if (shm_boundary == NULL)
202 +                return;
203 +                                        /* clear shared memory boundary */
204 +        free((void *)shm_boundary);
205 +        shm_boundary = NULL;
206   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines