diff --git a/DDrawCompat/Config/Config.h b/DDrawCompat/Config/Config.h index 420e8b5..3ef60c6 100644 --- a/DDrawCompat/Config/Config.h +++ b/DDrawCompat/Config/Config.h @@ -9,4 +9,5 @@ namespace Config const int delayedFlipModeTimeout = 200; const int maxPaletteUpdatesPerMs = 5; const int minExpectedFlipsPerSec = 5; + const int virtualScreenBufferExtraRows = 2; } diff --git a/DDrawCompat/Gdi/VirtualScreen.cpp b/DDrawCompat/Gdi/VirtualScreen.cpp index 9fac26c..97ad09f 100644 --- a/DDrawCompat/Gdi/VirtualScreen.cpp +++ b/DDrawCompat/Gdi/VirtualScreen.cpp @@ -1,5 +1,6 @@ #include +#include "Config/Config.h" #include "Common/ScopedCriticalSection.h" #include "D3dDdi/Device.h" #include "D3dDdi/ScopedCriticalSection.h" @@ -229,8 +230,8 @@ namespace Gdi CloseHandle(g_surfaceFileMapping); } - g_surfaceFileMapping = CreateFileMapping( - INVALID_HANDLE_VALUE, nullptr, PAGE_READWRITE, 0, g_pitch * g_height, nullptr); + g_surfaceFileMapping = CreateFileMapping(INVALID_HANDLE_VALUE, nullptr, PAGE_READWRITE, 0, + g_pitch * (g_height + Config::virtualScreenBufferExtraRows), nullptr); g_surfaceView = MapViewOfFile(g_surfaceFileMapping, FILE_MAP_WRITE, 0, 0, 0); for (HDC dc : g_dcs)