PBRT
|
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 */