Blame IlmImf/ImfCRgbaFile.h

Packit 0d464f
/*
Packit 0d464f
Packit 0d464f
Copyright (c) 2002, Industrial Light & Magic, a division of Lucas
Packit 0d464f
Digital Ltd. LLC
Packit 0d464f
Packit 0d464f
All rights reserved.
Packit 0d464f
Packit 0d464f
Redistribution and use in source and binary forms, with or without
Packit 0d464f
modification, are permitted provided that the following conditions are
Packit 0d464f
met:
Packit 0d464f
*       Redistributions of source code must retain the above copyright
Packit 0d464f
notice, this list of conditions and the following disclaimer.
Packit 0d464f
*       Redistributions in binary form must reproduce the above
Packit 0d464f
copyright notice, this list of conditions and the following disclaimer
Packit 0d464f
in the documentation and/or other materials provided with the
Packit 0d464f
distribution.
Packit 0d464f
*       Neither the name of Industrial Light & Magic nor the names of
Packit 0d464f
its contributors may be used to endorse or promote products derived
Packit 0d464f
from this software without specific prior written permission. 
Packit 0d464f
Packit 0d464f
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
Packit 0d464f
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
Packit 0d464f
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
Packit 0d464f
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
Packit 0d464f
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
Packit 0d464f
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
Packit 0d464f
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
Packit 0d464f
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
Packit 0d464f
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
Packit 0d464f
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Packit 0d464f
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Packit 0d464f
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
#ifndef INCLUDED_IMF_C_RGBA_FILE_H
Packit 0d464f
#define INCLUDED_IMF_C_RGBA_FILE_H
Packit 0d464f
Packit 0d464f
#include "ImfExport.h"
Packit 0d464f
Packit 0d464f
#include <stdlib.h>
Packit 0d464f
Packit 0d464f
#ifdef __cplusplus
Packit 0d464f
extern "C" {
Packit 0d464f
#endif
Packit 0d464f
Packit 0d464f
/*
Packit 0d464f
** Interpreting unsigned shorts as 16-bit floating point numbers
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
typedef unsigned short ImfHalf;
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
void	ImfFloatToHalf (float f,
Packit 0d464f
			ImfHalf *h);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
void	ImfFloatToHalfArray (int n,
Packit 0d464f
			    const float f[/*n*/],
Packit 0d464f
			    ImfHalf h[/*n*/]);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
float	ImfHalfToFloat (ImfHalf h);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
void	ImfHalfToFloatArray (int n,
Packit 0d464f
			    const ImfHalf h[/*n*/],
Packit 0d464f
			    float f[/*n*/]);
