From 587af2c855feaad2a6a43b3ce57fc24de6be0bc9 Mon Sep 17 00:00:00 2001 From: narzoul Date: Sun, 30 Dec 2018 13:07:55 +0100 Subject: [PATCH] Fixed incorrect DC used for opening GDI adapter --- DDrawCompat/D3dDdi/KernelModeThunks.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/DDrawCompat/D3dDdi/KernelModeThunks.cpp b/DDrawCompat/D3dDdi/KernelModeThunks.cpp index b998858..4b335e8 100644 --- a/DDrawCompat/D3dDdi/KernelModeThunks.cpp +++ b/DDrawCompat/D3dDdi/KernelModeThunks.cpp @@ -245,13 +245,17 @@ namespace g_gdiAdapterInfo = {}; } + MONITORINFOEX mi = {}; + mi.cbSize = sizeof(mi); + GetMonitorInfo(MonitorFromPoint({}, MONITOR_DEFAULTTOPRIMARY), &mi); + D3DKMT_OPENADAPTERFROMHDC data = {}; - data.hDc = GetDC(nullptr); + data.hDc = CreateDC(mi.szDevice, mi.szDevice, nullptr, nullptr); if (SUCCEEDED(CALL_ORIG_FUNC(D3DKMTOpenAdapterFromHdc)(&data))) { g_gdiAdapterInfo = getAdapterInfo(data); } - CALL_ORIG_FUNC(ReleaseDC)(nullptr, data.hDc); + DeleteDC(data.hDc); lastDisplaySettingsUniqueness = currentDisplaySettingsUniqueness; }