summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd
diff options
context:
space:
mode:
author Michaël Banaan Ananas <happppp@users.noreply.github.com>2013-12-16 16:08:45 +0000
committer Michaël Banaan Ananas <happppp@users.noreply.github.com>2013-12-16 16:08:45 +0000
commit87f19ee3797ea5db154d5f7339ac352dc81848b0 (patch)
tree94c62d5b20c7486bf4b5c3540fff8c0c2061aa5b /src/osd
parentd3ba7dd6451db1b5d0e2a6e8def461cb4fd9c671 (diff)
Windows: Fixed D3D multimonitor support. [GroovyMAME]
Diffstat (limited to 'src/osd')
-rw-r--r--src/osd/windows/drawd3d.c2
-rw-r--r--src/osd/windows/window.c3
-rw-r--r--src/osd/windows/window.h1
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;