--- ray/src/common/tonemap.h 2005/01/07 22:05:30 3.19 +++ ray/src/common/tonemap.h 2008/05/31 19:38:36 3.23 @@ -1,4 +1,4 @@ -/* RCSid $Id: tonemap.h,v 3.19 2005/01/07 22:05:30 greg Exp $ */ +/* RCSid $Id: tonemap.h,v 3.23 2008/05/31 19:38:36 greg Exp $ */ /* * Header file for tone mapping functions. * @@ -7,14 +7,14 @@ #ifndef _RAD_TONEMAP_H_ #define _RAD_TONEMAP_H_ -#include "tifftypes.h" +#include "tiff.h" /* needed for int32, etc. */ #ifdef __cplusplus extern "C" { #endif /**** Argument Macros ****/ - /* Flags of what to do */ + /* flags of what to do */ #define TM_F_HCONTR 01 /* human contrast sensitivity */ #define TM_F_MESOPIC 02 /* mesopic color sensitivity */ #define TM_F_LINEAR 04 /* linear brightness mapping */ @@ -70,7 +70,7 @@ extern char *tmErrorMessage[]; /* error messages */ typedef short TMbright; /* encoded luminance type */ /* basic tone mapping data structure */ -typedef struct tmStruct { +typedef struct { int flags; /* flags of what to do */ RGBPRIMP monpri; /* monitor RGB primaries */ double mongam; /* monitor gamma value (approx.) */ @@ -118,7 +118,24 @@ extern int tmNumPkgs; /* number of registered packages /**** Library Function Calls ****/ +extern TMbright +tmCvLuminance(double lum); +/* + Convert a single luminance value to an encoded brightness value. + */ +extern int +tmCvLums(TMbright *ls, float *scan, int len); +/* + Convert luminance values to encoded brightness values using lookup. + + ls - returned encoded luminance values. + scan - input scanline. + len - scanline length. + + returns - 0 on success, TM_E_* on error. + */ + extern TMstruct * tmInit(int flags, RGBPRIMP monpri, double gamval); /* @@ -230,13 +247,12 @@ tmDone(TMstruct *tms); */ extern int -tmCvColors(TMstruct *tms, TMbright *ls, BYTE *cs, COLOR *scan, int len); +tmCvGrays(TMstruct *tms, TMbright *ls, float *scan, int len); /* - Convert RGB/XYZ float scanline to encoded luminance and chrominance. + Convert gray float scanline to encoded luminance. tms - tone mapping structure pointer. ls - returned encoded luminance values. - cs - returned encoded chrominance values (Note 2). scan - input scanline. len - scanline length. @@ -244,12 +260,13 @@ tmCvColors(TMstruct *tms, TMbright *ls, BYTE *cs, COLO */ extern int -tmCvGrays(TMstruct *tms, TMbright *ls, float *scan, int len); +tmCvColors(TMstruct *tms, TMbright *ls, BYTE *cs, COLOR *scan, int len); /* - Convert gray float scanline to encoded luminance. + Convert RGB/XYZ float scanline to encoded luminance and chrominance. tms - tone mapping structure pointer. ls - returned encoded luminance values. + cs - returned encoded chrominance values (Note 2). scan - input scanline. len - scanline length.