1
/******************************************************************************
2
* tif_ovrcache.h,v 1.3 2005/05/25 09:03:16 dron Exp
4
* Project: TIFF Overview Builder
5
* Purpose: Library functions to maintain two rows of tiles or two strips
6
* of data for output overviews as an output cache.
7
* Author: Frank Warmerdam, warmerdam@pobox.com
9
* This code could potentially be used by other applications wanting to
10
* manage a once-through write cache.
12
******************************************************************************
13
* Copyright (c) 2000, Frank Warmerdam
15
* Permission is hereby granted, free of charge, to any person obtaining a
16
* copy of this software and associated documentation files (the "Software"),
17
* to deal in the Software without restriction, including without limitation
18
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
19
* and/or sell copies of the Software, and to permit persons to whom the
20
* Software is furnished to do so, subject to the following conditions:
22
* The above copyright notice and this permission notice shall be included
23
* in all copies or substantial portions of the Software.
25
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
26
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
28
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
30
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
31
* DEALINGS IN THE SOFTWARE.
32
******************************************************************************
35
#ifndef TIF_OVRCACHE_H_INCLUDED
36
#define TIF_OVRCACHE_H_INCLUDED
40
#if defined(__cplusplus)
54
uint32 nBytesPerBlock;
60
int nBlockOffset; /* what block is the first in papabyBlocks? */
61
unsigned char *pabyRow1Blocks;
62
unsigned char *pabyRow2Blocks;
70
TIFFOvrCache *TIFFCreateOvrCache( TIFF *hTIFF, int nDirOffset );
71
unsigned char *TIFFGetOvrBlock( TIFFOvrCache *psCache, int iTileX, int iTileY,
73
unsigned char *TIFFGetOvrBlock_Subsampled( TIFFOvrCache *psCache, int iTileX, int iTileY );
74
void TIFFDestroyOvrCache( TIFFOvrCache * );
76
void TIFFBuildOverviews( TIFF *, int, int *, int, const char *,
77
int (*)(double,void*), void * );
79
void TIFF_ProcessFullResBlock( TIFF *hTIFF, int nPlanarConfig,
80
int bSubsampled, int nHorSamples, int nVerSamples,
81
int nOverviews, int * panOvList,
83
int nSamples, TIFFOvrCache ** papoRawBIs,
84
int nSXOff, int nSYOff,
85
unsigned char *pabySrcTile,
86
int nBlockXSize, int nBlockYSize,
87
int nSampleFormat, const char * pszResampling );
89
uint32 TIFF_WriteOverview( TIFF *, int, int, int, int, int, int, int,
90
int, int, int, int, unsigned short *,
91
unsigned short *, unsigned short *, int,
96
#if defined(__cplusplus)
100
#endif /* ndef TIF_OVRCACHE_H_INCLUDED */