1 typedef struct 2 { 3 int w, h; 4 uint8_t *dat; 5 uint8_t *line[0]; 6 } BITMAP; 7 8 extern BITMAP *screen; 9 10 BITMAP *create_bitmap(int w, int h); 11 12 typedef struct 13 { 14 uint8_t r, g, b; 15 } RGB; 16 17 typedef RGB PALETTE[256]; 18 19 #define makecol(r, g, b) ((b) | ((g) << 8) | ((r) << 16)) 20 #define makecol32(r, g, b) ((b) | ((g) << 8) | ((r) << 16)) 21 22 extern BITMAP *buffer32; 23 24 int video_card_available(int card); 25 char *video_card_getname(int card); 26 struct device_t *video_card_getdevice(int card, int romset); 27 int video_card_has_config(int card, int romset); 28 int video_card_getid(char *s); 29 int video_old_to_new(int card); 30 int video_new_to_old(int card); 31 char *video_get_internal_name(int card); 32 int video_get_video_from_internal_name(char *s); 33 int video_is_mda(); 34 int video_is_cga(); 35 int video_is_ega_vga(); 36 37 extern int video_fullscreen, video_fullscreen_scale, video_fullscreen_first; 38 extern int video_force_aspect_ration; 39 extern int vid_disc_indicator; 40 41 enum 42 { 43 FULLSCR_SCALE_FULL = 0, 44 FULLSCR_SCALE_43, 45 FULLSCR_SCALE_SQ, 46 FULLSCR_SCALE_INT 47 }; 48 49 extern int egareads,egawrites; 50 51 extern int fullchange; 52 extern int changeframecount; 53 54 extern uint8_t fontdat[2048][8]; 55 extern uint8_t fontdatm[2048][16]; 56 extern uint8_t fontdatksc5601[16384][32]; 57 extern uint8_t fontdatksc5601_user[192][32]; 58 59 extern uint32_t *video_15to32, *video_16to32; 60 61 extern int xsize,ysize; 62 63 extern float cpuclock; 64 65 extern int emu_fps, frames, video_frames, video_refresh_rate; 66 67 extern int readflash; 68 69 extern void (*video_recalctimings)(); 70 71 void video_blit_memtoscreen(int x, int y, int y1, int y2, int w, int h); 72 73 extern void (*video_blit_memtoscreen_func)(int x, int y, int y1, int y2, int w, int h); 74 75 extern int video_timing_read_b, video_timing_read_w, video_timing_read_l; 76 extern int video_timing_write_b, video_timing_write_w, video_timing_write_l; 77 extern int video_speed; 78 79 extern int video_res_x, video_res_y, video_bpp; 80 81 extern int vid_resize; 82 83 void video_wait_for_blit(); 84 void video_wait_for_buffer(); 85 86 typedef enum 87 { 88 FONT_MDA, /* MDA 8x14 */ 89 FONT_PC200, /* MDA 8x14 and CGA 8x8, four fonts */ 90 FONT_CGA, /* CGA 8x8, two fonts */ 91 FONT_WY700, /* Wy700 16x16, two fonts */ 92 FONT_MDSI, /* MDSI Genius 8x12 */ 93 FONT_T3100E, /* Toshiba T3100e, four fonts */ 94 FONT_KSC5601, /* Korean KSC-5601 */ 95 FONT_SIGMA400, /* Sigma Color 400, 8x8 and 8x16 */ 96 97 } fontformat_t; 98 99 void loadfont(char *s, fontformat_t format); 100 101 void initvideo(); 102 void video_init(); 103 void closevideo(); 104 105 void video_updatetiming(); 106 107 void hline(BITMAP *b, int x1, int y, int x2, int col); 108 109 void destroy_bitmap(BITMAP *b); 110 111 extern uint32_t cgapal[16]; 112 113 #define DISPLAY_RGB 0 114 #define DISPLAY_COMPOSITE 1 115 #define DISPLAY_RGB_NO_BROWN 2 116 #define DISPLAY_GREEN 3 117 #define DISPLAY_AMBER 4 118 #define DISPLAY_WHITE 5 119 120 void cgapal_rebuild(int display_type, int contrast); 121