aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaroslav Hensl <jara@hensl.cz>2024-09-23 22:52:54 +0200
committerJaroslav Hensl <jara@hensl.cz>2024-09-23 22:52:54 +0200
commitb5a7e91089671879227f4ce231cd06e9e6a24f18 (patch)
tree393d0286241d1fe3a3c5990ab75797d7fe19f24a
parentc69714384db657e4e1215fad53678c77532d236d (diff)
downloadvmdisp9x-b5a7e91089671879227f4ce231cd06e9e6a24f18.tar.gz
DOS: dont pass calls to DIB/VXD when fullscreen DOS mode is actived
-rw-r--r--makefile2
-rw-r--r--scrsw.c2
-rw-r--r--vxd_svga.c14
-rw-r--r--vxd_svga.h10
4 files changed, 17 insertions, 11 deletions
diff --git a/makefile b/makefile
index 65ed1ce..6e5a990 100644
--- a/makefile
+++ b/makefile
@@ -12,7 +12,7 @@ OBJS += &
INCS = -I$(%WATCOM)\h\win -Iddk -Ivmware
-VER_BUILD = 82
+VER_BUILD = 83
FLAGS = -DDRV_VER_BUILD=$(VER_BUILD)
diff --git a/scrsw.c b/scrsw.c
index 638aa0e..d500a65 100644
--- a/scrsw.c
+++ b/scrsw.c
@@ -168,6 +168,7 @@ void SwitchToBgnd( void )
#endif
lpDriverPDevice->deFlags |= BUSY; /// @todo Does this need to be a locked op?
+ wEnabled = 0;
}
/* Called from INT 2Fh hook when the device is switching to the
@@ -186,6 +187,7 @@ void SwitchToFgnd( void )
if( lpDriverPDevice->deFlags & BUSY )
RestoreDesktopMode(); /* Will clear the BUSY flag. */
RepaintScreen();
+ wEnabled = 1;
}
/* This minidriver does not currently disable or enable switching.
diff --git a/vxd_svga.c b/vxd_svga.c
index 1ab2abf..cdba998 100644
--- a/vxd_svga.c
+++ b/vxd_svga.c
@@ -110,15 +110,7 @@ static char SVGA_vxd_name[] = "vmwsmini.vxd";
static char SVGA_conf_disable_multisample[] = "NoMultisample";
static char SVGA_conf_async_mobs[] = "AsyncMOBs";
-typedef struct _svga_saved_state_t
-{
- BOOL enabled;
- DWORD width;
- DWORD height;
- DWORD bpp;
-} svga_saved_state_t;
-
-static svga_saved_state_t svga_saved_state = {FALSE};
+svga_saved_state_t svga_saved_state = {FALSE};
/**
* Notify virtual HW that is some work to do
@@ -1059,6 +1051,8 @@ void SVGA_query_vector(DWORD type, DWORD index_start, DWORD count, DWORD *out)
void SVGA_HW_enable()
{
+ dbg_printf("SVGA_HW_enable()\n");
+
if(hda->width > 0 && hda->height > 0)
{
SVGA_WriteReg(SVGA_REG_ENABLE, TRUE);
@@ -1071,7 +1065,7 @@ void SVGA_HW_enable()
void SVGA_HW_disable()
{
- dbg_printf(dbg_disable);
+ dbg_printf("SVGA_HW_disable()\n");
SVGA_CB_stop();
diff --git a/vxd_svga.h b/vxd_svga.h
index 911a049..93f525c 100644
--- a/vxd_svga.h
+++ b/vxd_svga.h
@@ -68,4 +68,14 @@ void SVGA_CMB_wait_update();
void mob_cb_alloc();
void *mob_cb_get();
+typedef struct _svga_saved_state_t
+{
+ BOOL enabled;
+ DWORD width;
+ DWORD height;
+ DWORD bpp;
+} svga_saved_state_t;
+
+extern svga_saved_state_t svga_saved_state;
+
#endif /* __VXD_SVGA_H__INCLUDED__ */