home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / 3DTOSHI2.ZIP / mpgfx / include / Gfxvesa.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-17  |  2.7 KB  |  104 lines

  1.  
  2. // gfxvesa.h
  3. //
  4. // Copyright (c) 1995 by Toshiaki Tsuji, all rights reserved.
  5.  
  6. #ifndef __GFXVESEDRV_H__
  7. #define __GFXVESADRV_H__
  8.  
  9. #include "stdgfx.h"
  10. #include "gfxvga.h"
  11.  
  12. struct VESABLOCK
  13.   {
  14.     char  ID[4];
  15.     SHORT Version;
  16.     DWORD OEM;
  17.     DWORD Capabilities;
  18.     SHORT Memory;
  19.     DWORD ModePtr;
  20.  
  21.     // VESA 2.0 Extension
  22.     SHORT OEMSoftwareRev;
  23.     DWORD OEMVendorName;
  24.     DWORD OEMProductName;
  25.     DWORD OEMProductRev;
  26.     CHAR  Reserved[222];
  27.     CHAR  OEMData[256];
  28.   }; // End of VESABLOCK
  29.  
  30. struct VESAMODEINFO
  31.   {
  32.     SHORT Attributes;
  33.     CHAR  WinAAttr;
  34.     CHAR  WinBAttr;
  35.     SHORT WinGranuality;
  36.     SHORT WinSize;
  37.     SHORT WinASegment;
  38.     SHORT WinBSegment;
  39.     DWORD WinFuncPtr;
  40.     SHORT BytesPerScanLine;
  41.     SHORT XResolution;
  42.     SHORT YResolution;
  43.     CHAR  XCharSize;
  44.     CHAR  YCharSize;
  45.     CHAR  NumPlanes;
  46.     CHAR  BitsPerPixel;
  47.     CHAR  NumBanks;
  48.     CHAR  MemoryModel;
  49.     CHAR  BankSize;
  50.     CHAR  NumImages;
  51.     CHAR  Res1;
  52.     CHAR  RedMaskSize;
  53.     CHAR  RedFieldPos;
  54.     CHAR  GreenMaskSize;
  55.     CHAR  GreenFieldPos;
  56.     CHAR  BlueMaskSize;
  57.     CHAR  BlueFieldPos;
  58.     CHAR  RsvMaskSize;
  59.     CHAR  RsvFieldPos; 
  60.     CHAR  tDirectColor;
  61.  
  62.     // VESA 2.0 Extension
  63.     DWORD PhysBasePtr;
  64.     DWORD OffScrOffset;
  65.     DWORD OffScrSize;
  66.     CHAR  Res[206];
  67.   }; // End of VESAMODEINFO
  68.  
  69. class VESADRIVER : public VGADRIVER
  70.   {
  71.     protected :
  72.       VESABLOCK *VESABlock;
  73.  
  74.       BOOLEAN DetectVESA ();
  75.       BOOLEAN SetRowSize ( LONG Size );
  76.       BOOLEAN SetVESAMode ( LONG ModeNumber );
  77.       BOOLEAN SetVESABank ( LONG Bank );
  78.  
  79.       virtual VOID DrawHorizLine ( HDISPLAY hDisplay, LONG x1,
  80.                                    LONG x2, LONG y, COLOR Color );
  81.  
  82.     public :
  83.       VESADRIVER ();
  84.       virtual ~VESADRIVER ();
  85.  
  86.       virtual BOOLEAN SetUp ( DISPLAYDATA *Data );
  87.       virtual VOID Reset ();
  88.       VOID Clear ( HDISPLAY hDisplay, LONG Color );
  89.  
  90.       virtual VOID DisplayImage ( IMAGE *Image, LONG Sx, LONG Sy,
  91.                                   LONG Wd, LONG Ht, HDISPLAY Dest,
  92.                                   LONG Cx, LONG Cy, LONG DestWd, LONG DestHt );
  93.       virtual VOID DrawLine ( HDISPLAY hDisplay, LONG x1, LONG y1, LONG x2, LONG y2,
  94.                               COLOR  Color );
  95.       virtual VOID DrawRect ( HDISPLAY hDisplay, LONG x1, LONG y1, LONG x2, LONG y2,
  96.                               COLOR Color );
  97.       virtual VOID FillRect ( HDISPLAY hDisplay, LONG x1, LONG y1, LONG x2, LONG y2,
  98.                               COLOR Color );
  99.       virtual VOID DrawPixel ( HDISPLAY hDisplay, LONG x, LONG y,
  100.                                COLOR Color );
  101.   }; // End of VESADRIVER
  102.  
  103. #endif
  104.