From b8fd6d1f812df847bc5c1eaec3c1dce66da1826a Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Fri, 17 Dec 2021 02:41:02 +0100 Subject: [PATCH] #131 #125 add option to remove video memory flag --- inc/dd.h | 1 + src/config.c | 5 +++++ src/ddsurface.c | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/inc/dd.h b/inc/dd.h index 4afc477..6c2983a 100644 --- a/inc/dd.h +++ b/inc/dd.h @@ -135,6 +135,7 @@ typedef struct CNCDDRAW BOOL wine; HCURSOR old_cursor; int show_cursor_count; + BOOL novidmem; BOOL accurate_timers; BOOL resizable; BOOL nonexclusive; diff --git a/src/config.c b/src/config.c index 2112bcc..53f1c4c 100644 --- a/src/config.c +++ b/src/config.c @@ -38,6 +38,7 @@ void cfg_load() g_ddraw->fixpitch = cfg_get_bool("fixpitch", FALSE); g_ddraw->fixchilds = cfg_get_int("fixchilds", FIX_CHILDS_DETECT_PAINT); g_ddraw->fixwndprochook = cfg_get_bool("fixwndprochook", FALSE); + g_ddraw->novidmem = cfg_get_bool("novidmem", FALSE); g_ddraw->fixnotresponding = cfg_get_bool("fixnotresponding", FALSE); g_ddraw->locktopleft = cfg_get_bool("locktopleft", FALSE); g_ddraw->releasealt = cfg_get_bool("releasealt", FALSE); @@ -730,18 +731,21 @@ static void cfg_create_ini() "fixmousehook=true\n" "noactivateapp=true\n" "releasealt=true\n" + "novidmem=true\n" "\n" "; Jagged Alliance 2: Wildfire\n" "[WF6]\n" "fixmousehook=true\n" "noactivateapp=true\n" "releasealt=true\n" + "novidmem=true\n" "\n" "; Jagged Alliance 2 - UC mod\n" "[JA2_UC]\n" "fixmousehook=true\n" "noactivateapp=true\n" "releasealt=true\n" + "novidmem=true\n" "\n" "; Kings Quest 8\n" "[Mask]\n" @@ -936,6 +940,7 @@ static void cfg_create_ini() "fixmousehook=true\n" "noactivateapp=true\n" "releasealt=true\n" + "novidmem=true\n" "\n" "; Worms Armageddon\n" "[WA]\n" diff --git a/src/ddsurface.c b/src/ddsurface.c index 8a8ceef..aa592b9 100644 --- a/src/ddsurface.c +++ b/src/ddsurface.c @@ -852,7 +852,7 @@ HRESULT dds_GetSurfaceDesc(IDirectDrawSurfaceImpl* This, LPDDSURFACEDESC lpDDSur lpDDSurfaceDesc->ddpfPixelFormat.dwRGBBitCount = This->bpp; lpDDSurfaceDesc->ddsCaps.dwCaps = This->caps; - if (This->caps & (DDSCAPS_PRIMARYSURFACE | DDSCAPS_BACKBUFFER)) + if (!g_ddraw->novidmem || (This->caps & (DDSCAPS_PRIMARYSURFACE | DDSCAPS_BACKBUFFER))) { lpDDSurfaceDesc->ddsCaps.dwCaps |= DDSCAPS_VIDEOMEMORY; }