home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / programming / misc_programming / INCLUDE / SVGA.H < prev    next >
C/C++ Source or Header  |  1994-08-23  |  4KB  |  111 lines

  1. /****************************************************************************
  2. *
  3. *                              The SuperVGA Kit
  4. *
  5. *                   Copyright (C) 1994 SciTech Software
  6. *                           All rights reserved.
  7. *
  8. * Filename:     $RCSfile: svga.h $
  9. * Version:      $Revision: 1.1 $
  10. *
  11. * Language:     ANSI C
  12. * Environment:  IBM PC (MSDOS) Real Mode and 16/32 bit Protected Mode.
  13. *
  14. * Description:  Header file for the small SuperVGA test library.
  15. *               This library provides a simplified interface to SuperVGA
  16. *               cards that have a VESA VBE (or with the Universal VESA
  17. *               VBE installed). This library requires at least a
  18. *               VBE 1.2 interface to function correctly.
  19. *
  20. *                For performance in protected modes, the SuperVGA Kit
  21. *                internally caches the video memory selector in the FS
  22. *                registes.
  23. *
  24. *               NOTE: This library only works in the large or flat models.
  25. *
  26. * $Id: svga.h 1.1 1994/08/22 12:27:14 kjb release $
  27. *
  28. ****************************************************************************/
  29.  
  30. #ifndef __SVGA_H
  31. #define __SVGA_H
  32.  
  33. #ifndef __DEBUG_H
  34. #include "debug.h"
  35. #endif
  36.  
  37. /*--------------------------- Global Variables ----------------------------*/
  38.  
  39. extern  int     maxx,maxy;          /* Maximum coordinate values        */
  40. extern    long    maxcolor,defcolor;    /* Maximum and default colors        */
  41. extern  int     maxpage;            /* Maximum video page number        */
  42. extern  int     bytesperline;       /* Bytes in a logical scanline      */
  43. extern  int        bytesperpixel;        /* Bytes in a pixel (if > 1)        */
  44. extern  bool    twobanks;           /* True if separate banks available */
  45. extern  int     memory;             /* Memory on board in k             */
  46. extern  short   modeList[];         /* List of available video modes    */
  47. extern  char    OEMString[];        /* OEM string from VBE              */
  48. extern    bool    extendedflipping;    /* True if we have extended flipping*/
  49. extern    bool    widedac;            /* True if wide dac is supported    */
  50.  
  51. /* Pixel format information - used by the rgbColor() routine to build
  52.  * the correct pixel format, but you can use it yourself to build scanline
  53.  * information in the desired format.
  54.  */
  55.  
  56. extern    uchar    redMask,greenMask,blueMask;
  57. extern    int        redPos,redAdjust;
  58. extern    int        greenPos,greenAdjust;
  59. extern     int        bluePos,blueAdjust;
  60.  
  61. typedef enum {
  62.     memPL       = 3,                /* Planar memory model              */
  63.     memPK       = 4,                /* Packed pixel memory model        */
  64.     memRGB      = 6,                /* Direct color RGB memory model    */
  65.     memYUV      = 7,                /* Direct color YUV memory model    */
  66.     } memModels;
  67.  
  68. typedef struct {
  69.     uchar    red;
  70.     uchar    green;
  71.     uchar    blue;
  72.     } palette;
  73.  
  74. /*------------------------- Function Prototypes ---------------------------*/
  75.  
  76. #ifdef  __cplusplus
  77. extern "C" {            /* Use "C" linkage when in C++ mode */
  78. #endif
  79.  
  80. /* In svga.c */
  81.  
  82. int initSuperVGA(bool enableSpecialFeatures);
  83. bool setSuperVGAMode(int mode);
  84. void restoreMode(void);
  85. bool getSuperVGAModeInfo(int mode,int *xres,int *yres,int *bytesperline,
  86.     int *bitsperpixel,int *memmodel,int *maxpage,long *pagesize);
  87. bool setSuperVGADisplayStart(int x,int y);
  88. bool set8BitPalette(void);
  89. bool set6BitPalette(void);
  90. void setPalette(int start, int num, palette *palbuf);
  91. void getPalette(int start, int num, palette *palbuf);
  92. long rgbColor(uchar r,uchar g,uchar b);
  93. void writeText(int x,int y,char *str,long color);
  94.  
  95. /* In svga.asm */
  96.  
  97. void _cdecl setActivePage(int page);
  98. void _cdecl setVisualPage(int page);
  99. void _cdecl setBank(int bank);
  100. void _cdecl setReadBank(int bank);
  101.  
  102. extern void (_cdecl *putPixel)(int x,int y,long color);
  103. extern void (_cdecl *clear)(long color);
  104. extern void (_cdecl *line)(int x1,int y1,int x2,int y2,long color);
  105.  
  106. #ifdef  __cplusplus
  107. }                       /* End of "C" linkage for C++   */
  108. #endif
  109.  
  110. #endif  /* __SVGA_H */
  111.