home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / D / SVGALIB / _SVGALIB.TAR / usr / include / vga.h next >
Encoding:
C/C++ Source or Header  |  1995-01-18  |  7.5 KB  |  244 lines

  1. /* VGAlib version 1.2 - (c) 1993 Tommy Frandsen            */
  2. /*                                   */
  3. /* This library is free software; you can redistribute it and/or   */
  4. /* modify it without any restrictions. This library is distributed */
  5. /* in the hope that it will be useful, but without any warranty.   */
  6.  
  7. /* Extended for svgalib by Harm Hanemaayer and Hartmut Schirmer */
  8.  
  9. #ifndef VGA_H
  10. #define VGA_H
  11.  
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15.  
  16. #define TEXT          0        /* Compatible with VGAlib v1.2 */
  17. #define G320x200x16  1
  18. #define G640x200x16  2
  19. #define G640x350x16  3
  20. #define G640x480x16  4
  21. #define G320x200x256 5
  22. #define G320x240x256 6
  23. #define G320x400x256 7
  24. #define G360x480x256 8
  25. #define G640x480x2   9
  26.  
  27. #define G640x480x256 10
  28. #define G800x600x256 11
  29. #define G1024x768x256 12
  30.  
  31. #define G1280x1024x256 13    /* Additional modes. */
  32.  
  33. #define G320x200x32K 14
  34. #define G320x200x64K 15
  35. #define G320x200x16M 16
  36. #define G640x480x32K 17
  37. #define G640x480x64K 18
  38. #define G640x480x16M 19
  39. #define G800x600x32K 20
  40. #define G800x600x64K 21
  41. #define G800x600x16M 22
  42. #define G1024x768x32K 23
  43. #define G1024x768x64K 24
  44. #define G1024x768x16M 25
  45. #define G1280x1024x32K 26
  46. #define G1280x1024x64K 27
  47. #define G1280x1024x16M 28
  48.  
  49. #define G800x600x16 29
  50. #define G1024x768x16 30
  51. #define G1280x1024x16 31
  52.  
  53. #define G720x348x2 32        /* Hercules emulation mode */
  54.  
  55. #define G320x200x16M32 33    /* 32-bit per pixel modes. */
  56. #define G640x480x16M32 34
  57. #define G800x600x16M32 35
  58. #define G1024x768x16M32 36
  59. #define G1280x1024x16M32 37
  60.  
  61. #define __GLASTMODE G1280x1024x16M32
  62. #define GLASTMODE vga_lastmodenumber()
  63.  
  64. extern int vga_setmode(int mode);
  65. extern int vga_hasmode(int mode);
  66. extern int vga_setflipchar(int c);
  67.  
  68. extern int vga_clear();
  69. extern int vga_flip();
  70.  
  71. extern int vga_getxdim();
  72. extern int vga_getydim();
  73. extern int vga_getcolors();
  74.  
  75. extern int vga_setpalette(int index, int red, int green, int blue);
  76. extern int vga_getpalette(int index, int *red, int *green, int *blue);
  77. extern int vga_setpalvec(int start, int num, int *pal);
  78. extern int vga_getpalvec(int start, int num, int *pal);
  79.  
  80. extern int vga_screenoff();
  81. extern int vga_screenon();
  82.  
  83. extern int vga_setcolor(int color);
  84. extern int vga_drawpixel(int x, int y);
  85. extern int vga_drawline(int x1, int y1, int x2, int y2);
  86. extern int vga_drawscanline(int line, unsigned char* colors);
  87. extern int vga_drawscansegment(unsigned char* colors, int x, int y, int length);
  88. extern int vga_getpixel(int x, int y);    /* Added. */
  89.  
  90. extern int vga_getch();
  91.  
  92. extern int vga_dumpregs();
  93.  
  94.  
  95. /* Extensions to VGAlib v1.2: */
  96.  
  97. /* blit flags */
  98. #define HAVE_BITBLIT 1
  99. #define HAVE_FILLBLIT 2
  100. #define HAVE_IMAGEBLIT 4
  101. #define HAVE_HLINELISTBLIT 8
  102. #define HAVE_BLITWAIT 16
  103.  
  104. /* other flags */
  105. #define HAVE_RWPAGE 1        /* vga_setreadpage() / vga_setwritepage() available */
  106. #define IS_INTERLACED 2        /* mode is interlaced */
  107. #define IS_MODEX 4        /* ModeX style 256 colors */
  108. #define IS_DYNAMICMODE 8    /* Dynamic defined mode */
  109. #define CAPABLE_LINEAR 16    /* Can go to linear addressing mode. */
  110. #define IS_LINEAR 32        /* Linear addressing enabled. */
  111. #define EXT_INFO_AVAILABLE 64    /* Returned modeinfo contains valid extended fields */
  112. #define RGB_MISORDERED 128    /* Mach32 32bpp uses 0BGR instead of BGR0. */
  113. #define HAVE_EXT_SET 256    /* vga_ext_set() available */
  114.  
  115. typedef struct {
  116.     int width;
  117.     int height;
  118.     int bytesperpixel;
  119.     int colors;
  120.     int linewidth;        /* scanline width in bytes */
  121.     int maxlogicalwidth;    /* maximum logical scanline width */
  122.     int startaddressrange;    /* changeable bits set */
  123.     int maxpixels;        /* video memory / bytesperpixel */
  124.     int haveblit;        /* mask of blit functions available */
  125.     int flags;        /* other flags */
  126.  
  127.     /* Extended fields: */
  128.  
  129.     int chiptype;        /* Chiptype detected */
  130.     int memory;        /* videomemory in KB */
  131.     int linewidth_unit;    /* Use only a multiple of this as parameter for set_logicalwidth and
  132.                    set_displaystart */
  133.     char *linear_aperture;    /* points to mmap secondary mem aperture of card (NULL if unavailable) */
  134.     int aperture_size;    /* size of aperture in KB if size>=videomemory. 0 if unavail */
  135.     void (*set_aperture_page)(int page);
  136.                 /* if aperture_size<videomemory select a memory page */
  137.     void *extensions;    /* points to copy of eeprom for mach32 */
  138.                 /* depends from actual driver/chiptype.. etc. */
  139. } vga_modeinfo;
  140.  
  141. extern vga_modeinfo *vga_getmodeinfo( int mode );
  142. extern int vga_getdefaultmode();
  143. extern int vga_getcurrentmode();
  144. extern int vga_getcurrentchipset();
  145. extern char *vga_getmodename( int mode );
  146. extern int vga_getmodenumber( char *name );
  147. extern int vga_lastmodenumber(void);
  148.  
  149. extern unsigned char *graph_mem;
  150. extern unsigned char *vga_getgraphmem();
  151.  
  152. extern void vga_setpage( int p );
  153. extern void vga_setreadpage( int p );
  154. extern void vga_setwritepage( int p );
  155. extern void vga_setlogicalwidth( int w );
  156. extern void vga_setdisplaystart( int a );
  157. extern void vga_waitretrace();
  158. extern int vga_claimvideomemory( int n );
  159. extern void vga_disabledriverreport();
  160. extern int vga_setmodeX();
  161. extern int vga_init();    /* Used to return void in svgalib <= 1.12. */
  162. extern int vga_getmousetype();
  163. extern int vga_getmonitortype();
  164. extern void vga_setmousesupport( int s );
  165. extern void vga_lockvc();
  166. extern void vga_unlockvc();
  167. extern int vga_getkey();
  168. extern void vga_runinbackground( int s );
  169. extern int vga_oktowrite();
  170. extern void vga_copytoplanar256( unsigned char *virtualp, int pitch,
  171.     int voffset, int vpitch, int w, int h );
  172. extern void vga_copytoplanar16( unsigned char *virtualp, int pitch,
  173.     int voffset, int vpitch, int w, int h );
  174. extern void vga_copytoplane( unsigned char *virtualp, int pitch,
  175.     int voffset, int vpitch, int w, int h, int plane );
  176. extern int vga_setlinearaddressing();
  177. extern void vga_safety_fork(void (*shutdown_routine)(void));
  178.  
  179.  
  180. #ifdef EGA    /* Kernel headers may define this. */
  181. #undef EGA
  182. #endif
  183.  
  184. #define UNDEFINED    0
  185. #define VGA        1
  186. #define ET4000        2
  187. #define CIRRUS        3
  188. #define TVGA8900    4 
  189. #define OAK        5
  190. #define EGA        6
  191. #define S3        7
  192. #define ET3000        8
  193. #define MACH32        9
  194. #define GVGA6400    10
  195.  
  196.                 /* Hor. sync: */
  197. #define MON640_60    0    /* 31.5 KHz (standard VGA) */
  198. #define MON800_56    1    /* 35.1 KHz (old SVGA) */
  199. #define MON1024_43I    2    /* 35.5 KHz (low-end SVGA, 8514) */
  200. #define MON800_60    3    /* 37.9 KHz (SVGA) */
  201. #define MON1024_60    4    /* 48.3 KHz (SVGA non-interlaced) */
  202. #define MON1024_70    5    /* 56.0 KHz (SVGA high frequency) */
  203. #define MON1024_72    6
  204.  
  205. extern void vga_setchipset( int c );
  206. extern void vga_setchipsetandfeatures( int c, int par1, int par2 );
  207. extern void vga_gettextfont( void *font );
  208. extern void vga_puttextfont( void *font );
  209. extern void vga_settextmoderegs( void *regs );
  210. extern void vga_gettextmoderegs( void *regs );
  211.  
  212. extern int vga_white(); 
  213. extern int vga_setegacolor( int c );
  214. extern int vga_setrgbcolor( int r, int g, int b );
  215.  
  216. extern void vga_bitblt( int srcaddr, int destaddr, int w, int h, int pitch );
  217. extern void vga_imageblt( void *srcaddr, int destaddr, int w, int h, int pitch );
  218. extern void vga_fillblt( int destaddr, int w, int h, int pitch, int c );
  219. extern void vga_hlinelistblt( int ymin, int n, int *xmin, int *xmax, int pitch, int c );
  220. extern void vga_blitwait();
  221. extern int vga_ext_set(unsigned what, ...);
  222. /* extern int vga_accel(unsigned operation, ...); */ 
  223.  
  224. /* Valid values for what in vga_ext_set: */
  225. #define VGA_EXT_AVAILABLE    0    /* supported flags */
  226. #define VGA_EXT_SET        1    /* set flag(s) */
  227. #define VGA_EXT_CLEAR        2    /* clear flag(s) */
  228. #define VGA_EXT_RESET        3    /* set/clear flag(s) */
  229.  
  230. /* Valid params for VGA_EXT_AVAILABLE: */
  231. #define VGA_AVAIL_SET        0    /* vga_ext_set sub funcs */
  232. #define VGA_AVAIL_ACCEL        1    /* vga_accel sub funcs */
  233. #define VGA_AVAIL_FLAGS        2    /* known flags for VGA_EXT_SET */
  234.  
  235. /* Known flags to vga_ext_set() */
  236. #define VGA_CLUT8        1    /* 8 bit DAC entries */
  237.  
  238. #ifdef __cplusplus
  239. }
  240. #endif
  241.  
  242. #endif /* VGA_H */
  243.  
  244.