]>
git.saurik.com Git - wxWidgets.git/blob - src/tiff/libtiff/tif_dumpmode.c
   1 /* $Header: /cvs/maptools/cvsroot/libtiff/libtiff/tif_dumpmode.c,v 1.4 2005/12/21 12:23:13 joris Exp $ */ 
   4  * Copyright (c) 1988-1997 Sam Leffler 
   5  * Copyright (c) 1991-1997 Silicon Graphics, Inc. 
   7  * Permission to use, copy, modify, distribute, and sell this software and  
   8  * its documentation for any purpose is hereby granted without fee, provided 
   9  * that (i) the above copyright notices and this permission notice appear in 
  10  * all copies of the software and related documentation, and (ii) the names of 
  11  * Sam Leffler and Silicon Graphics may not be used in any advertising or 
  12  * publicity relating to the software without the specific, prior written 
  13  * permission of Sam Leffler and Silicon Graphics. 
  15  * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,  
  16  * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY  
  17  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.   
  19  * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR 
  20  * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, 
  21  * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 
  22  * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF  
  23  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE  
  30  * "Null" Compression Algorithm Support. 
  35  * Encode a hunk of pixels. 
  38 DumpModeEncode(TIFF
* tif
, tidata_t pp
, tsize_t cc
, tsample_t s
) 
  45                 if (tif
->tif_rawcc 
+ n 
> tif
->tif_rawdatasize
) 
  46                         n 
= tif
->tif_rawdatasize 
- tif
->tif_rawcc
; 
  51                  * Avoid copy if client has setup raw 
  52                  * data buffer to avoid extra copy. 
  54                 if (tif
->tif_rawcp 
!= pp
) 
  55                         _TIFFmemcpy(tif
->tif_rawcp
, pp
, n
); 
  60                 if (tif
->tif_rawcc 
>= tif
->tif_rawdatasize 
&& 
  68  * Decode a hunk of pixels. 
  71 DumpModeDecode(TIFF
* tif
, tidata_t buf
, tsize_t cc
, tsample_t s
) 
  74         if (tif
->tif_rawcc 
< cc
) { 
  75                 TIFFErrorExt(tif
->tif_clientdata
, tif
->tif_name
, 
  76                     "DumpModeDecode: Not enough data for scanline %d", 
  81          * Avoid copy if client has setup raw 
  82          * data buffer to avoid extra copy. 
  84         if (tif
->tif_rawcp 
!= buf
) 
  85                 _TIFFmemcpy(buf
, tif
->tif_rawcp
, cc
); 
  92  * Seek forwards nrows in the current strip. 
  95 DumpModeSeek(TIFF
* tif
, uint32 nrows
) 
  97         tif
->tif_rawcp 
+= nrows 
* tif
->tif_scanlinesize
; 
  98         tif
->tif_rawcc 
-= nrows 
* tif
->tif_scanlinesize
; 
 103  * Initialize dump mode. 
 106 TIFFInitDumpMode(TIFF
* tif
, int scheme
) 
 109         tif
->tif_decoderow 
= DumpModeDecode
; 
 110         tif
->tif_decodestrip 
= DumpModeDecode
; 
 111         tif
->tif_decodetile 
= DumpModeDecode
; 
 112         tif
->tif_encoderow 
= DumpModeEncode
; 
 113         tif
->tif_encodestrip 
= DumpModeEncode
; 
 114         tif
->tif_encodetile 
= DumpModeEncode
; 
 115         tif
->tif_seek 
= DumpModeSeek
;