X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fdos%2Fgfx.c;h=cacd9842664e9da0f12675f188ba158e27b9f5cf;hb=d54a3962dcb42f9921be75cf3754525ecef2bab6;hp=c9a153deec4580d8cd12f45d9aa86cafadf4218c;hpb=02e7611eefd46380cbce65ace9da8399c27e78e8;p=eradicate diff --git a/src/dos/gfx.c b/src/dos/gfx.c index c9a153d..cacd984 100644 --- a/src/dos/gfx.c +++ b/src/dos/gfx.c @@ -1,10 +1,12 @@ #include #include #include +#include "game.h" #include "cdpmi.h" #include "gfx.h" #include "vbe.h" #include "vga.h" +#include "util.h" #define SAME_BPP(a, b) \ ((a) == (b) || ((a) == 16 && (b) == 15) || ((a) == 15 && (b) == 16) || \ @@ -83,6 +85,7 @@ int init_video(void) vmptr->rmask = calc_mask(minf.rsize, minf.rpos); vmptr->gmask = calc_mask(minf.gsize, minf.gpos); vmptr->bmask = calc_mask(minf.bsize, minf.bpos); + vmptr->bpp = vmptr->rbits + vmptr->gbits + vmptr->bbits; } if(minf.attr & VBE_ATTR_LFB) { vmptr->fb_addr = minf.fb_addr; @@ -235,8 +238,9 @@ void *page_flip(int vsync) static void blit_frame_lfb(void *pixels, int vsync) { + if(show_fps) dbg_fps(pixels); if(vsync) wait_vsync(); - memcpy(vpgaddr[frontidx], pixels, pgsize); + memcpy64(vpgaddr[frontidx], pixels, pgsize >> 3); } static void blit_frame_banked(void *pixels, int vsync) @@ -245,6 +249,8 @@ static void blit_frame_banked(void *pixels, int vsync) unsigned int pending; unsigned char *pptr = pixels; + if(show_fps) dbg_fps(pixels); + if(vsync) wait_vsync(); /* assume initial window offset at 0 */ @@ -252,6 +258,7 @@ static void blit_frame_banked(void *pixels, int vsync) pending = pgsize; while(pending > 0) { sz = pending > curmode->bank_size ? curmode->bank_size : pending; + //memcpy64((void*)0xa0000, pptr, sz >> 3); memcpy((void*)0xa0000, pptr, sz); pptr += sz; pending -= sz;