home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
unix
/
volume19
/
fbm
/
part03
/
fbm.h
< prev
next >
Wrap
C/C++ Source or Header
|
1989-06-08
|
4KB
|
112 lines
/*****************************************************************
* fbm.h: FBM Library 0.9 (Beta Test) 07-Mar-89 Michael Mauldin
*
* Copyright (C) 1989 by Michael Mauldin. Permission is granted to
* use this file in whole or in part provided that you do not sell it
* for profit and that this copyright notice is retained unchanged.
*
* fbm.h: Fuzzy Bitmap Definition
*
* USAGE
* # include <fbm.h>
*
* EDITLOG
* LastEditDate = Tue Mar 7 19:52:53 1989 - Michael Mauldin
* LastFileName = /usr2/mlm/src/misc/fbm/fbm.h
*
* HISTORY
* 07-Mar-89 Michael Mauldin (mlm) at Carnegie Mellon University
* Beta release (version 0.9) mlm@cs.cmu.edu.
*
* 20-Aug-88 Michael Mauldin (mlm) at Carnegie-Mellon University
* Created.
*****************************************************************/
# define FBM_MAX_TITLE 80 /* For title and credits */
# define BLACK 0 /* For 8bit files */
# define WHITE 255 /* For 8bit files */
# define BYTE 256 /* For 8bit files */
# define BIG 1 /* msb first byte order */
# define LITTLE 0 /* lsb first byte order */
# define BYTESPERLINE 32 /* For PostScript output */
# define BLANKS " "
# define SKIPARG while (*++(*argv)); --(*argv)
# define CLRARG strncpy (*argv, BLANKS, strlen (*argv)); \
while (*++(*argv)); --(*argv)
# define FMT_ATK 1 /* Andrew toolkit raster format */
# define FMT_FACE 2 /* Bennet Yee's 1bit Face format */
# define FMT_FBM 3 /* + Fuzzy bitmap format */
# define FMT_GIF 4 /* Compuserve Graphics Interchange */
# define FMT_IFF 5 /* Amiga Interchange Format File */
# define FMT_LEAF 6 /* InterLeaf image format */
# define FMT_MCP 7 /* Macpaint format */
# define FMT_PBM 8 /* Poskanzer 1bit format */
# define FMT_PCX 9 /* PCX format */
# define FMT_SUN 10 /* + Sun rasterfile */
# define FMT_TIFF 11 /* Tagged IFF, Next, Macintosh */
# define FMT_X11 12 /* X11 format */
# define FMTCHAR ".ABFGILMPZSTX"
# define DEF_8BIT FMT_FBM
# define DEF_1BIT FMT_SUN
/* An FBM bitmap header in memory */
typedef struct fbm_hdr_struct {
int cols; /* Width in pixels */
int rows; /* Height in pixels */
int planes; /* Depth (1 for B+W, 3 for RGB) */
int bits; /* Bits per pixel */
int physbits; /* Bits to store each pixel */
int rowlen; /* Length of a row in bytes */
int plnlen; /* Length of a plane in bytes */
int clrlen; /* Length of color map */
double aspect; /* ratio of Y to X of one pixel */
char title[FBM_MAX_TITLE]; /* Null terminated title */
char credits[FBM_MAX_TITLE]; /* Null terminated credits */
} FBMHDR;
# define FBM_MAGIC "%bitmap"
# define BM_MAGIC ('!' << 8 | '!')
# define PCX_MAGIC 0xa
# define GIF_MAGIC "GIF87a"
# define IFF_MAGIC "FORM"
# define SUN_MAGIC 0x59a66a95
/* FBM bitmap headers in files (null terminated 12 character ascii strings) */
typedef struct fbm_filehdr_struct {
char magic[8]; /* 2 bytes FBM_MAGIC number */
char cols[8]; /* Width in pixels */
char rows[8]; /* Height in pixels */
char planes[8]; /* Depth (1 for B+W, 3 for RGB) */
char bits[8]; /* Bits per pixel */
char physbits[8]; /* Bits to store each pixel */
char rowlen[12]; /* Length of a row in bytes */
char plnlen[12]; /* Length of a plane in bytes */
char clrlen[12]; /* Length of colormap in bytes */
char aspect[12]; /* ratio of Y to X of one pixel */
char title[FBM_MAX_TITLE]; /* Null terminated title */
char credits[FBM_MAX_TITLE]; /* Null terminated credits */
} FBMFILEHDR;
/* An FBM bitmap in memory */
typedef struct fbm_struct {
FBMHDR hdr; /* Bitmap header */
unsigned char *cm; /* Pointer to colormap */
unsigned char *bm; /* Pointer to raw bits */
} FBM;
/* Functions */
double atof ();
char *strcpy(), *strncpy(), *malloc();
long time (), get_long ();
int get_short ();
/* Macro for getting next magic char */
# define NEXTMCH(F,S,L) (((L) > 0) ? ((L)--, *(S)++) : getc (F))