eobish

annotate src/fblibdos.c @ 7:6a350c554e46

started DOS port
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 19 Jan 2015 15:49:14 +0200
parents
children
rev   line source
nuclear@7 1 #ifdef FBLIB_DOS
nuclear@7 2 #include "vbegfx.h"
nuclear@7 3
nuclear@7 4 static unsigned char *framebuf;
nuclear@7 5
nuclear@7 6 int fb_init(int width, int height, int bpp)
nuclear@7 7 {
nuclear@7 8 init_timer(128);
nuclear@7 9 if(kb_init(32) == -1) {
nuclear@7 10 fprintf(stderr, "failed to initialize keyboard driver\n");
nuclear@7 11 return false;
nuclear@7 12 }
nuclear@7 13
nuclear@7 14 if(!(framebuf = set_video_mode(width, height, bpp))) {
nuclear@7 15 return -1;
nuclear@7 16 }
nuclear@7 17 fb_width = width;
nuclear@7 18 fb_height = height;
nuclear@7 19 fb_bpp = get_color_depth();
nuclear@7 20
nuclear@7 21
nuclear@7 22 return 0;
nuclear@7 23 }
nuclear@7 24
nuclear@7 25 void fb_shutdown(void)
nuclear@7 26 {
nuclear@7 27 framebuf = 0;
nuclear@7 28 set_text_mode();
nuclear@7 29 }
nuclear@7 30
nuclear@7 31 void *fb_begin_frame(void)
nuclear@7 32 {
nuclear@7 33 return framebuf;
nuclear@7 34 }
nuclear@7 35
nuclear@7 36 void fb_end_frame(void)
nuclear@7 37 {
nuclear@7 38 wait_vsync(void);
nuclear@7 39 }
nuclear@7 40
nuclear@7 41 void fb_set_palette_range(int start, int count, int *colors)
nuclear@7 42 {
nuclear@7 43 /* TODO: add a range-palette setter in vbegfx.c */
nuclear@7 44 int i;
nuclear@7 45 for(i=0; i<count; i++) {
nuclear@7 46 set_palette(start + i, colors[0], colors[1], colors[2]);
nuclear@7 47 colors += 3;
nuclear@7 48 }
nuclear@7 49 }
nuclear@7 50
nuclear@7 51 int fb_process_events(void)
nuclear@7 52 {
nuclear@7 53 if(handle_keyboard() == -1) {
nuclear@7 54 return -1;
nuclear@7 55 }
nuclear@7 56 if(handle_mouse() == -1) {
nuclear@7 57 return -1;
nuclear@7 58 }
nuclear@7 59 return 0;
nuclear@7 60 }
nuclear@7 61
nuclear@7 62 #endif /* FBLIB_DOS */