PBRT
/home/felix/UBC/projects/AdaptiveLightfieldSampling/pbrt_v2/src/3rdparty/tiff-3.9.4/tif_predict.h
00001 /* $Id: tif_predict.h,v 1.3.2.2 2010-06-08 18:50:42 bfriesen Exp $ */
00002 
00003 /*
00004  * Copyright (c) 1995-1997 Sam Leffler
00005  * Copyright (c) 1995-1997 Silicon Graphics, Inc.
00006  *
00007  * Permission to use, copy, modify, distribute, and sell this software and 
00008  * its documentation for any purpose is hereby granted without fee, provided
00009  * that (i) the above copyright notices and this permission notice appear in
00010  * all copies of the software and related documentation, and (ii) the names of
00011  * Sam Leffler and Silicon Graphics may not be used in any advertising or
00012  * publicity relating to the software without the specific, prior written
00013  * permission of Sam Leffler and Silicon Graphics.
00014  * 
00015  * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
00016  * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
00017  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
00018  * 
00019  * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
00020  * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
00021  * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
00022  * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
00023  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
00024  * OF THIS SOFTWARE.
00025  */
00026 
00027 #ifndef _TIFFPREDICT_
00028 #define _TIFFPREDICT_
00029 /*
00030  * ``Library-private'' Support for the Predictor Tag
00031  */
00032 
00033 /*
00034  * Codecs that want to support the Predictor tag must place
00035  * this structure first in their private state block so that
00036  * the predictor code can cast tif_data to find its state.
00037  */
00038 typedef struct {
00039         int             predictor;      /* predictor tag value */
00040         int             stride;         /* sample stride over data */
00041         tsize_t         rowsize;        /* tile/strip row size */
00042 
00043         TIFFCodeMethod  encoderow;      /* parent codec encode/decode row */
00044         TIFFCodeMethod  encodestrip;    /* parent codec encode/decode strip */
00045         TIFFCodeMethod  encodetile;     /* parent codec encode/decode tile */ 
00046         TIFFPostMethod  encodepfunc;    /* horizontal differencer */
00047  
00048         TIFFCodeMethod  decoderow;      /* parent codec encode/decode row */
00049         TIFFCodeMethod  decodestrip;    /* parent codec encode/decode strip */
00050         TIFFCodeMethod  decodetile;     /* parent codec encode/decode tile */ 
00051         TIFFPostMethod  decodepfunc;    /* horizontal accumulator */
00052 
00053         TIFFVGetMethod  vgetparent;     /* super-class method */
00054         TIFFVSetMethod  vsetparent;     /* super-class method */
00055         TIFFPrintMethod printdir;       /* super-class method */
00056         TIFFBoolMethod  setupdecode;    /* super-class method */
00057         TIFFBoolMethod  setupencode;    /* super-class method */
00058 } TIFFPredictorState;
00059 
00060 #if defined(__cplusplus)
00061 extern "C" {
00062 #endif
00063 extern  int TIFFPredictorInit(TIFF*);
00064 extern  int TIFFPredictorCleanup(TIFF*);
00065 #if defined(__cplusplus)
00066 }
00067 #endif
00068 #endif /* _TIFFPREDICT_ */
00069 
00070 /* vim: set ts=8 sts=8 sw=8 noet: */
00071 /*
00072  * Local Variables:
00073  * mode: c
00074  * c-basic-offset: 8
00075  * fill-column: 78
00076  * End:
00077  */