Blame IlmImf/ImfCRgbaFile.h

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