#ifndef CLIB_CHUNKYPPC_H #define CLIB_CHUNKYPPC_H #ifndef EXEC_LIBRARIES_H #include #endif #ifndef GRAPHICS_GFX_H #include #endif #include #include #include #ifdef __PPC #include #endif extern struct Library *ChunkyPPCBase; #ifndef __INLINE_MACROS_H #ifdef __PPC #include #else #include #endif #endif /* !__INLINE_MACROS_H */ #ifndef CHUNKYPPC_BASE_NAME #define CHUNKYPPC_BASE_NAME ChunkyPPCBase #endif /* !CHUNKYPPC_BASE_NAME */ #define ChunkyInit68k(Mode_Screen_, srcformat) \ LP2(0xc6, int, ChunkyInit68k, struct Mode_Screen *, Mode_Screen_, a0, int, srcformat, d0, \ , CHUNKYPPC_BASE_NAME,0,0,0,0,0,0) #define CloseGraphics(Mode_Screen_, shutdownlibs) \ LP2NR(0xd2, CloseGraphics, struct Mode_Screen *, Mode_Screen_, a0, int, shutdownlibs, d0, \ , CHUNKYPPC_BASE_NAME,0,0,0,0,0,0) #define DoubleBuffer(Mode_Screen_) \ LP1NR(0xde, DoubleBuffer, struct Mode_Screen *, Mode_Screen_, a0, \ , CHUNKYPPC_BASE_NAME,0,0,0,0,0,0) #define LoadColors(Mode_Screen_, Table) \ LP2NR(0xd8, LoadColors, struct Mode_Screen *, Mode_Screen_, a0, ULONG *, Table, a1, \ , CHUNKYPPC_BASE_NAME,0,0,0,0,0,0) #define OpenGraphics(Title, Mode_Screen_, override) \ LP3(0xcc, struct Mode_Screen *, OpenGraphics, char *, Title, a0, struct Mode_Screen *, Mode_Screen_, a1, int, override, d0, \ , CHUNKYPPC_BASE_NAME,0,0,0,0,0,0) #define BIT16 1 #define BIT16_SWAP 2 #define BIT16_ROT 4 #define BIT16_SWAP_ROT 8 #define BIT24 16 #define BIT24_ROT 32 #define BIT32 64 #define BIT32_SWAP 128 #define BIT32_ROT 256 #define BIT32_SWAP_ROT 512 #define BIT32_ROT_REVERSE 1024 #define BIT32_SWAP_ROT_REVERSE 2048 #define BIT8 4096 struct Soff { int x,y; }; struct Buffers { UBYTE *address; UBYTE *mask; }; struct Mode_Screen { struct Screen *video_screen; struct Window *video_window; int bpr; int wb_int; int pip_int; int dbuf_int; int oldstyle_int; char pubscreenname[512]; int mode; int SCREENWIDTH; int SCREENHEIGHT; int MS_MAXWIDTH; int MS_MAXHEIGHT; int MINDEPTH; int MAXDEPTH; int format; int video_depth; UWORD *emptypointer; struct BitMap *video_tmp_bm; int video_is_native_mode; int video_is_cyber_mode; unsigned char *screen; int video_oscan_height; int bufnum; struct RastPort *video_rastport; struct BitMap *bitmapa; struct BitMap *bitmapb; struct BitMap *bitmapc; struct BitMap *thebitmap; struct RastPort *video_temprp; struct ScreenModeRequester *video_smr; int ham_int; UBYTE *wbcolors; UBYTE *transtable; unsigned long *WBColorTable; unsigned long *ColorTable; int pal_changed; int pen_obtained; unsigned char *screenb; unsigned char *screenc; int numbuffers; int rtgm_int; struct ScreenBuffer *Buf1; struct ScreenBuffer *Buf2; struct ScreenBuffer *Buf3; void * (*algo)(struct Mode_Screen *ms,unsigned char *dest,unsigned char *src, int srcformat,void *(*hook68k)(unsigned char *data),unsigned char *data); void (*Internal1)(void); void (*Internal2)(void); int onlyptr; int likecgx; }; #ifdef __PPC #define ChunkyNoffFast(v1,v2,v3,v4,v5) PPCLP5NR (ChunkyPPCBase,-30,UBYTE *,4,v1,UBYTE *,5,v2,int,6,v3,int,7,v4,int,8,v5) #define ChunkyNoffFastest(v1,v2,v3,v4,v5) PPCLP5NR (ChunkyPPCBase,-36,UBYTE *,4,v1,UBYTE *,5,v2,int,6,v3,int,7,v4,int,8,v5) #define ChunkyNoffNormal(v1,v2,v3,v4,v5) PPCLP5NR (ChunkyPPCBase,-42,UBYTE *,4,v1,UBYTE *,5,v2,int,6,v3,int,7,v4,int,8,v5) #define ChunkyFast(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR (ChunkyPPCBase,-48,UBYTE *,4,v1,UBYTE *,5,v2,int,6,v3,int,7,v4,int,8,v5,int,9, v6, int,10, v7) #define ChunkyFastest(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR (ChunkyPPCBase,-54,UBYTE *,4,v1,UBYTE *,5,v2,int,6,v3,int,7,v4,int,8,v5,int,9,v6,int,10,v7) #define ChunkyNormal(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR (ChunkyPPCBase,-60,UBYTE *,4,v1,UBYTE *,5,v2,int,6,v3,int,7,v4,int,8,v5,int,9,v6,int,10,v7) #define ChunkyFastFull(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR (ChunkyPPCBase, -66, UBYTE *,4,v1,UBYTE *,5,v2,struct Soff *,6,v3, struct Soff *,7,v4,int,8,v5,struct Soff *,9,v6,int,10,v7) #define ChunkyFastestFull(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR (ChunkyPPCBase, -72, UBYTE *,4,v1,UBYTE *,5,v2,struct Soff *,6,v3, struct Soff *,7,v4,int,8,v5,struct Soff *,9,v6,int,10,v7) #define ChunkyNormalFull(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR (ChunkyPPCBase, -78, UBYTE *,4,v1,UBYTE *,5,v2,struct Soff *,6,v3, struct Soff *,7,v4,int,8,v5,struct Soff *,9,v6,int,10,v7) #define c2p_1(v1,v2,v3,v4) PPCLP4NR (ChunkyPPCBase, -84, UBYTE *,4,v1,struct BitMap *,5,v2,int,6,v3,int,7,v4) #define c2p_2(v1,v2,v3,v4) PPCLP4NR (ChunkyPPCBase, -90, UBYTE *,4,v1,UBYTE *,5,v2,UBYTE *,6,v3,int,7,v4) #define c2p_3(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR (ChunkyPPCBase, -96, void *,4,v1,void *,5,v2,int,6,v3,int,7,v4,struct Soff *,8,v5,int,9,v6,int,10,v7) #define c2p_4(v1,v2,v3,v4,v5,v6) PPCLP6NR (ChunkyPPCBase, -102, void *,4,v1,UBYTE *,5,v2,UBYTE *,6,v3,struct Soff *,7,v4, struct Soff *,8,v5, struct Soff *,9,v6) #define ChunkyNoffFastHT(v1,v2,v3,v4,v5,v6) PPCLP6NR(ChunkyPPCBase,-108,UBYTE *,4,v1, UBYTE *,5,v2,int,6,v3,int,7,v4,int,8,v5,int,9,v6) #define ChunkyNoffFastestHT(v1,v2,v3,v4,v5,v6) PPCLP6NR(ChunkyPPCBase,-114,UBYTE *,4,v1, UBYTE *,5,v2,int,6,v3,int,7,v4,int,8,v5,int,9,v6) #define ChunkyNoffNormalHT(v1,v2,v3,v4,v5,v6) PPCLP6NR(ChunkyPPCBase,-120,UBYTE *,4,v1, UBYTE *,5,v2,int,6,v3,int,7,v4,int,8,v5,int,9,v6) #define ChunkyFastHT(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR(ChunkyPPCBase,-126,UBYTE *,4,v1,UBYTE *,5,v2,struct Soff *,6,v3,int,7,v4,int,8,v5,int,9,v6,int,10,v7) #define ChunkyFastestHT(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR(ChunkyPPCBase,-132,UBYTE *,4,v1,UBYTE *,5,v2,struct Soff *,6,v3,int,7,v4,int,8,v5,int,9,v6,int,10,v7) #define ChunkyNormalHT(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR(ChunkyPPCBase,-138,UBYTE *,4,v1,UBYTE *,5,v2,struct Soff *,6,v3,int,7,v4,int,8,v5,int,9,v6,int,10,v7) #define ChunkyFastFullHT(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR(ChunkyPPCBase,-144,UBYTE *,4,v1,UBYTE *,5,v2,struct Soff *,6,v3,struct Soff *,7,v4,struct Soff *,8,v5,struct Soff *,9,v6,int,10,v7) #define ChunkyFastestFullHT(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR(ChunkyPPCBase,-150,UBYTE *,4,v1,UBYTE *,5,v2,struct Soff *,6,v3,struct Soff *,7,v4,struct Soff *,8,v5,struct Soff *,9,v6,int,10,v7) #define ChunkyNormalFullHT(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR(ChunkyPPCBase,-156,UBYTE *,4,v1,UBYTE *,5,v2,struct Soff *,6,v3,struct Soff *,7,v4,struct Soff *,8,v5,struct Soff *,9,v6,int,10,v7) #define ChunkyNoffMask(v1,v2,v3,v4,v5,v6) PPCLP6NR(ChunkyPPCBase,-162,struct Buffers *,4,v1,UBYTE *,5,v2,int,6,v3,int,7,v4,int,8,v5,int,9,v6) #define ChunkyMask(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR(ChunkyPPCBase,-168,struct Buffers *,4,v1,UBYTE *,5,v2,struct Soff *,6,v3,int,7,v4,int,8,v5,int,9,v6,int,10,v7) #define ChunkyMaskFull(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR(ChunkyPPCBase,-174,struct Buffers *,4,v1,UBYTE *,5,v2,struct Soff *,6,v3,struct Soff *,7,v4,struct Soff *,8,v5,struct Soff *,9,v6,int,10,v7) #define c2p_HI(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR(ChunkyPPCBase,-180, UBYTE *,4,v1,int,5,v2,UBYTE *,6,v3,UBYTE *,7,v4,UBYTE *,8,v5,UBYTE *,9,v6,UBYTE *,10,v7) #define ham_c2p(v1,v2,v3,v4,v5,v6,v7) PPCLP7NR(ChunkyPPCBase,-186. unsigned char *,4,v1,unsigned char *,5,v2,int,6,v3,int,7,v4,int,8,v5,int,9,v6,int,10,v7) #define ChunkyInit(v1,v2) PPCLP3(ChunkyPPCBase,-192,int,struct Library *,3,ChunkyPPCBase,struct Mode_Screen *,4,v1,int,5,v2) #define CallChunkyCopy(ms,dest,src,srcformat,hook68k,data) PPCLP6(&((struct Mode_Screen *)ms)->algo,-2,void *,struct Mode_Screen *,3,ms,unsigned char *,4,dest,\ unsigned char *,5,src,int,6,srcformat,void *,7,hook68k,unsigned char *,8,data) #endif #endif