From 9e10cd9fa19747e1e9218289c2a22edcff4b66e9 Mon Sep 17 00:00:00 2001 From: James Ross-Gowan Date: Wed, 17 Sep 2014 15:59:44 +1000 Subject: w32: remove Win95 and NT4 monitor code The call to EnumDisplaySettings seems to be a relic from when MPlayer ran on systems that didn't have GetMonitorInfo or SM_CX/CYVIRTUALSCREEN. GetMonitorInfo was loaded dynamically, so it was possible for MPlayer to run without it and use the values returned by EnumDisplaySettings. These are always present in modern versions of Windows, so the values returned from EnumDisplaySettings are always overwritten. Remove the call to EnumDisplaySettings and assume SM_CX/CYVIRTUALSCREEN is always present. Signed-off-by: wm4 --- video/out/w32_common.c | 29 ++++------------------------- 1 file changed, 4 insertions(+), 25 deletions(-) (limited to 'video') diff --git a/video/out/w32_common.c b/video/out/w32_common.c index 266dfbc69d..372dc33f43 100644 --- a/video/out/w32_common.c +++ b/video/out/w32_common.c @@ -875,7 +875,7 @@ static BOOL CALLBACK mon_enum(HMONITOR hmon, HDC hdc, LPRECT r, LPARAM p) return TRUE; } -static void w32_update_xinerama_info(struct vo_w32_state *w32) +static void update_screen_rect(struct vo_w32_state *w32) { struct mp_vo_opts *opts = w32->opts; int screen = w32->current_fs ? opts->fsscreen_id : opts->screen_id; @@ -887,11 +887,6 @@ static void w32_update_xinerama_info(struct vo_w32_state *w32) GetSystemMetrics(SM_CXVIRTUALSCREEN), GetSystemMetrics(SM_CYVIRTUALSCREEN), }; - if (!rc.x1 || !rc.y1) { - rc.x0 = rc.y0 = 0; - rc.x1 = w32->screenrc.x1; - rc.y1 = w32->screenrc.y1; - } rc.x1 += rc.x0; rc.y1 += rc.y0; w32->screenrc = rc; @@ -904,29 +899,13 @@ static void w32_update_xinerama_info(struct vo_w32_state *w32) mi.rcMonitor.left, mi.rcMonitor.top, mi.rcMonitor.right, mi.rcMonitor.bottom, }; - } else if (screen >= 0) { + } else { w32->mon_cnt = 0; w32->mon_id = screen; EnumDisplayMonitors(NULL, NULL, mon_enum, (LONG_PTR)w32); } } -static void updateScreenProperties(struct vo_w32_state *w32) -{ - DEVMODE dm; - dm.dmSize = sizeof dm; - dm.dmDriverExtra = 0; - dm.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT; - - if (!EnumDisplaySettings(0, ENUM_CURRENT_SETTINGS, &dm)) { - MP_ERR(w32, "unable to enumerate display settings!\n"); - return; - } - - w32->screenrc = (struct mp_rect){0, 0, dm.dmPelsWidth, dm.dmPelsHeight}; - w32_update_xinerama_info(w32); -} - static DWORD update_style(struct vo_w32_state *w32, DWORD style) { const DWORD NO_FRAME = WS_POPUP; @@ -960,7 +939,7 @@ static void reinit_window_state(struct vo_w32_state *w32) layer = HWND_TOPMOST; // xxx not sure if this can trigger any unwanted messages (WM_MOVE/WM_SIZE) - updateScreenProperties(w32); + update_screen_rect(w32); int screen_w = w32->screenrc.x1 - w32->screenrc.x0; int screen_h = w32->screenrc.y1 - w32->screenrc.y0; @@ -1192,7 +1171,7 @@ static void *gui_thread(void *ptr) w32->cursor_visible = true; - updateScreenProperties(w32); + update_screen_rect(w32); mp_dispatch_set_wakeup_fn(w32->dispatch, wakeup_gui_thread, w32); -- cgit v1.2.3