diff options
| author | 2013-12-16 16:08:45 +0000 | |
|---|---|---|
| committer | 2013-12-16 16:08:45 +0000 | |
| commit | 87f19ee3797ea5db154d5f7339ac352dc81848b0 (patch) | |
| tree | 94c62d5b20c7486bf4b5c3540fff8c0c2061aa5b /src/osd | |
| parent | d3ba7dd6451db1b5d0e2a6e8def461cb4fd9c671 (diff) | |
Windows: Fixed D3D multimonitor support. [GroovyMAME]
Diffstat (limited to 'src/osd')
| -rw-r--r-- | src/osd/windows/drawd3d.c | 2 | ||||
| -rw-r--r-- | src/osd/windows/window.c | 3 | ||||
| -rw-r--r-- | src/osd/windows/window.h | 1 |
3 files changed, 5 insertions, 1 deletions
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; |
