[MPlayer-cvslog] r31075 - in trunk/libvo: gl_common.c sdl_common.c sdl_common.h vo_gl.c

reimar subversion at mplayerhq.hu
Sun Apr 25 10:35:35 CEST 2010


Author: reimar
Date: Sun Apr 25 10:35:35 2010
New Revision: 31075

Log:
Window resizing support for -vo gl with SDL backend.

Modified:
   trunk/libvo/gl_common.c
   trunk/libvo/sdl_common.c
   trunk/libvo/sdl_common.h
   trunk/libvo/vo_gl.c

Modified: trunk/libvo/gl_common.c
==============================================================================
--- trunk/libvo/gl_common.c	Sun Apr 25 10:17:23 2010	(r31074)
+++ trunk/libvo/gl_common.c	Sun Apr 25 10:35:35 2010	(r31075)
@@ -1855,6 +1855,8 @@ static void *sdlgpa(const GLubyte *name)
 }
 
 static int setGlWindow_sdl(MPGLContext *ctx) {
+  if (sdl_set_mode(0, SDL_OPENGL | SDL_RESIZABLE) < 0)
+    return SET_WINDOW_FAILED;
   SDL_GL_LoadLibrary(NULL);
   getFunctions(sdlgpa, NULL);
   return SET_WINDOW_OK;
@@ -1866,6 +1868,8 @@ static int sdl_check_events(void) {
   while (SDL_PollEvent(&event)) {
     res |= sdl_default_handle_event(&event);
   }
+  if (res & VO_EVENT_RESIZE)
+    sdl_set_mode(0, SDL_OPENGL | SDL_RESIZABLE);
   return res;
 }
 

Modified: trunk/libvo/sdl_common.c
==============================================================================
--- trunk/libvo/sdl_common.c	Sun Apr 25 10:17:23 2010	(r31074)
+++ trunk/libvo/sdl_common.c	Sun Apr 25 10:35:35 2010	(r31075)
@@ -26,6 +26,18 @@
 #include "input/mouse.h"
 #include "video_out.h"
 
+int sdl_set_mode(int bpp, uint32_t flags)
+{
+    SDL_Surface *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;
+    }
+    vo_dwidth  = s->w;
+    vo_dheight = s->h;
+    return 0;
+}
+
 #define shift_key (event->key.keysym.mod==(KMOD_LSHIFT||KMOD_RSHIFT))
 int sdl_default_handle_event(SDL_Event *event)
 {

Modified: trunk/libvo/sdl_common.h
==============================================================================
--- trunk/libvo/sdl_common.h	Sun Apr 25 10:17:23 2010	(r31074)
+++ trunk/libvo/sdl_common.h	Sun Apr 25 10:35:35 2010	(r31075)
@@ -27,6 +27,8 @@
 #else
 #include <SDL.h>
 #endif
+
+int sdl_set_mode(int bpp, uint32_t flags);
 int sdl_default_handle_event(SDL_Event *event);
 
 #endif

Modified: trunk/libvo/vo_gl.c
==============================================================================
--- trunk/libvo/vo_gl.c	Sun Apr 25 10:17:23 2010	(r31074)
+++ trunk/libvo/vo_gl.c	Sun Apr 25 10:35:35 2010	(r31075)
@@ -598,13 +598,8 @@ static int create_window(uint32_t d_widt
 #endif
 #ifdef CONFIG_GL_SDL
   if (glctx.type == GLTYPE_SDL) {
-    SDL_Surface *s = SDL_SetVideoMode(d_width, d_height, 0, SDL_OPENGL | SDL_RESIZABLE);
-    if (!s) {
-      mp_msg(MSGT_VO, MSGL_FATAL, "SDL SetVideoMode failed: %s\n", SDL_GetError());
-      return -1;
-    }
-    vo_dwidth  = s->w;
-    vo_dheight = s->h;
+    vo_dwidth  = d_width;
+    vo_dheight = d_height;
   }
 #endif
   return 0;


More information about the MPlayer-cvslog mailing list