summaryrefslogtreecommitdiffstats
path: root/libvo/vo_directx.c
diff options
context:
space:
mode:
authorwm4 <wm4@mplayer2.org>2011-10-22 02:11:14 +0200
committerwm4 <wm4@mplayer2.org>2012-03-17 20:58:16 +0100
commit2449cbde2c31e1429fd8507880d68721cf95efe1 (patch)
tree7d880a6d9143843732d9318d01bc673bc33bda8b /libvo/vo_directx.c
parent1dc73836d97af2a6bd83f0ab3a9e7b6dd5a28ae1 (diff)
downloadmpv-2449cbde2c31e1429fd8507880d68721cf95efe1.tar.bz2
mpv-2449cbde2c31e1429fd8507880d68721cf95efe1.tar.xz
win32: fix window creation and size handling
This commit fixes various issues with the way the window position and size is setup. Most importantly, it fixes some bugs with restoring from fullscreen state. Rename create_rendering_context() to reinit_window_state(). This function doesn't create anything, it just sets the window bounds and styles. Do not use vo_dx/dy for the window position, as video_out.c overwrites it with each vo_config() call. Use private variables window_x/y instead. A big cause for issues was that reinit_window_state() accidentally cleared the WS_VISIBLE style. I suspect that the API call to temporarily hide the window was a hack to deal with this. Another bug was that the window style was changed without calling SetWindowPos with SWP_FRAMECHANGED (as the MSDN documentation says). Properly initialize window position and size on vo_config following the same rules as the x11 backend: - Never change the window position. The window position should be kept, as the user might move the window, and resetting the window position e.g. during ordered chapter playback is not desired. - Never change the window size, unless the size of the video changes. These rules don't apply to fullscreen. When switching from fullscreen to windowed mode, the backend should restore the previous windowed size and position. When the VO was reconfigured during playback (vo_config() etc.), the saved window position and size should be changed according to the rules above, even if the window was in fullscreen mode during reconfiguring. Note that these rules might be perceived as awkward by some users: if you play multiple files with different resolutions, the window won't be centered when playing the files after the first. This is not a bug.
Diffstat (limited to 'libvo/vo_directx.c')
0 files changed, 0 insertions, 0 deletions