aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaroslav Hensl <jara@hensl.cz>2024-12-08 23:41:53 +0100
committerJaroslav Hensl <jara@hensl.cz>2024-12-08 23:41:53 +0100
commiteadb6ba06c642d2dd0d72e6bda08fba3bd09b5ad (patch)
treec8b638813378cf59a0e0d91511f7cf58e36ee70d
parent3cd2c05f47e08a1364589638fa0f8bbcc50f14d1 (diff)
downloadvmdisp9x-eadb6ba06c642d2dd0d72e6bda08fba3bd09b5ad.tar.gz
split vmhal9x.dll to vmdisp9x.dll and vmhal9x.dll
-rw-r--r--makefile2
-rw-r--r--vmdahal.h9
-rw-r--r--vmdisp9x.inf5
-rw-r--r--vxd_svga.c11
4 files changed, 13 insertions, 14 deletions
diff --git a/makefile b/makefile
index 37ec4e1..0c6248b 100644
--- a/makefile
+++ b/makefile
@@ -12,7 +12,7 @@ OBJS += &
INCS = -I$(%WATCOM)\h\win -Iddk -Ivmware
-VER_BUILD = 91
+VER_BUILD = 92
FLAGS = -DDRV_VER_BUILD=$(VER_BUILD)
diff --git a/vmdahal.h b/vmdahal.h
index 363c6f3..818fe9d 100644
--- a/vmdahal.h
+++ b/vmdahal.h
@@ -42,13 +42,6 @@ typedef struct VMDAHALCB32
LPDDHAL_FLIPTOGDISURFACE FlipToGDISurface;
} VMDAHALCB32_t;
-struct VXD_pair
-{
- DWORD pid;
- DWORD vxd;
-};
-
-#define VXD_PAIRS_CNT 32
#define DISP_MODES_MAX 512
typedef struct VMDAHAL_D3DCAPS
@@ -81,8 +74,6 @@ typedef struct VMDAHAL
DWORD hDC;
- struct VXD_pair vxd_table[VXD_PAIRS_CNT];
-
DDHALMODEINFO2_t modes[DISP_MODES_MAX];
DWORD modes_count;
DWORD custom_mode_id;
diff --git a/vmdisp9x.inf b/vmdisp9x.inf
index 451ebe6..2aee926 100644
--- a/vmdisp9x.inf
+++ b/vmdisp9x.inf
@@ -57,6 +57,7 @@ qxlmini.vxd=1
;syscopy:msd3d8.dll=1,sys
;syscopy:msd3d9.dll=1,sys
;vmhal:vmhal9x.dll=1
+;vmhal:vmdisp9x.dll=1
[Manufacturer]
%Mfg%=Mfg.VM
@@ -99,18 +100,21 @@ boxvmini.drv,,,0x00000004
boxvmini.vxd,,,0x00000004
;mesa:mesa3d.dll,,,0x00000004
;vmhal:vmhal9x.dll,,,0x00000004
+;vmhal:vmdisp9x.dll,,,0x00000004
[Qemu.Copy]
qemumini.drv,,,0x00000004
qemumini.vxd,,,0x00000004
;mesa:mesa3d.dll,,,0x00000004
;vmhal:vmhal9x.dll,,,0x00000004
+;vmhal:vmdisp9x.dll,,,0x00000004
[QXL.Copy]
qxlmini.drv,,,0x00000004
qxlmini.vxd,,,0x00000004
;mesa:mesa3d.dll,,,0x00000004
;vmhal:vmhal9x.dll,,,0x00000004
+;vmhal:vmdisp9x.dll,,,0x00000004
[VMSvga.Copy]
vmwsmini.drv,,,0x00000004
@@ -118,6 +122,7 @@ vmwsmini.vxd,,,0x00000004
;mesa:vmwsgl32.dll,,,0x00000004
;mesa:mesa3d.dll,,,0x00000004
;vmhal:vmhal9x.dll,,,0x00000004
+;vmhal:vmdisp9x.dll,,,0x00000004
[Voodoo.Copy]
;3dfx:3dfxspl2.dll,,,0x00000010
diff --git a/vxd_svga.c b/vxd_svga.c
index 0d77c6e..f9e24ef 100644
--- a/vxd_svga.c
+++ b/vxd_svga.c
@@ -952,6 +952,8 @@ BOOL SVGA_setmode(DWORD w, DWORD h, DWORD bpp)
mouse_invalidate();
FBHDA_access_end(0);
+ fb_lock_cnt = 0; // reset lock counters
+
return TRUE;
}
@@ -1311,6 +1313,8 @@ void FBHDA_access_begin(DWORD flags)
void FBHDA_access_end(DWORD flags)
{
+ //dbg_printf("+++ FBHDA_access_end: %ld\n", fb_lock_cnt);
+
if(hda->overlay > 0)
{
return;
@@ -1333,14 +1337,13 @@ void FBHDA_access_end(DWORD flags)
}
}
- fb_lock_cnt--;
- if(fb_lock_cnt < 0) fb_lock_cnt = 0;
-
- if(fb_lock_cnt == 0)
+ if(--fb_lock_cnt <= 0)
{
DWORD w, h;
BOOL need_refresh = ((hda->bpp == 32) && (hda->system_surface == 0));
+ fb_lock_cnt = 0;
+
w = rect_right - rect_left;
h = rect_bottom - rect_top;