iff/iff.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#include "u_mem.h"
#include "iff.h"
#include "cfile.h"
#include "error.h"

Classes

struct  pal_entry
struct  iff_bitmap_header
struct  fake_file

Defines

#define COMPRESS   1
#define WRITE_TINY   0
#define MIN_COMPRESS_WIDTH   65
#define TYPE_PBM   0
#define TYPE_ILBM   1
#define cmpNone   0
#define cmpByteRun1   1
#define mskNone   0
#define mskHasMask   1
#define mskHasTransparentColor   2
#define MAKE_SIG(a, b, c, d)   (((long)(a)<<24)+((long)(b)<<16)+((c)<<8)+(d))
#define form_sig   MAKE_SIG('F','O','R','M')
#define ilbm_sig   MAKE_SIG('I','L','B','M')
#define body_sig   MAKE_SIG('B','O','D','Y')
#define pbm_sig   MAKE_SIG('P','B','M',' ')
#define bmhd_sig   MAKE_SIG('B','M','H','D')
#define anhd_sig   MAKE_SIG('A','N','H','D')
#define cmap_sig   MAKE_SIG('C','M','A','P')
#define tiny_sig   MAKE_SIG('T','I','N','Y')
#define anim_sig   MAKE_SIG('A','N','I','M')
#define dlta_sig   MAKE_SIG('D','L','T','A')
#define get_sig(f)   get_long(f)
#define INDEX_TO_15BPP(i)   ((short)((((palptr[(i)].r/2)&31)<<10)+(((palptr[(i)].g/2)&31)<<5)+((palptr[(i)].b/2 )&31)))
#define BMHD_SIZE   20
#define EVEN(a)   ((a+1)&0xfffffffel)

Typedefs

typedef fake_file FFILE

Functions

int put_byte (unsigned char c, FILE *f)
void gr_bm_bitblt (int w, int h, int dx, int dy, int sx, int sy, grs_bitmap *src, grs_bitmap *dest)
int put_sig (long sig, FILE *f)
 * printf("%c%c%c%c",*(&s+3),*(&s+2),*(&s+1),s);*/
int get_word (FFILE *f)
int put_word (int n, FILE *f)
int put_long (long n, FILE *f)
char get_byte (FFILE *f)
long get_long (FFILE *f)
int parse_bmhd (FFILE *ifile, long len, iff_bitmap_header *bmheader)
int parse_body (FFILE *ifile, long len, iff_bitmap_header *bmheader)
int parse_delta (FFILE *ifile, long len, iff_bitmap_header *bmheader)
void skip_chunk (FFILE *ifile, long len)
int iff_parse_ilbm_pbm (FFILE *ifile, long form_type, iff_bitmap_header *bmheader, int form_len, grs_bitmap *prev_bm)
int convert_ilbm_to_pbm (iff_bitmap_header *bmheader)
int convert_rgb15 (grs_bitmap *bm, iff_bitmap_header *bmheader)
int open_fake_file (char *ifilename, FFILE *ffile)
void close_fake_file (FFILE *f)
void copy_iff_to_grs (grs_bitmap *bm, iff_bitmap_header *bmheader)
int iff_parse_bitmap (FFILE *ifile, grs_bitmap *bm, int bitmap_type, byte *palette, grs_bitmap *prev_bm)
int iff_read_bitmap (char *ifilename, grs_bitmap *bm, int bitmap_type, ubyte *palette)
int iff_read_into_bitmap (char *ifilename, grs_bitmap *bm, byte *palette)
int write_bmhd (FILE *ofile, iff_bitmap_header *bitmap_header)
int write_pal (FILE *ofile, iff_bitmap_header *bitmap_header)
int rle_span (ubyte *dest, ubyte *src, int len)
int write_body (FILE *ofile, iff_bitmap_header *bitmap_header, int compression_on)
int write_pbm (FILE *ofile, iff_bitmap_header *bitmap_header, int compression_on)
int iff_write_bitmap (char *ofilename, grs_bitmap *bm, ubyte *palette)
int iff_read_animbrush (char *ifilename, grs_bitmap **bm_list, int max_bitmaps, int *n_bitmaps, ubyte *palette)
char * iff_errormsg (int error_number)

Variables

ubyte iff_transparent_color
ubyte iff_has_transparency
char error_messages []

Define Documentation

#define anhd_sig   MAKE_SIG('A','N','H','D')
 

#define anim_sig   MAKE_SIG('A','N','I','M')
 

#define bmhd_sig   MAKE_SIG('B','M','H','D')
 

#define BMHD_SIZE   20
 

#define body_sig   MAKE_SIG('B','O','D','Y')
 

#define cmap_sig   MAKE_SIG('C','M','A','P')
 