Packit 0d464f
Packit 0d464f
/*
Packit 0d464f
** RGBA pixel; memory layout must be the same as struct Imf::Rgba.
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
struct ImfRgba
Packit 0d464f
{
Packit 0d464f
    ImfHalf	r;
Packit 0d464f
    ImfHalf	g;
Packit 0d464f
    ImfHalf	b;
Packit 0d464f
    ImfHalf	a;
Packit 0d464f
};
Packit 0d464f
Packit 0d464f
typedef struct ImfRgba ImfRgba;
Packit 0d464f
Packit 0d464f
/*
Packit 0d464f
** Magic number; this must be the same as Imf::MAGIC
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
#define IMF_MAGIC               20000630
Packit 0d464f
Packit 0d464f
/*
Packit 0d464f
** Version number; this must be the same as Imf::EXR_VERSION
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
#define IMF_VERSION_NUMBER      2
Packit 0d464f
Packit 0d464f
/*
Packit 0d464f
** Line order; values must the the same as in Imf::LineOrder.
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
#define IMF_INCREASING_Y	0
Packit 0d464f
#define IMF_DECREASING_Y	1
Packit 0d464f
#define IMF_RAMDOM_Y		2
Packit 0d464f
Packit 0d464f
Packit 0d464f
/*
Packit 0d464f
** Compression types; values must be the same as in Imf::Compression.
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
#define IMF_NO_COMPRESSION	0
Packit 0d464f
#define IMF_RLE_COMPRESSION	1
Packit 0d464f
#define IMF_ZIPS_COMPRESSION	2
Packit 0d464f
#define IMF_ZIP_COMPRESSION	3
Packit 0d464f
#define IMF_PIZ_COMPRESSION	4
Packit 0d464f
#define IMF_PXR24_COMPRESSION	5
Packit 0d464f
#define IMF_B44_COMPRESSION	6
Packit 0d464f
#define IMF_B44A_COMPRESSION	7
Packit 0d464f
Packit 0d464f
Packit 0d464f
/*
Packit 0d464f
** Channels; values must be the same as in Imf::RgbaChannels.
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
#define IMF_WRITE_R		0x01
Packit 0d464f
#define IMF_WRITE_G		0x02
Packit 0d464f
#define IMF_WRITE_B		0x04
Packit 0d464f
#define IMF_WRITE_A		0x08
Packit 0d464f
#define IMF_WRITE_Y		0x10
Packit 0d464f
#define IMF_WRITE_C		0x20
Packit 0d464f
#define IMF_WRITE_RGB		0x07
Packit 0d464f
#define IMF_WRITE_RGBA		0x0f
Packit 0d464f
#define IMF_WRITE_YC		0x30
Packit 0d464f
#define IMF_WRITE_YA		0x18
Packit 0d464f
#define IMF_WRITE_YCA		0x38
Packit 0d464f
Packit 0d464f
Packit 0d464f
/*
Packit 0d464f
** Level modes; values must be the same as in Imf::LevelMode
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
#define IMF_ONE_LEVEL		0
Packit 0d464f
#define IMF_MIPMAP_LEVELS	1
Packit 0d464f
#define IMF_RIPMAP_LEVELS	2
Packit 0d464f
Packit 0d464f
Packit 0d464f
/*
Packit 0d464f
** Level rounding modes; values must be the same as in Imf::LevelRoundingMode
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
#define IMF_ROUND_DOWN		0
Packit 0d464f
#define IMF_ROUND_UP		1
Packit 0d464f
Packit 0d464f
Packit 0d464f
/*
Packit 0d464f
** RGBA file header
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
struct ImfHeader;
Packit 0d464f
typedef struct ImfHeader ImfHeader;
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
ImfHeader *	ImfNewHeader (void);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
void		ImfDeleteHeader (ImfHeader *hdr);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
ImfHeader *	ImfCopyHeader (const ImfHeader *hdr);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
void		ImfHeaderSetDisplayWindow (ImfHeader *hdr,
Packit 0d464f
					   int xMin, int yMin,
Packit 0d464f
					   int xMax, int yMax);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
void		ImfHeaderDisplayWindow (const ImfHeader *hdr,
Packit 0d464f
					int *xMin, int *yMin,
Packit 0d464f
					int *xMax, int *yMax);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
void		ImfHeaderSetDataWindow (ImfHeader *hdr,
Packit 0d464f
					int xMin, int yMin,
Packit 0d464f
					int xMax, int yMax);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
void		ImfHeaderDataWindow (const ImfHeader *hdr,
Packit 0d464f
				     int *xMin, int *yMin,
Packit 0d464f
				     int *xMax, int *yMax);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
void		ImfHeaderSetPixelAspectRatio (ImfHeader *hdr,
Packit 0d464f
					      float pixelAspectRatio);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
float		ImfHeaderPixelAspectRatio (const ImfHeader *hdr);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
void		ImfHeaderSetScreenWindowCenter (ImfHeader *hdr,
Packit 0d464f
						float x, float y);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
void		ImfHeaderScreenWindowCenter (const ImfHeader *hdr,
Packit 0d464f
					     float *x, float *y);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
void		ImfHeaderSetScreenWindowWidth (ImfHeader *hdr,
Packit 0d464f
					       float width);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
float		ImfHeaderScreenWindowWidth (const ImfHeader *hdr);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
void		ImfHeaderSetLineOrder (ImfHeader *hdr,
Packit 0d464f
				       int lineOrder);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderLineOrder (const ImfHeader *hdr);
Packit 0d464f
			    
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
void		ImfHeaderSetCompression (ImfHeader *hdr,
Packit 0d464f
					 int compression);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderCompression (const ImfHeader *hdr);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderSetIntAttribute (ImfHeader *hdr,
Packit 0d464f
					  const char name[],
Packit 0d464f
					  int value);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderIntAttribute (const ImfHeader *hdr,
Packit 0d464f
				       const char name[],
Packit 0d464f
				       int *value);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderSetFloatAttribute (ImfHeader *hdr,
Packit 0d464f
					    const char name[],
Packit 0d464f
					    float value);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderSetDoubleAttribute (ImfHeader *hdr,
Packit 0d464f
					     const char name[],
Packit 0d464f
					     double value);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderFloatAttribute (const ImfHeader *hdr,
Packit 0d464f
				         const char name[],
Packit 0d464f
				         float *value);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderDoubleAttribute (const ImfHeader *hdr,
Packit 0d464f
				          const char name[],
Packit 0d464f
				          double *value);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderSetStringAttribute (ImfHeader *hdr,
Packit 0d464f
					     const char name[],
Packit 0d464f
					     const char value[]);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderStringAttribute (const ImfHeader *hdr,
Packit 0d464f
				         const char name[],
Packit 0d464f
					  const char **value);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderSetBox2iAttribute (ImfHeader *hdr,
Packit 0d464f
					    const char name[],
Packit 0d464f
					    int xMin, int yMin,
Packit 0d464f
					    int xMax, int yMax);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderBox2iAttribute (const ImfHeader *hdr,
Packit 0d464f
					 const char name[],
Packit 0d464f
					 int *xMin, int *yMin,
Packit 0d464f
					 int *xMax, int *yMax);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderSetBox2fAttribute (ImfHeader *hdr,
Packit 0d464f
					    const char name[],
Packit 0d464f
					    float xMin, float yMin,
Packit 0d464f
					    float xMax, float yMax);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderBox2fAttribute (const ImfHeader *hdr,
Packit 0d464f
					 const char name[],
Packit 0d464f
					 float *xMin, float *yMin,
Packit 0d464f
					 float *xMax, float *yMax);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderSetV2iAttribute (ImfHeader *hdr,
Packit 0d464f
				         const char name[],
Packit 0d464f
				         int x, int y);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderV2iAttribute (const ImfHeader *hdr,
Packit 0d464f
				       const char name[],
Packit 0d464f
				       int *x, int *y);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderSetV2fAttribute (ImfHeader *hdr,
Packit 0d464f
				          const char name[],
Packit 0d464f
				          float x, float y);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderV2fAttribute (const ImfHeader *hdr,
Packit 0d464f
				       const char name[],
Packit 0d464f
				       float *x, float *y);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderSetV3iAttribute (ImfHeader *hdr,
Packit 0d464f
				          const char name[],
Packit 0d464f
				          int x, int y, int z);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderV3iAttribute (const ImfHeader *hdr,
Packit 0d464f
				       const char name[],
Packit 0d464f
				       int *x, int *y, int *z);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderSetV3fAttribute (ImfHeader *hdr,
Packit 0d464f
				          const char name[],
Packit 0d464f
				          float x, float y, float z);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderV3fAttribute (const ImfHeader *hdr,
Packit 0d464f
				       const char name[],
Packit 0d464f
				       float *x, float *y, float *z);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderSetM33fAttribute (ImfHeader *hdr,
Packit 0d464f
					   const char name[],
Packit 0d464f
					   const float m[3][3]);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderM33fAttribute (const ImfHeader *hdr,
Packit 0d464f
					const char name[],
Packit 0d464f
					float m[3][3]);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderSetM44fAttribute (ImfHeader *hdr,
Packit 0d464f
					   const char name[],
Packit 0d464f
					   const float m[4][4]);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfHeaderM44fAttribute (const ImfHeader *hdr,
Packit 0d464f
					const char name[],
Packit 0d464f
					float m[4][4]);
Packit 0d464f
Packit 0d464f
/*
Packit 0d464f
** RGBA output file
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
struct ImfOutputFile;
Packit 0d464f
typedef struct ImfOutputFile ImfOutputFile;
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
ImfOutputFile *	ImfOpenOutputFile (const char name[],
Packit 0d464f
				   const ImfHeader *hdr,
Packit 0d464f
				   int channels);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int			ImfCloseOutputFile (ImfOutputFile *out);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int			ImfOutputSetFrameBuffer (ImfOutputFile *out,
Packit 0d464f
						 const ImfRgba *base,
Packit 0d464f
						 size_t xStride,
Packit 0d464f
						 size_t yStride);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int			ImfOutputWritePixels (ImfOutputFile *out,
Packit 0d464f
					      int numScanLines);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int			ImfOutputCurrentScanLine (const ImfOutputFile *out);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
const ImfHeader *	ImfOutputHeader (const ImfOutputFile *out);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int			ImfOutputChannels (const ImfOutputFile *out);
Packit 0d464f
Packit 0d464f
Packit 0d464f
/*
Packit 0d464f
** Tiled RGBA output file
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
struct ImfTiledOutputFile;
Packit 0d464f
typedef struct ImfTiledOutputFile ImfTiledOutputFile;
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
ImfTiledOutputFile *	ImfOpenTiledOutputFile (const char name[],
Packit 0d464f
					        const ImfHeader *hdr,
Packit 0d464f
						int channels,
Packit 0d464f
						int xSize, int ySize,
Packit 0d464f
						int mode, int rmode);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfCloseTiledOutputFile (ImfTiledOutputFile *out);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfTiledOutputSetFrameBuffer (ImfTiledOutputFile *out,
Packit 0d464f
					      const ImfRgba *base,
Packit 0d464f
					      size_t xStride,
Packit 0d464f
					      size_t yStride);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfTiledOutputWriteTile (ImfTiledOutputFile *out,
Packit 0d464f
					 int dx, int dy,
Packit 0d464f
					 int lx, int ly);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int             ImfTiledOutputWriteTiles (ImfTiledOutputFile *out,
Packit 0d464f
                                          int dxMin, int dxMax,
Packit 0d464f
                                          int dyMin, int dyMax,
Packit 0d464f
                                          int lx, int ly);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
const ImfHeader *	ImfTiledOutputHeader (const ImfTiledOutputFile *out);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfTiledOutputChannels (const ImfTiledOutputFile *out);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfTiledOutputTileXSize (const ImfTiledOutputFile *out);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfTiledOutputTileYSize (const ImfTiledOutputFile *out);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfTiledOutputLevelMode (const ImfTiledOutputFile *out);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int	       	ImfTiledOutputLevelRoundingMode
Packit 0d464f
						(const ImfTiledOutputFile *out);
Packit 0d464f
Packit 0d464f
Packit 0d464f
/*
Packit 0d464f
** RGBA input file
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
struct ImfInputFile;
Packit 0d464f
typedef struct ImfInputFile ImfInputFile;
Packit 0d464f
Packit 0d464f
ImfInputFile *		ImfOpenInputFile (const char name[]);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int			ImfCloseInputFile (ImfInputFile *in);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int			ImfInputSetFrameBuffer (ImfInputFile *in,
Packit 0d464f
						ImfRgba *base,
Packit 0d464f
						size_t xStride,
Packit 0d464f
						size_t yStride);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int			ImfInputReadPixels (ImfInputFile *in,
Packit 0d464f
					    int scanLine1,
Packit 0d464f
					    int scanLine2);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
const ImfHeader *	ImfInputHeader (const ImfInputFile *in);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int			ImfInputChannels (const ImfInputFile *in);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
const char *            ImfInputFileName (const ImfInputFile *in);
Packit 0d464f
Packit 0d464f
Packit 0d464f
/*
Packit 0d464f
** Tiled RGBA input file
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
struct ImfTiledInputFile;
Packit 0d464f
typedef struct ImfTiledInputFile ImfTiledInputFile;
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
ImfTiledInputFile *	ImfOpenTiledInputFile (const char name[]);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfCloseTiledInputFile (ImfTiledInputFile *in);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfTiledInputSetFrameBuffer (ImfTiledInputFile *in,
Packit 0d464f
					     ImfRgba *base,
Packit 0d464f
					     size_t xStride,
Packit 0d464f
					     size_t yStride);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfTiledInputReadTile (ImfTiledInputFile *in,
Packit 0d464f
				       int dx, int dy,
Packit 0d464f
				       int lx, int ly);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfTiledInputReadTiles (ImfTiledInputFile *in,
Packit 0d464f
                                        int dxMin, int dxMax,
Packit 0d464f
                                        int dyMin, int dyMax,
Packit 0d464f
                                        int lx, int ly);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
const ImfHeader *	ImfTiledInputHeader (const ImfTiledInputFile *in);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfTiledInputChannels (const ImfTiledInputFile *in);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
const char *		ImfTiledInputFileName (const ImfTiledInputFile *in);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfTiledInputTileXSize (const ImfTiledInputFile *in);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfTiledInputTileYSize (const ImfTiledInputFile *in);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int		ImfTiledInputLevelMode (const ImfTiledInputFile *in);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
int	       	ImfTiledInputLevelRoundingMode
Packit 0d464f
					       (const ImfTiledInputFile *in);
Packit 0d464f
Packit 0d464f
/*
Packit 0d464f
** Lookup tables
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
struct ImfLut;
Packit 0d464f
typedef struct ImfLut ImfLut;
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
ImfLut *		ImfNewRound12logLut (int channels);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
ImfLut *		ImfNewRoundNBitLut (unsigned int n, int channels);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
void			ImfDeleteLut (ImfLut *lut);
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
void			ImfApplyLut (ImfLut *lut,
Packit 0d464f
				     ImfRgba *data,
Packit 0d464f
				     int nData,
Packit 0d464f
				     int stride);
Packit 0d464f
/*
Packit 0d464f
** Most recent error message
Packit 0d464f
*/
Packit 0d464f
Packit 0d464f
IMF_EXPORT 
Packit 0d464f
const char *		ImfErrorMessage (void);
Packit 0d464f
Packit 0d464f
Packit 0d464f
#ifdef __cplusplus
Packit 0d464f
} /* extern "C" */
Packit 0d464f
#endif
Packit 0d464f
Packit 0d464f
#endif