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

Comparing ray/src/common/tonemap.h (file contents):
Revision 3.25 by greg, Wed Aug 18 15:25:03 2010 UTC vs.
Revision 3.32 by greg, Sat Jan 15 16:57:46 2022 UTC

# Line 32 | Line 32 | extern "C" {
32  
33                                  /* special pointer values */
34   #define TM_XYZPRIM      (RGBPRIMP)NULL  /* indicate XYZ primaries (Note 1) */
35 < #define TM_NOCHROM      (BYTE *)NULL    /* indicate no chrominance */
36 < #define TM_NOCHROMP     (BYTE **)NULL   /* indicate no chrominances */
35 > #define TM_NOCHROM      (uby8 *)NULL    /* indicate no chrominance */
36 > #define TM_NOCHROMP     (uby8 **)NULL   /* indicate no chrominances */
37   #define TM_GETFILE      (FILE *)NULL    /* indicate file must be opened */
38  
39  
# Line 53 | Line 53 | extern "C" {
53  
54   #define TM_BRTSCALE     256             /* brightness scale factor (integer) */
55  
56 < #define TM_NOBRT        (-1<<15)        /* bogus brightness value */
56 > #define TM_NOBRT        (~0x7fff)       /* bogus brightness value */
57   #define TM_NOLUM        (1e-17)         /* ridiculously small luminance */
58  
59 + #define TM_BRES         4096            /* luminance tone-map resolution */
60 +
61   #define TM_MAXPKG       8               /* maximum number of color formats */
62  
63  
64   /****    Global Data Types and Structures    ****/
65  
66 < #ifndef MEM_PTR
67 < #define MEM_PTR         void *
66 > #ifndef HIST_TYP
67 > #define HIST_TYP        unsigned long
68   #endif
69 + #ifndef TMAP_TYP
70 + #define TMAP_TYP        uint16
71 + #endif
72  
73   extern char     *tmErrorMessage[];      /* error messages */
74  
# Line 78 | Line 83 | typedef struct {
83          int             cdiv[3];        /* computed color divisors */
84          RGBPRIMP        inppri;         /* current input primaries */
85          double          inpsf;          /* current input scalefactor */
86 <        MEM_PTR         inpdat;         /* current input client data */
86 >        void            *inpdat;        /* current input client data */
87          COLORMAT        cmat;           /* color conversion matrix */
88          TMbright        hbrmin, hbrmax; /* histogram brightness limits */      
89 <        int             *histo;         /* input histogram */
89 >        HIST_TYP        *histo;         /* input histogram */
90          TMbright        mbrmin, mbrmax; /* mapped brightness limits */
91 <        unsigned short  *lumap;         /* computed luminance map */
92 <        MEM_PTR         pd[TM_MAXPKG];  /* pointers to private data */
91 >        TMAP_TYP        *lumap;         /* computed luminance map */
92 >        void            *pd[TM_MAXPKG]; /* pointers to private data */
93          int             lastError;      /* last error incurred */
94          const char      *lastFunc;      /* error-generating function name */
95   } TMstruct;
96  
97                                  /* conversion package functions */
98   struct tmPackage {
99 <        MEM_PTR         (*Init)(TMstruct *tms);
99 >        void *          (*Init)(TMstruct *tms);
100          void            (*NewSpace)(TMstruct *tms);
101 <        void            (*Free)(MEM_PTR pp);
101 >        void            (*Free)(void *pp);
102   };
103                                  /* our list of conversion packages */
104   extern struct tmPackage *tmPkg[TM_MAXPKG];
# Line 149 | Line 154 | tmInit(int flags, RGBPRIMP monpri, double gamval);
154   */
155  
156   extern int
157 < tmSetSpace(TMstruct *tms, RGBPRIMP pri, double sf, MEM_PTR dat);
157 > tmSetSpace(TMstruct *tms, RGBPRIMP pri, double sf, void *dat);
158   /*
159          Set color primaries and scale factor for incoming scanlines.
160  
# Line 183 | Line 188 | tmAddHisto(TMstruct *tms, TMbright *ls, int len, int w
188   */
189  
190   extern int
191 < tmFixedMapping(TMstruct *tms, double expmult, double gamval);
191 > tmFixedMapping(TMstruct *tms, double expmult, double gamval, double Lddyn);
192   /*
193          Assign a fixed, linear tone-mapping using the given multiplier,
194          which is the ratio of maximum output to uncalibrated input.
# Line 194 | Line 199 | tmFixedMapping(TMstruct *tms, double expmult, double g
199          tms     -       tone mapping structure pointer.
200          expmult -       the fixed exposure multiplier to use.
201          gamval  -       display gamma response (0. for default).
202 +        Lddyn   -       the display's dynamic range (0. for default).
203  
204          returns -       0 on success, TM_E_* on error.
205   */
# Line 215 | Line 221 | tmComputeMapping(TMstruct *tms, double gamval, double
221   */
222  
223   extern int
224 < tmMapPixels(TMstruct *tms, BYTE *ps, TMbright *ls, BYTE *cs, int len);
224 > tmMapPixels(TMstruct *tms, uby8 *ps, TMbright *ls, uby8 *cs, int len);
225   /*
226          Apply tone mapping function to pixel values.
227  
# Line 260 | Line 266 | tmCvGrays(TMstruct *tms, TMbright *ls, float *scan, in
266   */
267  
268   extern int
269 < tmCvColors(TMstruct *tms, TMbright *ls, BYTE *cs, COLOR *scan, int len);
269 > tmCvColors(TMstruct *tms, TMbright *ls, uby8 *cs, COLOR *scan, int len);
270   /*
271          Convert RGB/XYZ float scanline to encoded luminance and chrominance.
272  
# Line 274 | Line 280 | tmCvColors(TMstruct *tms, TMbright *ls, BYTE *cs, COLO
280   */
281  
282   extern int
283 < tmCvColrs(TMstruct *tms, TMbright *ls, BYTE *cs, COLR *scan, int len);
283 > tmCvColrs(TMstruct *tms, TMbright *ls, uby8 *cs, COLR *scan, int len);
284   /*
285          Convert RGBE/XYZE scanline to encoded luminance and chrominance.
286  
# Line 288 | Line 294 | tmCvColrs(TMstruct *tms, TMbright *ls, BYTE *cs, COLR
294   */
295  
296   extern int
297 < tmLoadPicture(TMstruct *tms, TMbright **lpp, BYTE **cpp, int *xp, int *yp,
297 > tmLoadPicture(TMstruct *tms, TMbright **lpp, uby8 **cpp, int *xp, int *yp,
298                  char *fname, FILE *fp);
299   /*
300          Load Radiance picture and convert to tone mapping representation.
# Line 307 | Line 313 | tmLoadPicture(TMstruct *tms, TMbright **lpp, BYTE **cp
313   */
314  
315   extern int
316 < tmMapPicture(BYTE **psp, int *xp, int *yp, int flags,
316 > tmMapPicture(uby8 **psp, int *xp, int *yp, int flags,
317                  RGBPRIMP monpri, double gamval, double Lddyn, double Ldmax,
318                  char *fname, FILE *fp);
319   /*
# Line 332 | Line 338 | tmMapPicture(BYTE **psp, int *xp, int *yp, int flags,
338   */
339  
340   extern int
341 < tmCvRGB48(TMstruct *tms, TMbright *ls, BYTE *cs, uint16 (*scan)[3],
341 > tmCvRGB48(TMstruct *tms, TMbright *ls, uby8 *cs, uint16 (*scan)[3],
342                  int len, double gv);
343   /*
344          Convert 48-bit RGB scanline to encoded luminance and chrominance.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines