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