home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0040 - 0049 / ibm0040-0049 / ibm0040.tar / ibm0040 / IMGPROC.ZIP / C1.ZIP / VGA.H < prev    next >
Encoding:
C/C++ Source or Header  |  1990-10-11  |  2.5 KB  |  77 lines

  1. /*  
  2. Copyright 1990 by John Wiley & Sons, Inc.
  3.           All Rights Reserved.
  4. */
  5.  
  6. /****************************************/
  7. /*           VGA Header File            */
  8. /*      for VGA access functions        */
  9. /*       written in Turbo C 2.0         */
  10. /*                by                    */
  11. /*         Craig A. Lindley             */
  12. /*                                      */
  13. /*   Vers: 1.0  Last Update: 12/08/89   */
  14. /****************************************/
  15.  
  16. /* defines for 320x200, 640x200 and 640x480 resolution VGA screens */
  17. #define LRMAXCOLS 320      /* 320x200 256 color mode */
  18. #define LRMAXROWS 200
  19. #define LRVIDEOMODE 0x13   /* as returned from GetVideoMode call */
  20.  
  21. #define MRMAXCOLS 640      /* 640x200 16 color mode */
  22. #define MRMAXROWS 200
  23. #define MRVIDEOMODE 0x0E   /* as returned from GetVideoMode call */
  24.  
  25. #define HRMAXCOLS 640      /* 640x480 16 color mode */
  26. #define HRMAXROWS 480
  27. #define HRVIDEOMODE 0x12   /* as returned from GetVideoMode call */
  28.  
  29. #define SCREENWIDTHINCHES  (double) 9.500
  30. #define SCREENHEIGHTINCHES (double) 7.125
  31.  
  32. /*
  33. The following values are used to convert between
  34. vertical and horiz pixels and inches of display.
  35. Used in aspect ratio calculations for image rotations.
  36. Could be calculated for all resolutions, but only
  37. low res (LR) is used currently.
  38. */
  39.  
  40. /*
  41. LRPIXELSPERINCHHORIZ is LRMAXCOLS/SCREENWIDTHINCHES.
  42. It is defined as a constant for speed in floating
  43. point operations. LRINCHESPERPIXELHORIZ is 1 over
  44. LRPIXELPERINCHHORIZ.
  45. */
  46. #define LRPIXELSPERINCHHORIZ  (double) 33.68421053
  47. #define LRINCHESPERPIXELHORIZ (double)  0.02968750
  48.  
  49. /*
  50. LRPIXELSPERINCHVERT is LRMAXROWS/SCREENHEIGHTINCHES.
  51. It is defined as a constant for speed in floating
  52. point operations. LRINCHESPERPIXELVERT is 1 over
  53. LRPIXELPERINCHVERT.
  54. */
  55. #define LRPIXELSPERINCHVERT  (double) 28.07017544
  56. #define LRINCHESPERPIXELVERT (double)  0.03562500
  57.  
  58.  
  59. #define MAXCOLREGVAL 63
  60.  
  61. /* VGA Function Declarations */
  62.  
  63. /* Assembler Language Function Prototypes */
  64. void     PutPixel256 (unsigned Col, unsigned Row, unsigned Color);
  65. unsigned GetPixel256 (unsigned Col, unsigned Row);
  66.  
  67. /* C Function Prototypes */
  68. void InitGraphics (void);
  69. unsigned GetVideoMode(void);
  70. void Set256ColorMode (void);
  71. void SetAColorReg (unsigned RegNum, unsigned Red,
  72.            unsigned Green,  unsigned Blue);
  73. void GetAColorReg (unsigned RegNum, unsigned *Red,
  74.            unsigned *Green, unsigned *Blue);
  75. void LoadGray16Palette (void);
  76. void LoadGray64Palette (void);
  77.