--- ray/src/common/tmprivat.h 2005/01/07 20:33:02 3.14 +++ ray/src/common/tmprivat.h 2022/01/15 16:57:46 3.26 @@ -1,13 +1,10 @@ -/* RCSid $Id: tmprivat.h,v 3.14 2005/01/07 20:33:02 greg Exp $ */ +/* RCSid $Id: tmprivat.h,v 3.26 2022/01/15 16:57:46 greg Exp $ */ /* * Private header file for tone mapping routines. */ #ifndef _RAD_TMPRIVAT_H_ #define _RAD_TMPRIVAT_H_ -#ifndef MEM_PTR -#define MEM_PTR void * -#endif #include "color.h" #include "tonemap.h" @@ -26,26 +23,25 @@ extern "C" { #define MINGAM 0.75 #define DEFGAM 2.2 #define MINLDDYN 2. -#define DEFLDDYN 32. +#define DEFLDDYN 100. #define MINLDMAX 1. #define DEFLDMAX 100. -#define BRT2SCALE(l2) (int)(M_LN2*TM_BRTSCALE*(l2) + ((l2)>0 ? .5 : -.5)) +#define BRT2SCALE(l2) (int)(M_LN2*TM_BRTSCALE*(l2) + .5 - ((l2) < 0)) -#define HISTEP 8 /* steps in BRTSCALE for each bin */ +#define HISTEP 16 /* steps in BRTSCALE for each bin */ #define MINBRT (-16*TM_BRTSCALE) /* minimum usable brightness */ #define MINLUM (1.125352e-7) /* tmLuminance(MINBRT) */ +#define HISTI(li) (((li)-MINBRT)/HISTEP) +#define HISTV(i) (MINBRT + HISTEP/2 + (i)*HISTEP) + #define LMESLOWER (5.62e-3) /* lower mesopic limit */ #define LMESUPPER (5.62) /* upper mesopic limit */ -#if (TM_BRTSCALE==128) -#define BMESLOWER (-663) /* encoded LMESLOWER */ -#define BMESUPPER (221) /* encoded LMESUPPER */ -#else #define BMESLOWER ((int)(-5.18*TM_BRTSCALE-.5)) #define BMESUPPER ((int)(1.73*TM_BRTSCALE+.5)) -#endif + /* approximate scotopic lum. */ #define SCO_rf 0.062 #define SCO_gf 0.608 @@ -55,14 +51,12 @@ extern "C" { (int32)(SCO_gf*256.+.5)*(c)[GRN] + \ (int32)(SCO_bf*256.+.5)*(c)[BLU] ) >> 8 ) -#ifndef malloc -MEM_PTR malloc(); -MEM_PTR calloc(); -#endif -extern int tmErrorReturn(char *, TMstruct *, int); +extern int tmNewMap(TMstruct *tms); /* allocate new tone-mapping */ +extern int tmErrorReturn(const char *, TMstruct *, int); + /* lookup for mesopic scaling */ -extern BYTE tmMesofact[BMESUPPER-BMESLOWER]; +extern uby8 tmMesofact[BMESUPPER-BMESLOWER]; extern void tmMkMesofact(void); /* build tmMesofact */