#ifndef  CLIB_BLITTER_PROTOS_H
#define  CLIB_BLITTER_PROTOS_H

/*
**   $VER: blitter_protos.h V1.0
**
**   C prototypes.
**
**   (C) Copyright 1996-1998 DreamWorld Productions.
**       All Rights Reserved.
*/

#ifndef MODULES_BLTBASE_H
#include <modules/bltbase.h>
#endif

#ifndef _USE_DPKBASE

APTR AllocBlitMem(LONG Size, LONG Flags);
void DrawBob(APTR Bob);
void DrawBobList(LONG *BobList);
void CopyBuffer(struct GScreen *, WORD SrcBuffer, WORD DestBuffer);
LONG CreateMasks(APTR Bob);
void DrawLine(struct Bitmap *, WORD SX, WORD SY, WORD EX, WORD EY, LONG Colour, LONG Mask);
void DrawPixel(struct Bitmap *, WORD XCoord, WORD YCoord, LONG Colour);
void DrawPixelList(struct Bitmap *, struct PixelList *);
void DrawRGBLine(struct Bitmap *, WORD SX, WORD SY, WORD EX, WORD EY, LONG RGB, LONG Mask);
void DrawRGBPixel(struct Bitmap *, WORD XCoord, WORD YCoord, LONG RGB);
void DrawRGBPixelList(struct Bitmap *, struct PixelList *);
void DrawUCLine(struct Bitmap *, WORD SX, WORD SY, WORD EX, WORD EY, LONG Colour, LONG Mask);
void DrawUCPixel(struct Bitmap *, WORD XCoord, WORD YCoord, LONG Colour);
void DrawUCPixelList(struct Bitmap *, struct PixelList *);
void DrawUCRGBLine(struct Bitmap *, WORD SX, WORD SY, WORD EX, WORD EY, LONG RGB, LONG Mask);
void DrawUCRGBPixel(struct Bitmap *, WORD XCoord, WORD YCoord, LONG RGB);
void FreeBlitMem(APTR MemBlock);
LONG GetBmpType(void);
void GiveOSBlitter(void);
LONG ReadPixel(struct Bitmap *, WORD XCoord, WORD YCoord);
LONG ReadRGBPixel(struct Bitmap *, WORD XCoord, WORD YCoord);
void ReadPixelList(struct Bitmap *, struct PixelList *);
void SetBobDimensions(APTR Bob, WORD Width, WORD Height, WORD Depth);
LONG SetBobDrawMode(APTR Bob, LONG Attrib);
LONG SetBobFrames(APTR Bob);
void SortBobList(APTR List, LONG Flags);
void SortMBob(struct MBob *, LONG Flags);
void TakeOSBlitter(void);

#else /*** Definitions for inline library calls ***/

#define AllocBlitMem(Size,Flags)           BLTBase->AllocBlitMem(Size,Flags)
#define DrawBob(Bob)                       BLTBase->DrawBob(Bob)
#define DrawBobList(BobList)               BLTBase->DrawBobList(BobList)
#define CopyBuffer(Screen, Src, Dest)      BLTBase->CopyBuffer(Screen,Src,Dest)
#define CreateMasks(Bob)                   BLTBase->CreateMasks(Bob)
#define DrawLine(Bmp,SX,SY,EX,EY,Col,Msk)  BLTBase->DrawLine(Bmp,SX,SY,EX,EY,Col,Msk)
#define DrawPixel(Bmp,X,Y,Col)             BLTBase->DrawPixel(Bmp,X,Y,Col)
#define DrawPixelList(Bmp,Pixels)          BLTBase->DrawPixelList(Bmp,Pixels)
#define DrawRGBLine(Bmp,SX,SY,EX,EY,RGB,M) BLTBase->DrawRGBLine(Bmp,SX,SY,EX,EY,RGB,M)
#define DrawRGBPixel(Bmp,X,Y,RGB)          BLTBase->DrawRGBPixel(Bmp,X,Y,RGB)
#define DrawRGBPixelList(Bmp, PixelList)   BLTBase->DrawRGBPixelList(Bmp,PixelList)
#define DrawUCLine(Bmp,SX,SY,EX,EY,Col,M)  BLTBase->DrawUCLine(Bmp,SX,SY,EX,EY,Col,M)
#define DrawUCPixel(Bmp,X,Y,Col)           BLTBase->DrawUCPixel(Bmp,X,Y,Col)
#define DrawUCPixelList(Bmp, Pixels)       BLTBase->DrawUCPixelList(Bmp,Pixels)
#define DrawUCRGBLine(Bmp,SX,SY,EX,EY,R,M) BLTBase->DrawUCRGBLine(Bmp,SX,SY,EX,EY,R,M)
#define DrawUCRGBPixel(Bmp,X,Y,RGB)        BLTBase->DrawUCRGBPixel(Bmp,X,Y,RGB)
#define FreeBlitMem(MemBlock)              BLTBase->FreeBlitMem(MemBlock)
#define GetBmpType()                       BLTBase->GetBmpType()
#define GiveOSBlitter()                    BLTBase->GiveOSBlitter()
#define ReadPixel(Bmp,X,Y)                 BLTBase->ReadPixel(Bmp,X,Y)
#define ReadRGBPixel(Bmp,X,Y)              BLTBase->ReadRGBPixel(Bmp,X,Y)
#define ReadPixelList(Bmp,Pixels)          BLTBase->ReadPixelList(Bmp,Pixels)
#define SetBobDimensions(Bob,W,H,D)        BLTBase->SetBobDimensions(Bob,W,H,D)
#define SetBobDrawMode(Bob, Attrib)        BLTBase->SetBobDrawMode(Bob,Attrib)
#define SetBobFrames(Bob)                  BLTBase->SetBobFrames(Bob)
#define SortBobList(List, Flags)           BLTBase->SortBobList(List,Flags)
#define SortMBob(MBob, Flags)              BLTBase->SortMBob(MBob,Flags)
#define TakeOSBlitter()                    BLTBase->TakeOSBlitter()

#endif /* _USE_DPKBASE */

#endif /* CLIB_BLITTER_PROTOS_H */
