From 87f19ee3797ea5db154d5f7339ac352dc81848b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Banaan=20Ananas?= Date: Mon, 16 Dec 2013 16:08:45 +0000 Subject: [PATCH] Windows: Fixed D3D multimonitor support. [GroovyMAME] --- src/osd/windows/drawd3d.c | 2 +- src/osd/windows/window.c | 3 +++ src/osd/windows/window.h | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/osd/windows/drawd3d.c b/src/osd/windows/drawd3d.c index 251c772e274..1449f1c5d5d 100644 --- a/src/osd/windows/drawd3d.c +++ b/src/osd/windows/drawd3d.c @@ -903,7 +903,7 @@ try_again: D3DPRESENT_INTERVAL_ONE : D3DPRESENT_INTERVAL_IMMEDIATE; // create the D3D device - result = (*d3dintf->d3d.create_device)(d3dintf, m_adapter, D3DDEVTYPE_HAL, m_window->hwnd, + result = (*d3dintf->d3d.create_device)(d3dintf, m_adapter, D3DDEVTYPE_HAL, m_window->focus_hwnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_FPU_PRESERVE, &m_presentation, &m_device); if (result != D3D_OK) { diff --git a/src/osd/windows/window.c b/src/osd/windows/window.c index 285ebe8d14f..d89c15d98da 100644 --- a/src/osd/windows/window.c +++ b/src/osd/windows/window.c @@ -1178,6 +1178,9 @@ static int complete_create(win_window_info *window) if (window->hwnd == NULL) return 1; + // set window #0 as the focus window for all windows, required for D3D & multimonitor + window->focus_hwnd = win_window_list->hwnd; + // set a pointer back to us SetWindowLongPtr(window->hwnd, GWLP_USERDATA, (LONG_PTR)window); diff --git a/src/osd/windows/window.h b/src/osd/windows/window.h index 9784fd643de..b5bf3f3e52a 100644 --- a/src/osd/windows/window.h +++ b/src/osd/windows/window.h @@ -45,6 +45,7 @@ public: // window handle and info HWND hwnd; + HWND focus_hwnd; char title[256]; RECT non_fullscreen_bounds; int startmaximized;