1
0
mirror of https://github.com/narzoul/DDrawCompat synced 2024-12-30 08:55:36 +01:00

Fixed a GDI resource leak when NVIDIA overlay is enabled

See issue #282.
This commit is contained in:
narzoul 2024-03-23 18:24:34 +01:00
parent ca2c3b7106
commit 2e48469ae4

View File

@ -15,6 +15,7 @@
#include <D3dDdi/ScopedCriticalSection.h> #include <D3dDdi/ScopedCriticalSection.h>
#include <D3dDdi/ShaderAssembler.h> #include <D3dDdi/ShaderAssembler.h>
#include <DDraw/ScopedThreadLock.h> #include <DDraw/ScopedThreadLock.h>
#include <Gdi/DcFunctions.h>
namespace namespace
{ {
@ -462,7 +463,9 @@ namespace D3dDdi
d.hSrcResource = resource->prepareForGpuRead(data->SrcSubResourceIndex); d.hSrcResource = resource->prepareForGpuRead(data->SrcSubResourceIndex);
} }
Gdi::DcFunctions::disableDibRedirection(true);
HRESULT result = m_origVtable.pfnPresent(m_device, &d); HRESULT result = m_origVtable.pfnPresent(m_device, &d);
Gdi::DcFunctions::disableDibRedirection(false);
updateAllConfigNow(); updateAllConfigNow();
return result; return result;
} }
@ -481,7 +484,9 @@ namespace D3dDdi
} }
} }
Gdi::DcFunctions::disableDibRedirection(true);
HRESULT result = m_origVtable.pfnPresent1(m_device, data); HRESULT result = m_origVtable.pfnPresent1(m_device, data);
Gdi::DcFunctions::disableDibRedirection(false);
updateAllConfigNow(); updateAllConfigNow();
return result; return result;
} }