[MPlayer-cvslog] r31062 - in trunk/libvo: gl_common.c gl_common.h

reimar subversion at mplayerhq.hu
Sat Apr 24 18:46:47 CEST 2010


Author: reimar
Date: Sat Apr 24 18:46:47 2010
New Revision: 31062

Log:
First steps to support -vo gl with SDL-based Window handling.

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

Modified: trunk/libvo/gl_common.c
==============================================================================
--- trunk/libvo/gl_common.c	Sat Apr 24 12:50:21 2010	(r31061)
+++ trunk/libvo/gl_common.c	Sat Apr 24 18:46:47 2010	(r31062)
@@ -1842,8 +1842,36 @@ static int x11_check_events(void) {
 }
 #endif
 
+#ifdef CONFIG_GL_SDL
+#ifdef CONFIG_SDL_SDL_H
+#include <SDL/SDL.h>
+#else
+#include <SDL.h>
+#endif
+
+static void swapGlBuffers_sdl(MPGLContext *ctx) {
+  SDL_GL_SwapBuffers();
+}
+
+#endif
+
+static int setGlWindow_dummy(MPGLContext *ctx) {
+  getFunctions(setNull, NULL);
+  return SET_WINDOW_OK;
+}
+
+static void releaseGlContext_dummy(MPGLContext *ctx) {
+}
+
+static int dummy_check_events(void) {
+  return 0;
+}
+
 int init_mpglcontext(MPGLContext *ctx, enum MPGLType type) {
   memset(ctx, 0, sizeof(*ctx));
+  ctx->setGlWindow = setGlWindow_dummy;
+  ctx->releaseGlContext = releaseGlContext_dummy;
+  ctx->check_events = dummy_check_events;
   ctx->type = type;
   switch (ctx->type) {
 #ifdef CONFIG_GL_WIN32
@@ -1870,6 +1898,12 @@ int init_mpglcontext(MPGLContext *ctx, e
     ctx->ontop = vo_x11_ontop;
     return vo_init();
 #endif
+#ifdef CONFIG_GL_SDL
+  case GLTYPE_SDL:
+    SDL_Init(SDL_INIT_VIDEO);
+    ctx->swapGlBuffers = swapGlBuffers_sdl;
+    return 1;
+#endif
   default:
     return 0;
   }
@@ -1888,6 +1922,11 @@ void uninit_mpglcontext(MPGLContext *ctx
     vo_x11_uninit();
     break;
 #endif
+#ifdef CONFIG_GL_SDL
+  case GLTYPE_SDL:
+    SDL_QuitSubSystem(SDL_INIT_VIDEO);
+    break;
+#endif
   }
   memset(ctx, 0, sizeof(*ctx));
 }

Modified: trunk/libvo/gl_common.h
==============================================================================
--- trunk/libvo/gl_common.h	Sat Apr 24 12:50:21 2010	(r31061)
+++ trunk/libvo/gl_common.h	Sat Apr 24 18:46:47 2010	(r31062)
@@ -372,6 +372,7 @@ void glDisableYUVConversion(GLenum targe
 enum MPGLType {
   GLTYPE_W32,
   GLTYPE_X11,
+  GLTYPE_SDL,
 };
 
 typedef struct MPGLContext {


More information about the MPlayer-cvslog mailing list