X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=dosdemo;a=blobdiff_plain;f=src%2Fdos%2Fmain.c;h=10492fec123b9b368ec772e9507da41d1bf10e7c;hp=06fd0bbb7843cdffa35bc475efd7a6a2ef4168fd;hb=5d9ec41cc62ebddf5d406511714e561e88884987;hpb=f48bebd0c67210cd8b56e7d491b4942971e34ed1 diff --git a/src/dos/main.c b/src/dos/main.c index 06fd0bb..10492fe 100644 --- a/src/dos/main.c +++ b/src/dos/main.c @@ -10,11 +10,11 @@ static int quit; static int use_mouse; +static long fbsize; int main(int argc, char **argv) { - void *vmem; - long fbsize = fb_width * fb_height * fb_bpp / CHAR_BIT; + fbsize = fb_width * fb_height * fb_bpp / CHAR_BIT; init_timer(100); kb_init(32); @@ -29,9 +29,11 @@ int main(int argc, char **argv) return 1; } - if(!(vmem = set_video_mode(fb_width, fb_height, fb_bpp))) { + if(!(vmem_front = set_video_mode(fb_width, fb_height, fb_bpp))) { return 1; } + /* TODO implement multiple video memory pages for flipping */ + vmem_back = vmem_front; if(demo_init(argc, argv) == -1) { set_text_mode(); @@ -52,9 +54,6 @@ int main(int argc, char **argv) time_msec = get_msec(); demo_draw(); - - /*wait_vsync();*/ - memcpy(vmem, fb_pixels, fbsize); } break_evloop: @@ -68,3 +67,12 @@ void demo_quit(void) { quit = 1; } + +void swap_buffers(void *pixels) +{ + /* TODO implement page flipping */ + if(pixels) { + /*wait_vsync();*/ + memcpy(vmem_front, pixels, fbsize); + } +}