#include	"compiler.h"
#include	"scrnmng.h"
#include	"scrndraw.h"
#include	"sdraw.h"
#include	"palettes.h"
#if !defined(SIZE_QVGA)
#undef	SDZMODE
#if defined(SUPPORT_8BPP)
#define	SDSYM(sym)				sdraw8##sym
#define	SDSETPIXEL(ptr, pal)	*(ptr) = (UINT8)((pal) + START_PAL)
#include	"sdraw.mcr"
#undef	SDSYM
#undef	SDSETPIXEL
#endif
#define	SDZMODE
#if defined(SUPPORT_16BPP)
#define	SDSYM(sym)				sdraw16##sym
#define	SDSETPIXEL(ptr, pal)	*(UINT16 *)(ptr) = xmil_pal16[(pal)]
#include	"sdraw.mcr"
#undef	SDSYM
#undef	SDSETPIXEL
#endif
#if defined(SUPPORT_24BPP)
#define	SDSYM(sym)				sdraw24##sym
#define	SDSETPIXEL(ptr, pal)	(ptr)[RGB24_R] = xmil_pal32[(pal)].p.r;	\
								(ptr)[RGB24_G] = xmil_pal32[(pal)].p.g;	\
								(ptr)[RGB24_B] = xmil_pal32[(pal)].p.b
#include	"sdraw.mcr"
#undef	SDSYM
#undef	SDSETPIXEL
#endif
#if defined(SUPPORT_32BPP)
#define	SDSYM(sym)				sdraw32##sym
#define	SDSETPIXEL(ptr, pal)	*(UINT32 *)(ptr) = xmil_pal32[(pal)].d
#include	"sdraw.mcr"
#undef	SDSYM
#undef	SDSETPIXEL
#endif
// ----
static const SDRAWFN *tbl[4] = {
#if defined(SUPPORT_8BPP)
			sdraw8p,
#else
			NULL,
#endif
#if defined(SUPPORT_16BPP)
			sdraw16p,
#else
			NULL,
#endif
#if defined(SUPPORT_24BPP)
			sdraw24p,
#else
			NULL,
#endif
#if defined(SUPPORT_32BPP)
			sdraw32p,
#else
			NULL,
#endif
};
const SDRAWFN *sdraw_getproctbl(const SCRNSURF *surf) {
	int		proc;
	proc = ((surf->bpp >> 3) - 1) & 3;
	return(tbl[proc]);
}
#endif
RetroPC.NET-CVS <cvs@retropc.net>