#define cmpByteRun1   1
 

#define cmpNone   0
 

#define COMPRESS   1
 

#define dlta_sig   MAKE_SIG('D','L','T','A')
 

#define EVEN  )     ((a+1)&0xfffffffel)
 

#define form_sig   MAKE_SIG('F','O','R','M')
 

#define get_sig  )     get_long(f)
 

#define ilbm_sig   MAKE_SIG('I','L','B','M')
 

#define INDEX_TO_15BPP  )     ((short)((((palptr[(i)].r/2)&31)<<10)+(((palptr[(i)].g/2)&31)<<5)+((palptr[(i)].b/2 )&31)))
 

#define MAKE_SIG a,
b,
c,
 )     (((long)(a)<<24)+((long)(b)<<16)+((c)<<8)+(d))
 

#define MIN_COMPRESS_WIDTH   65
 

#define mskHasMask   1
 

#define mskHasTransparentColor   2
 

#define mskNone   0
 

#define pbm_sig   MAKE_SIG('P','B','M',' ')
 

#define tiny_sig   MAKE_SIG('T','I','N','Y')
 

#define TYPE_ILBM   1
 

#define TYPE_PBM   0
 

#define WRITE_TINY   0
 


Typedef Documentation

typedef struct fake_file FFILE
 


Function Documentation

void close_fake_file FFILE f  ) 
 

int convert_ilbm_to_pbm iff_bitmap_header bmheader  ) 
 

int convert_rgb15 grs_bitmap bm,
iff_bitmap_header bmheader
 

void copy_iff_to_grs grs_bitmap bm,
iff_bitmap_header bmheader
 

char get_byte FFILE f  ) 
 

long get_long FFILE f  ) 
 

int get_word FFILE f  ) 
 

void gr_bm_bitblt int  w,
int  h,
int  dx,
int  dy,
int  sx,
int  sy,
grs_bitmap src,
grs_bitmap dest
 

char* iff_errormsg int  error_number  ) 
 

int iff_parse_bitmap FFILE ifile,
grs_bitmap bm,
int  bitmap_type,
byte palette,
grs_bitmap prev_bm
 

int iff_parse_ilbm_pbm FFILE ifile,
long  form_type,
iff_bitmap_header bmheader,
int  form_len,
grs_bitmap prev_bm
 

int iff_read_animbrush char *  ifilename,
grs_bitmap **  bm_list,
int  max_bitmaps,
int *  n_bitmaps,
ubyte palette
 

int iff_read_bitmap char *  ifilename,
grs_bitmap bm,
int  bitmap_type,
ubyte palette
 

int iff_read_into_bitmap char *  ifilename,
grs_bitmap bm,
byte palette
 

int iff_write_bitmap char *  ofilename,
grs_bitmap bm,
ubyte palette
 

int open_fake_file char *  ifilename,
FFILE ffile
 

int parse_bmhd FFILE ifile,
long  len,
iff_bitmap_header bmheader
 

int parse_body FFILE ifile,
long  len,
iff_bitmap_header bmheader
 

int parse_delta FFILE ifile,
long  len,
iff_bitmap_header bmheader
 

int put_byte unsigned char  c,
FILE *  f
 

int put_long long  n,
FILE *  f
 

int put_sig long  sig,
FILE *  f
 

* printf("%c%c%c%c",*(&s+3),*(&s+2),*(&s+1),s);*/

int put_word int  n,
FILE *  f
 

int rle_span ubyte dest,
ubyte src,
int  len
 

void skip_chunk FFILE ifile,
long  len
 

int write_bmhd FILE *  ofile,
iff_bitmap_header bitmap_header
 

int write_body FILE *  ofile,
iff_bitmap_header bitmap_header,
int  compression_on
 

int write_pal FILE *  ofile,
iff_bitmap_header bitmap_header
 

int write_pbm FILE *  ofile,
iff_bitmap_header bitmap_header,
int  compression_on
 


Variable Documentation

char error_messages[]
 

Initial value:

 {
        "No error.\0"
        "Not enough mem for loading or processing bitmap.\0"
        "IFF file has unknown FORM type.\0"
        "Not an IFF file.\0"
        "Cannot open file.\0"
        "Tried to save invalid type, like BM_RGB15.\0"
        "Bad data in file.\0"
        "ANIM file cannot be loaded with normal bitmap loader.\0"
        "Normal bitmap file cannot be loaded with anim loader.\0"
        "Array not big enough on anim brush read.\0"
        "Unknown mask type in bitmap header.\0"
        "Error reading file.\0"
}

ubyte iff_has_transparency
 

ubyte iff_transparent_color
 


Generated on Mon Aug 28 20:55:31 2006 for D1X-Rebirth by  doxygen 1.4.6