Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/*
2
 * This file is distributed with Ghostscript, but its author,
3
 * Tanmoy Bhattacharya (tanmoy@qcd.lanl.gov) hereby places it in the
4
 * public domain.
5
 *
6
 * The contents of this file were derived (indeed, largely copied) from
7
 * the file image.h on SGI's file server; there is no copyright on that file.
8
 */
9
 
10
/* $Id: gdevsgi.h,v 1.3 2002/02/21 22:24:52 giles Exp $*/
11
/* SGI raster file definitions */
12
 
13
#ifndef gdevsgi_INCLUDED
14
#  define gdevsgi_INCLUDED
15
 
16
#define IMAGIC 	0732
17
 
18
/* colormap of images */
19
#define CM_NORMAL		0
20
#define CM_DITHERED		1
21
#define CM_SCREEN		2
22
#define CM_COLORMAP		3
23
#define TYPEMASK		0xff00
24
#define BPPMASK			0x00ff
25
#define ITYPE_VERBATIM		0x0000
26
#define ITYPE_RLE		0x0100
27
#define ISRLE(type)		(((type) & 0xff00) == ITYPE_RLE)
28
#define ISVERBATIM(type)	(((type) & 0xff00) == ITYPE_VERBATIM)
29
#define BPP(type)		((type) & BPPMASK)
30
#define RLE(bpp)		(ITYPE_RLE | (bpp))
31
#define VERBATIM(bpp)		(ITYPE_VERBATIM | (bpp))
32
#define	IBUFSIZE(pixels)	((pixels+(pixels>>6))<<2)
33
#define	RLE_NOP			0x00
34
 
35
#define	ierror(p)		(((p)->flags&_IOERR)!=0)
36
#define	ifileno(p)		((p)->file)
37
#define	getpix(p)		(--(p)->cnt>=0 ? *(p)->ptr++ : ifilbuf(p))
38
#define putpix(p,x)		(--(p)->cnt>=0 \
39
				    ? ((int)(*(p)->ptr++=(unsigned)(x))) \
40
				    : iflsbuf(p,(unsigned)(x)))
41
 
42
typedef struct {
43
    unsigned short	imagic;		/* stuff saved on disk . . */
44
    unsigned short 	type;
45
    unsigned short 	dim;
46
    unsigned short 	xsize;
47
    unsigned short 	ysize;
48
    unsigned short 	zsize;
49
    unsigned long 	min_color;
50
    unsigned long 	max_color;
51
    unsigned long	wastebytes;	
52
    char 		name[80];
53
    unsigned long	colormap;
54
 
55
    long 		file;		/* stuff used in core only */
56
    unsigned short 	flags;
57
    short		dorev;
58
    short		x;
59
    short		y;
60
    short		z;
61
    short		cnt;
62
    unsigned short	*ptr;
63
    unsigned short	*base;
64
    unsigned short	*tmpbuf;
65
    unsigned long	offset;
66
    unsigned long	rleend;		/* for rle images */
67
    unsigned long	*rowstart;	/* for rle images */
68
    long		*rowsize;	/* for rle images */
69
} IMAGE;
70
 
71
#endif				/* gdevsgi_INCLUDED */