1 /* zgv 5.8 - GIF, JPEG and PBM/PGM/PPM viewer, for VGA PCs running Linux. 2 * Copyright (C) 1993-2003 Russell Marks. See README for license details. 3 * 4 * zgv_io.h 5 */ 6 7 #ifndef BACKEND_SVGALIB 8 #ifndef BACKEND_SDL 9 #error "you need to choose a backend in config.mk" 10 #endif 11 #endif 12 13 14 extern int current_colour; 15 16 extern volatile int zgv_io_timer_flag; 17 18 extern void zgv_io_screen_update(void); 19 extern void zgv_io_timer_start(int delay_in_hundredths); 20 extern void zgv_io_timer_stop(void); 21 22 23 #ifdef BACKEND_SVGALIB 24 25 #include <vga.h> 26 #include <vgagl.h> 27 #include <vgamouse.h> 28 29 /* vgadrawtext_bmp() needs to know what the current colour is, so... */ 30 #define vga_setcolor(x) vga_setcolor(current_colour=(x)) 31 32 #else /* !BACKEND_SVGALIB */ 33 34 #define vga_modeinfo zvga_modeinfo 35 36 #define gl_fillbox zgl_fillbox 37 #define gl_getbox zgl_getbox 38 #define gl_putbox zgl_putbox 39 #define gl_putboxmask zgl_putboxmask 40 #define gl_putboxpart zgl_putboxpart 41 #define gl_setcontextvga zgl_setcontextvga 42 #define mouse_close zmouse_close 43 #define mouse_getbutton zmouse_getbutton 44 #define mouse_getx zmouse_getx 45 #define mouse_gety zmouse_gety 46 #define mouse_init_return_fd zmouse_init_return_fd 47 #define mouse_setposition zmouse_setposition 48 #define mouse_setscale zmouse_setscale 49 #define mouse_setxrange zmouse_setxrange 50 #define mouse_setyrange zmouse_setyrange 51 #define mouse_update zmouse_update 52 #define vga_clear zvga_clear 53 #define vga_disabledriverreport zvga_disabledriverreport 54 #define vga_drawline zvga_drawline 55 #define vga_drawpixel zvga_drawpixel 56 #define vga_drawscanline zvga_drawscanline 57 #define vga_drawscansegment zvga_drawscansegment 58 #define vga_getcolors zvga_getcolors 59 #define vga_getcurrentmode zvga_getcurrentmode 60 #define vga_getmodeinfo zvga_getmodeinfo 61 #define vga_getmousetype zvga_getmousetype 62 #define vga_getpalvec zvga_getpalvec 63 #define vga_getscansegment zvga_getscansegment 64 #define vga_getxdim zvga_getxdim 65 #define vga_getydim zvga_getydim 66 #define vga_hasmode zvga_hasmode 67 #define vga_init zvga_init 68 #define vga_lastmodenumber zvga_lastmodenumber 69 #define vga_lockvc zvga_lockvc 70 #define vga_oktowrite zvga_oktowrite 71 #define vga_runinbackground zvga_runinbackground 72 #define vga_setcolor zvga_setcolor 73 #define vga_setmode zvga_setmode 74 #define vga_setpalette zvga_setpalette 75 #define vga_setpalvec zvga_setpalvec 76 #define vga_setrgbcolor zvga_setrgbcolor 77 #define vga_unlockvc zvga_unlockvc 78 79 #define TEXT 0 80 #define G640x480x16 1 81 #define G320x200x256 2 82 #define G320x240x256 3 83 #define G320x400x256 4 84 #define G360x480x256 5 85 #define G640x480x256 6 86 #define G800x600x256 7 87 #define G1024x768x256 8 88 #define G1280x1024x256 9 89 #define G1152x864x256 10 90 #define G1600x1200x256 11 91 #define G320x200x32K 12 92 #define G320x240x32K 13 93 #define G640x480x32K 14 94 #define G800x600x32K 15 95 #define G1024x768x32K 16 96 #define G1280x1024x32K 17 97 #define G1152x864x32K 18 98 #define G1600x1200x32K 19 99 #define G320x200x64K 20 100 #define G320x240x64K 21 101 #define G640x480x64K 22 102 #define G800x600x64K 23 103 #define G1024x768x64K 24 104 #define G1280x1024x64K 25 105 #define G1152x864x64K 26 106 #define G1600x1200x64K 27 107 #define G320x200x16M32 28 108 #define G320x240x16M32 29 109 #define G640x480x16M32 30 110 #define G800x600x16M32 31 111 #define G1024x768x16M32 32 112 #define G1280x1024x16M32 33 113 #define G1152x864x16M32 34 114 #define G1600x1200x16M32 35 115 #define G320x200x16M 36 116 #define G320x240x16M 37 117 #define G640x480x16M 38 118 #define G800x600x16M 39 119 #define G1024x768x16M 40 120 #define G1280x1024x16M 41 121 #define G1152x864x16M 42 122 #define G1600x1200x16M 43 123 124 #define GLASTMODE 43 125 126 #define MOUSE_NONE 0 127 #define MOUSE_DEFAULTSAMPLERATE 0 128 #define MOUSE_LEFTBUTTON 1 129 #define MOUSE_MIDDLEBUTTON 2 130 #define MOUSE_RIGHTBUTTON 4 131 132 133 typedef struct 134 { 135 int width,height,bitsperpixel,bytesperpixel,colors,has_mode; 136 } 137 zvga_modeinfo; 138 139 extern void zgl_fillbox(int x,int y,int w,int h,int c); 140 extern void zgl_getbox(int x,int y,int w,int h,void *dp); 141 extern void zgl_putbox(int x,int y,int w,int h,void *dp); 142 extern void zgl_putboxmask(int x,int y,int w,int h,void *dp); 143 extern void zgl_putboxpart(int x,int y,int w,int h,int bw,int bh,void *b, 144 int xo,int yo); 145 extern int zgl_setcontextvga(int m); 146 147 extern void zmouse_close(void); 148 extern int zmouse_getbutton(void); 149 extern int zmouse_getx(void); 150 extern int zmouse_gety(void); 151 extern int zmouse_init_return_fd(char *dev,int type,int samplerate); 152 extern void zmouse_setposition(int x,int y); 153 extern void zmouse_setscale(int s); 154 extern void zmouse_setxrange(int x1,int x2); 155 extern void zmouse_setyrange(int y1,int y2); 156 extern int zmouse_update(void); 157 158 extern int zvga_clear(void); 159 extern void zvga_disabledriverreport(void); 160 extern int zvga_drawline(int x1,int y1,int x2,int y2); 161 extern int zvga_drawpixel(int x,int y); 162 extern int zvga_drawscanline(int line,unsigned char *cols); 163 extern int zvga_drawscansegment(unsigned char *cols,int x,int y,int len); 164 extern int zvga_getcolors(void); 165 extern int zvga_getcurrentmode(void); 166 extern zvga_modeinfo *zvga_getmodeinfo(int mode); 167 extern int zvga_getmousetype(void); 168 extern int zvga_getpalvec(int start,int num,int *pal); 169 extern int zvga_getscansegment(unsigned char *cols,int x,int y,int len); 170 extern int zvga_getxdim(void); 171 extern int zvga_getydim(void); 172 extern int zvga_hasmode(int mode); 173 extern int zvga_init(void); 174 extern int zvga_lastmodenumber(void); 175 extern void zvga_lockvc(void); 176 extern int zvga_oktowrite(void); 177 extern void zvga_runinbackground(int stat); 178 extern int zvga_setcolor(int col); 179 extern int zvga_setmode(int mode); 180 extern int zvga_setpalette(int idx,int r,int g,int b); 181 extern int zvga_setpalvec(int start,int num,int *pal); 182 extern int zvga_setrgbcolor(int r,int g,int b); 183 extern void zvga_unlockvc(void); 184 185 extern int zgv_io_readnbkey(void); 186 extern int zgv_io_waitkey(void); 187 extern int zgv_io_waitevent(void); 188 extern void zgv_io_fixfsmode(int *mode); 189 190 #endif /* !BACKEND_SVGALIB */ 191