DOSBox-X
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines
src/hardware/voodoo_interface.h
00001  /*
00002  *  Copyright (C) 2002-2020  The DOSBox Team
00003  *
00004  *  This program is free software; you can redistribute it and/or modify
00005  *  it under the terms of the GNU General Public License as published by
00006  *  the Free Software Foundation; either version 2 of the License, or
00007  *  (at your option) any later version.
00008  *
00009  *  This program is distributed in the hope that it will be useful,
00010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012  *  GNU General Public License for more details.
00013  *
00014  *  You should have received a copy of the GNU General Public License along
00015  *  with this program; if not, write to the Free Software Foundation, Inc.,
00016  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00017  */
00018 
00019 
00020 #ifndef DOSBOX_VOODOO_IF_H
00021 #define DOSBOX_VOODOO_IF_H
00022 
00023 typedef struct vdraw {
00024         Bitu width;
00025         Bitu height;
00026         Bitu bpp;
00027         float vfreq;
00028         double frame_start;
00029         bool doublewidth;
00030         bool doubleheight;
00031 
00032         bool override_on;
00033 
00034         bool screen_update_requested;
00035         bool screen_update_pending;
00036 } voodoo_draw;
00037 
00038 
00039 class Voodoo_PageHandler : public PageHandler {
00040 public:
00041         Voodoo_PageHandler(HostPt /*addr*/){
00042                 flags=PFLAG_NOCODE;
00043         }
00044 
00045         ~Voodoo_PageHandler() {
00046         }
00047 
00048         Bit8u readb(PhysPt addr);
00049         void writeb(PhysPt addr,Bit8u val);
00050         Bit16u readw(PhysPt addr);
00051         void writew(PhysPt addr,Bit16u val);
00052         Bit32u readd(PhysPt addr);
00053         void writed(PhysPt addr,Bit32u val);
00054 };
00055 
00056 
00057 void Voodoo_Initialize(Bits emulation_type, Bits card_type, bool max_voodoomem);
00058 void Voodoo_Shut_Down();
00059 
00060 void Voodoo_PCI_InitEnable(Bitu val);
00061 void Voodoo_PCI_Enable(bool enable);
00062 
00063 PageHandler* Voodoo_GetPageHandler();
00064 
00065 #endif