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.26 by greg, Fri May 20 02:06:38 2011 UTC vs.
Revision 3.33 by greg, Thu Nov 21 17:15:54 2024 UTC

# 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 */
81        MEM_PTR         inpdat;         /* current input client data */
86          COLORMAT        cmat;           /* color conversion matrix */
87          TMbright        hbrmin, hbrmax; /* histogram brightness limits */      
88 <        int             *histo;         /* input histogram */
88 >        HIST_TYP        *histo;         /* input histogram */
89          TMbright        mbrmin, mbrmax; /* mapped brightness limits */
90 <        unsigned short  *lumap;         /* computed luminance map */
91 <        MEM_PTR         pd[TM_MAXPKG];  /* pointers to private data */
90 >        TMAP_TYP        *lumap;         /* computed luminance map */
91 >        void            *pd[TM_MAXPKG]; /* pointers to private data */
92          int             lastError;      /* last error incurred */
93          const char      *lastFunc;      /* error-generating function name */
94   } TMstruct;
95  
96                                  /* conversion package functions */
97   struct tmPackage {
98 <        MEM_PTR         (*Init)(TMstruct *tms);
98 >        void *          (*Init)(TMstruct *tms);
99          void            (*NewSpace)(TMstruct *tms);
100 <        void            (*Free)(MEM_PTR pp);
100 >        void            (*Free)(void *pp);
101   };
102                                  /* our list of conversion packages */
103   extern struct tmPackage *tmPkg[TM_MAXPKG];
# Line 149 | Line 153 | tmInit(int flags, RGBPRIMP monpri, double gamval);
153   */
154  
155   extern int
156 < tmSetSpace(TMstruct *tms, RGBPRIMP pri, double sf, MEM_PTR dat);
156 > tmSetSpace(TMstruct *tms, RGBPRIMP pri, double sf);
157   /*
158          Set color primaries and scale factor for incoming scanlines.
159  
160          tms     -       tone mapping structure pointer.
161          pri     -       RGB color input primaries (Note 1).
162          sf      -       scale factor to get to luminance in cd/m^2.
159        dat     -       application-specific data (NULL if not needed)
163  
164          returns -       0 on success, TM_E_* code on failure.
165   */
# Line 183 | Line 186 | tmAddHisto(TMstruct *tms, TMbright *ls, int len, int w
186   */
187  
188   extern int
189 < tmFixedMapping(TMstruct *tms, double expmult, double gamval);
189 > tmFixedMapping(TMstruct *tms, double expmult, double gamval, double Lddyn);
190   /*
191          Assign a fixed, linear tone-mapping using the given multiplier,
192          which is the ratio of maximum output to uncalibrated input.
# Line 194 | Line 197 | tmFixedMapping(TMstruct *tms, double expmult, double g
197          tms     -       tone mapping structure pointer.
198          expmult -       the fixed exposure multiplier to use.
199          gamval  -       display gamma response (0. for default).
200 +        Lddyn   -       the display's dynamic range (0. for default).
201  
202          returns -       0 on success, TM_E_* on error.
203   */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines