1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-21 22:54:16 +01:00

[d3d9] Re-look up wnd proc iterator

Avoids a potential issue where this could change address during this time.
This commit is contained in:
Joshua Ashton 2020-04-06 19:40:25 +01:00
parent a80eea926a
commit 47ddd8466a

View File

@ -529,12 +529,11 @@ namespace dxvk {
if (changeFullscreen) if (changeFullscreen)
this->EnterFullscreenMode(pPresentParams, pFullscreenDisplayMode); this->EnterFullscreenMode(pPresentParams, pFullscreenDisplayMode);
std::unique_lock<std::recursive_mutex> lock(windowProcMapMutex); {
std::lock_guard<std::recursive_mutex> lock(windowProcMapMutex);
auto it = windowProcMap.find(m_window); auto it = windowProcMap.find(m_window);
it->second.filter = true; it->second.filter = true;
}
lock.unlock();
if (!changeFullscreen) if (!changeFullscreen)
ChangeDisplayMode(pPresentParams, pFullscreenDisplayMode); ChangeDisplayMode(pPresentParams, pFullscreenDisplayMode);
@ -547,9 +546,11 @@ namespace dxvk {
rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top,
SWP_FRAMECHANGED | SWP_SHOWWINDOW | SWP_NOACTIVATE); SWP_FRAMECHANGED | SWP_SHOWWINDOW | SWP_NOACTIVATE);
lock.lock(); {
std::lock_guard<std::recursive_mutex> lock(windowProcMapMutex);
it->second.filter = false; auto it = windowProcMap.find(m_window);
it->second.filter = false;
}
} }
m_presentParams = *pPresentParams; m_presentParams = *pPresentParams;