summaryrefslogtreecommitdiffstats
path: root/libvo/sdl_common.c
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-04-25 09:24:30 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-04-25 09:24:30 +0000
commit25b9185f17ea8ebb0cf167362ae9fed4d96165c2 (patch)
tree203128fc9a8eb31b163fdafc7084cd74e775adb8 /libvo/sdl_common.c
parent8b8fd879ac48ee1472facc04ac4daeaeff48c18f (diff)
downloadmpv-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.c27
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;