mirror of
https://github.com/mpv-player/mpv
synced 2025-03-02 04:11:03 +00:00
Hack: Create a child window for Windows OpenGL with -wid, since (esp. nVidia)
drivers have problems drawing in other processes' windows. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25965 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
325b472ae6
commit
83834ac968
@ -156,11 +156,9 @@ int vo_w32_check_events(void) {
|
|||||||
}
|
}
|
||||||
if (WinID >= 0) {
|
if (WinID >= 0) {
|
||||||
RECT r;
|
RECT r;
|
||||||
GetClientRect(vo_window, &r);
|
GetClientRect(WinID, &r);
|
||||||
if (r.right != vo_dwidth || r.bottom != vo_dheight)
|
if (r.right != vo_dwidth || r.bottom != vo_dheight)
|
||||||
event_flags |= VO_EVENT_RESIZE;
|
MoveWindow(vo_window, 0, 0, r.right, r.bottom, FALSE);
|
||||||
vo_dwidth = r.right;
|
|
||||||
vo_dheight = r.bottom;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return event_flags;
|
return event_flags;
|
||||||
@ -372,8 +370,14 @@ int vo_w32_init(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (WinID >= 0)
|
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_window = CreateWindowEx(0, classname, classname,
|
||||||
vo_border ? (WS_OVERLAPPEDWINDOW | WS_SIZEBOX) : WS_POPUP,
|
vo_border ? (WS_OVERLAPPEDWINDOW | WS_SIZEBOX) : WS_POPUP,
|
||||||
CW_USEDEFAULT, 0, 100, 100, 0, 0, hInstance, 0);
|
CW_USEDEFAULT, 0, 100, 100, 0, 0, hInstance, 0);
|
||||||
@ -381,7 +385,6 @@ int vo_w32_init(void) {
|
|||||||
mp_msg(MSGT_VO, MSGL_ERR, "vo: win32: unable to create window!\n");
|
mp_msg(MSGT_VO, MSGL_ERR, "vo: win32: unable to create window!\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
myMonitorFromWindow = NULL;
|
myMonitorFromWindow = NULL;
|
||||||
myGetMonitorInfo = NULL;
|
myGetMonitorInfo = NULL;
|
||||||
@ -421,7 +424,6 @@ void vo_w32_uninit(void) {
|
|||||||
resetMode();
|
resetMode();
|
||||||
ShowCursor(1);
|
ShowCursor(1);
|
||||||
vo_depthonscreen = 0;
|
vo_depthonscreen = 0;
|
||||||
if (WinID < 0)
|
|
||||||
DestroyWindow(vo_window);
|
DestroyWindow(vo_window);
|
||||||
vo_window = 0;
|
vo_window = 0;
|
||||||
UnregisterClass(classname, 0);
|
UnregisterClass(classname, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user