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 */ |