| 1 | < | /* RCSid: $Id$ */ | 
| 1 | > | /* RCSid $Id$ */ | 
| 2 |  | /* | 
| 3 |  | * Header file for tone mapping functions. | 
| 4 |  | * | 
| 5 |  | * Include after "color.h" | 
| 6 |  | */ | 
| 7 | + | #ifndef _RAD_TONEMAP_H_ | 
| 8 | + | #define _RAD_TONEMAP_H_ | 
| 9 |  |  | 
| 10 | < | /* ==================================================================== | 
| 9 | < | * The Radiance Software License, Version 1.0 | 
| 10 | < | * | 
| 11 | < | * Copyright (c) 1990 - 2002 The Regents of the University of California, | 
| 12 | < | * through Lawrence Berkeley National Laboratory.   All rights reserved. | 
| 13 | < | * | 
| 14 | < | * Redistribution and use in source and binary forms, with or without | 
| 15 | < | * modification, are permitted provided that the following conditions | 
| 16 | < | * are met: | 
| 17 | < | * | 
| 18 | < | * 1. Redistributions of source code must retain the above copyright | 
| 19 | < | *         notice, this list of conditions and the following disclaimer. | 
| 20 | < | * | 
| 21 | < | * 2. Redistributions in binary form must reproduce the above copyright | 
| 22 | < | *       notice, this list of conditions and the following disclaimer in | 
| 23 | < | *       the documentation and/or other materials provided with the | 
| 24 | < | *       distribution. | 
| 25 | < | * | 
| 26 | < | * 3. The end-user documentation included with the redistribution, | 
| 27 | < | *           if any, must include the following acknowledgment: | 
| 28 | < | *             "This product includes Radiance software | 
| 29 | < | *                 (http://radsite.lbl.gov/) | 
| 30 | < | *                 developed by the Lawrence Berkeley National Laboratory | 
| 31 | < | *               (http://www.lbl.gov/)." | 
| 32 | < | *       Alternately, this acknowledgment may appear in the software itself, | 
| 33 | < | *       if and wherever such third-party acknowledgments normally appear. | 
| 34 | < | * | 
| 35 | < | * 4. The names "Radiance," "Lawrence Berkeley National Laboratory" | 
| 36 | < | *       and "The Regents of the University of California" must | 
| 37 | < | *       not be used to endorse or promote products derived from this | 
| 38 | < | *       software without prior written permission. For written | 
| 39 | < | *       permission, please contact [email protected]. | 
| 40 | < | * | 
| 41 | < | * 5. Products derived from this software may not be called "Radiance", | 
| 42 | < | *       nor may "Radiance" appear in their name, without prior written | 
| 43 | < | *       permission of Lawrence Berkeley National Laboratory. | 
| 44 | < | * | 
| 45 | < | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | 
| 46 | < | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | 
| 47 | < | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 
| 48 | < | * DISCLAIMED.   IN NO EVENT SHALL Lawrence Berkeley National Laboratory OR | 
| 49 | < | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 
| 50 | < | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 
| 51 | < | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | 
| 52 | < | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 
| 53 | < | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | 
| 54 | < | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | 
| 55 | < | * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | 
| 56 | < | * SUCH DAMAGE. | 
| 57 | < | * ==================================================================== | 
| 58 | < | * | 
| 59 | < | * This software consists of voluntary contributions made by many | 
| 60 | < | * individuals on behalf of Lawrence Berkeley National Laboratory.   For more | 
| 61 | < | * information on Lawrence Berkeley National Laboratory, please see | 
| 62 | < | * <http://www.lbl.gov/>. | 
| 63 | < | */ | 
| 10 | > | #include        "tifftypes.h" | 
| 11 |  |  | 
| 12 |  | #ifdef __cplusplus | 
| 13 |  | extern "C" { | 
| 90 |  | }       *tmTop;                 /* current tone mapping stack */ | 
| 91 |  |  | 
| 92 |  | /* conversion package functions */ | 
| 146 | – | #ifdef  NOPROTO | 
| 93 |  | struct tmPackage { | 
| 148 | – | MEM_PTR         (*Init)();      /* initialize private data */ | 
| 149 | – | void            (*NewSpace)();  /* new input color space (optional) */ | 
| 150 | – | void            (*Free)();      /* free private data */ | 
| 151 | – | }; | 
| 152 | – | #else | 
| 153 | – | struct tmPackage { | 
| 94 |  | MEM_PTR         (*Init)(struct tmStruct *tms); | 
| 95 |  | void            (*NewSpace)(struct tmStruct *tms); | 
| 96 |  | void            (*Free)(MEM_PTR pp); | 
| 97 |  | }; | 
| 158 | – | #endif | 
| 98 |  | /* our list of conversion packages */ | 
| 99 |  | extern struct tmPackage *tmPkg[TM_MAXPKG]; | 
| 100 |  | extern int      tmNumPkgs;      /* number of registered packages */ | 
| 118 |  |  | 
| 119 |  | /****    Library Function Calls    ****/ | 
| 120 |  |  | 
| 182 | – | #ifdef  NOPROTO | 
| 121 |  |  | 
| 184 | – | extern struct tmStruct  *tmInit(), *tmPop(), *tmDup(); | 
| 185 | – | extern int      tmSetSpace(), tmPull(), tmPush(); | 
| 186 | – | extern void     tmClearHisto(), tmDone(); | 
| 187 | – | extern int      tmAddHisto(); | 
| 188 | – | extern int      tmFixedMapping(), tmComputeMapping(), tmMapPixels(); | 
| 189 | – | extern int      tmCvColors(), tmCvGrays(), tmCvColrs(); | 
| 190 | – | extern int      tmLoadPicture(), tmMapPicture(); | 
| 191 | – |  | 
| 192 | – | #else | 
| 193 | – |  | 
| 122 |  | extern struct tmStruct * | 
| 123 |  | tmInit(int flags, RGBPRIMP monpri, double gamval); | 
| 124 |  | /* | 
| 332 |  | returns -       0 on success, TM_E_* on failure. | 
| 333 |  | */ | 
| 334 |  |  | 
| 335 | < | #endif | 
| 335 | > | extern int | 
| 336 | > | tmCvRGB48(TMbright *ls, BYTE *cs, uint16 (*scan)[3], int len, double gv); | 
| 337 | > | /* | 
| 338 | > | Convert 48-bit RGB scanline to encoded luminance and chrominance. | 
| 339 |  |  | 
| 340 | + | ls      -       returned encoded luminance values. | 
| 341 | + | cs      -       returned encoded chrominance values (Note 2). | 
| 342 | + | scan    -       input scanline. | 
| 343 | + | len     -       scanline length. | 
| 344 | + | gv      -       input gamma value. | 
| 345 |  |  | 
| 346 | + | returns -       0 on success, TM_E_* on error. | 
| 347 | + | */ | 
| 348 | + |  | 
| 349 | + | extern int | 
| 350 | + | tmCvGray16(TMbright *ls, uint16 *scan, int len, double gv); | 
| 351 | + | /* | 
| 352 | + | Convert 16-bit gray scanline to encoded luminance. | 
| 353 | + |  | 
| 354 | + | ls      -       returned encoded luminance values. | 
| 355 | + | scan    -       input scanline. | 
| 356 | + | len     -       scanline length. | 
| 357 | + | gv      -       input gamma value. | 
| 358 | + |  | 
| 359 | + | returns -       0 on success, TM_E_* on error. | 
| 360 | + | */ | 
| 361 | + |  | 
| 362 |  | /****    Notes    ****/ | 
| 363 |  | /* | 
| 364 |  | General: | 
| 433 |  | #ifdef __cplusplus | 
| 434 |  | } | 
| 435 |  | #endif | 
| 436 | + | #endif /* _RAD_TONEMAP_H_ */ | 
| 437 | + |  |