home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 3
/
goldfish_volume_3.bin
/
files
/
gfx
/
misc
/
getilbm
/
getilbm_proto.h
< prev
next >
Wrap
C/C++ Source or Header
|
1994-11-11
|
3KB
|
81 lines
//===========================================================================
// GETILBM_PROTO.H -- by Alex Matulich matulich_alex@SEAA.NAVSEA.NAVY.MIL
//
// Prototypes for user-callable functions in getilbm.c.
// Include this file in all external modules needing the ILBM routines.
//
// For SAS C/C++ 6.xx. Compile with IGNORE=51 to disable warnings for
// C++ comments (I got addicted to those C++ comments...)
//
// See the comments in getilbm.c for information on enabling or disabling
// certain features.
//===========================================================================
#ifndef GRAPHICS_GFX_H
#include <graphics/gfx.h> // for struct BitMap definition
#endif
#ifndef EXEC_PORTS_H
#include <exec/ports.h> // for struct MsgPort definition
#endif
// The following error code is set in loadilbmScreen() and loadilbmBitMap().
// The possible values used in AmigaDOS release 2.0 are:
// OSERR_NOMONITOR (1) named monitor spec not available
// OSERR_NOCHIPS (2) you need newer custom chips
// OSERR_NOMEM (3) couldn't get normal memory
// OSERR_NOCHIPMEM (4) couldn't get chip memory
// OSERR_PUBNOTUNIQUE (5) public screen name already used
// OSERR_UNKNOWNMODE (6) don't recognize mode asked for
extern long li_errcode; // for your use; defined in getilbm.c
typedef struct { ULONG r, g, b; } Color32;
//---------------------------------------------------------------------------
// FUNCTIONS FOR LOADING AN IFF ILBM FILE INTO A SCREEN
//
// loadilbmScreen() is passed the IFF file name, and it attempts to create
// a screen to fit the IFF file contents, loads the screen, and returns a
// pointer to it. The screen will be HIDDEN. You must call ScreenToFront()
// to make it visible.
//
// freeilbmScreen() deallocates a screen created by loadilbmScreen().
// The MsgPort parameter is normally passed as NULL, or as the original
// UserPort when loadilbmScreen() created the screen.
struct Screen *loadilbmScreen(char *filename);
void freeilbmScreen(struct Screen *, struct MsgPort *);
//---------------------------------------------------------------------------
// FUNCTIONS FOR LOADING AN IFF ILBM FILE INTO A BITMAP
//
// loadilbmBitMap() is passed the IFF file name, and pointers to three
// unsigned short integers. The function creates a BitMap to hold the IFF
// file contents. The 3 integers will be set to the dimensions of the
// BitMap, and a pointer to the BitMap is returned.
//
// freeBitmap() frees any BitMap.
// USE_FREEBM must be defined for it to exist.
struct BitMap
*loadilbmBitMap(char *filename, USHORT *wide, USHORT *high, USHORT *deep);
void freeBitMap(struct BitMap *);
//---------------------------------------------------------------------------
// The following function is useful too. It allocates a BitMap of any size.
// USE_GETBM must be #defined or getBitMap() won't exist.
struct BitMap *getBitMap(int wide, int high, int deep, short clear);
// The next function is user-supplied. It gets called at various times
// during the ILBM loading process. It is intended to let your program
// take care of time-critical things during a long load.
// #define TIMECHECK if you need it, or just make check_for_switch() an
// empty void function.
void check_for_switch(void);