Mercurial > mplayer.hg
changeset 25933:9b395b94d6a7
Hack: Create a child window for Windows OpenGL with -wid, since (esp. nVidia)
drivers have problems drawing in other processes' windows.
author | reimar |
---|---|
date | Sat, 09 Feb 2008 14:14:35 +0000 |
parents | f85dc2a992c3 |
children | f0e227951c06 |
files | libvo/w32_common.c |
diffstat | 1 files changed, 10 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/libvo/w32_common.c Sat Feb 09 13:13:02 2008 +0000 +++ b/libvo/w32_common.c Sat Feb 09 14:14:35 2008 +0000 @@ -156,11 +156,9 @@ } if (WinID >= 0) { RECT r; - GetClientRect(vo_window, &r); + GetClientRect(WinID, &r); if (r.right != vo_dwidth || r.bottom != vo_dheight) - event_flags |= VO_EVENT_RESIZE; - vo_dwidth = r.right; - vo_dheight = r.bottom; + MoveWindow(vo_window, 0, 0, r.right, r.bottom, FALSE); } return event_flags; @@ -372,8 +370,14 @@ } if (WinID >= 0) - vo_window = (HWND)WinID; - else { + { + RECT r; + GetClientRect(WinID, &r); + vo_dwidth = r.right; vo_dheight = r.bottom; + vo_window = CreateWindowEx(0, classname, classname, + WS_CHILD | WS_VISIBLE, + 0, 0, vo_dwidth, vo_dheight, WinID, 0, hInstance, 0); + } else vo_window = CreateWindowEx(0, classname, classname, vo_border ? (WS_OVERLAPPEDWINDOW | WS_SIZEBOX) : WS_POPUP, CW_USEDEFAULT, 0, 100, 100, 0, 0, hInstance, 0); @@ -381,7 +385,6 @@ mp_msg(MSGT_VO, MSGL_ERR, "vo: win32: unable to create window!\n"); return 0; } - } myMonitorFromWindow = NULL; myGetMonitorInfo = NULL; @@ -421,7 +424,6 @@ resetMode(); ShowCursor(1); vo_depthonscreen = 0; - if (WinID < 0) DestroyWindow(vo_window); vo_window = 0; UnregisterClass(classname, 0);