diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2010-04-25 09:24:30 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2010-04-25 09:24:30 +0000 |
commit | 25b9185f17ea8ebb0cf167362ae9fed4d96165c2 (patch) | |
tree | 203128fc9a8eb31b163fdafc7084cd74e775adb8 /libvo/sdl_common.c | |
parent | 8b8fd879ac48ee1472facc04ac4daeaeff48c18f (diff) | |
download | mpv-25b9185f17ea8ebb0cf167362ae9fed4d96165c2.tar.bz2 mpv-25b9185f17ea8ebb0cf167362ae9fed4d96165c2.tar.xz |
Fullscreen support for -vo gl using SDL.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31077 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo/sdl_common.c')
-rw-r--r-- | libvo/sdl_common.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/libvo/sdl_common.c b/libvo/sdl_common.c index 4ef83a7e24..d45382698b 100644 --- a/libvo/sdl_common.c +++ b/libvo/sdl_common.c @@ -26,9 +26,34 @@ #include "input/mouse.h" #include "video_out.h" +static int old_w; +static int old_h; +static int mode_flags; + +void vo_sdl_fullscreen(void) +{ + if (vo_fs) { + vo_dwidth = old_w; + vo_dheight = old_h; + } else { + old_w = vo_dwidth; + old_h = vo_dheight; + vo_dwidth = vo_screenwidth; + vo_dheight = vo_screenheight; + } + vo_fs = !vo_fs; + sdl_set_mode(0, mode_flags); +} + int sdl_set_mode(int bpp, uint32_t flags) { - SDL_Surface *s = SDL_SetVideoMode(vo_dwidth, vo_dheight, bpp, flags); + SDL_Surface *s; + mode_flags = flags; + if (vo_fs) flags |= SDL_FULLSCREEN; + // doublebuf with opengl creates flickering + if (vo_doublebuffering && !(flags & SDL_OPENGL)) + flags |= SDL_DOUBLEBUF; + s = SDL_SetVideoMode(vo_dwidth, vo_dheight, bpp, flags); if (!s) { mp_msg(MSGT_VO, MSGL_FATAL, "SDL SetVideoMode failed: %s\n", SDL_GetError()); return -1; |