xenocara/dist/Mesa/progs/util/imagesgi.h
2006-11-25 18:49:17 +00:00

56 lines
1.9 KiB
C

/******************************************************************************
** Filename : imageSgi.h
** UNCLASSIFIED
**
** Description : Utility to read SGI image format files. This code was
** originally a SGI image loading utility provided with the
** Mesa 3D library @ http://www.mesa3d.org by Brain Paul.
** This has been extended to read all SGI image formats
** (e.g. INT, INTA, RGB, RGBA).
**
** Revision History:
** Date Name Description
** 06/08/99 BRC Initial Release
**
******************************************************************************/
#ifndef __IMAGESGI_H
#define __IMAGESGI_H
#define IMAGE_SGI_TYPE_VERBATIM 0
#define IMAGE_SGI_TYPE_RLE 1
struct sImageSgiHeader // 512 bytes
{
short magic; // IRIS image file magic number (474)
char type; // Storage format (e.g. RLE or VERBATIM)
char numBytesPerPixelChannel; // Number of bytes per pixel channel
unsigned short dim; // Number of dimensions (1 to 3)
unsigned short xsize; // Width (in pixels)
unsigned short ysize; // Height (in pixels)
unsigned short zsize; // Number of channels (1 to 4)
int minimumPixelValue; // Minimum pixel value (0 to 255)
int maximumPixelValue; // Maximum pixel value (0 to 255)
char padding1[4]; // (ignored)
char imageName[80]; // Image name
int colormap; // colormap ID (0=normal, 0=dithered,
// 2=screen, 3=colormap)
char padding2[404]; // (ignored)
};
struct sImageSgi
{
struct sImageSgiHeader header;
unsigned char *data;
};
#ifndef __IMAGESGI_CPP
// RGB image load utility
extern struct sImageSgi *ImageSgiOpen(char const * const fileName);
extern void ImageSgiClose(struct sImageSgi *image);
#endif
#endif /* __IMAGESGI_H */